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。










