欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

泛型单例

程序员文章站 2022-04-03 15:38:24
...

unity中有很多地方需要用到单例,每个都写一遍的话就显得冗余,所以就可以写一个泛型单例,以后单例脚本直接继承就可以了。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Singleton<T> : MonoBehaviour where T : Singleton<T>
{

    private static T instance;
    private static object _lock = new object();

    public static T Instance
    {
        get
        {
            lock (_lock)
            {
                if (instance == null)
                {
                    GameObject go = new GameObject();
                    instance = go.AddComponent<T>();
                    go.name = typeof(T).Name;
                }
                return instance;
            }
        }  
    }
}