201710020117->unity中monosingleton

来源:互联网 发布:皮皮麻将算法 编辑:程序博客网 时间:2024/06/04 19:44

单例含生命周期的单例写法

monosingle<T>限制T为class及空构

1.在awake函数里对instance静态字段进行构造

利用访问器提供与外界交流的桥梁

2.构造时发放oninitialized虚函数

用于子类对自身进行初始化

3,onapplicationquit中对instance字段回收

发放ondestory虚函数用于回收子类自身的数据

详细代码:

public class MonoSingleton<T> : MonoBehaviour where T : class,new()
{
    private static T instance = null;
    public static readonly object Lock = new object();
    public static T Instance
    {
        get
        {
            return instance;
        }
    }
    public void Awake()
    {
        lock (Lock)
        {
            instance = this;
            OnInitialized();
        }
    }
    public virtual void OnInitialized()
    {

    }
    public void OnApplicationQuit()
    {
        instance = null;
        OnDestory();
    }
    public virtual void OnDestory()
    {

    }
}

原创粉丝点击