Singleton
目录位置
单例模式的基类,不用mono的类可以直接继承
源码
namespace JKFrame
{
/// <summary>
/// 单例模式的基类
/// </summary>
public abstract class Singleton<T> where T : Singleton<T>, new()
{
private static T instance;
public static T Instance
{
get
{
if (instance == null)
{
instance = new T();
}
return instance;
}
}
}
}
如何使用
例如我新建脚本 AnimalController.cs
using JKFrame;
using UnityEngine;
public class AnimalController:Singleton<AnimalController>
{
public void Bark()
{
Debug.Log("狗叫!");
}
}
调用
AnimalController.Instance.Bark();
SingletonMono
单例模式的基类,用mono的类可以直接继承
源码
using UnityEngine;
namespace JKFrame
{
public abstract class SingletonMono<T> : MonoBehaviour where T : SingletonMono<T>
{
public static T Instance;
protected virtual void Awake()
{
if (Instance == null)
{
Instance = this as T;
}
}
}
}
如何使用
例如我新建脚本 AnimalController2.cs,这个脚本是继承了MonoBehaviour的,是可以挂载的
using JKFrame;
using UnityEngine;
public class AnimalController2:SingletonMono<AnimalController2>
{
public void Bark()
{
Debug.Log("狗叫!");
}
}
调用
AnimalController2.Instance.Bark();
总结
主要就是做了2个单例系统的基类,可以用来继承,看到底是用不用MonoBehaviour。