从另一个Singleton引用Singleton

时间:2017-01-24 18:32:03

标签: c# unity3d singleton

我将我的代理或模型类定义为单例。 我创建了一个基本单例,子类然后继承。 通常,您只需获得对Singleton的引用

mySingletonInstance = Singleton.Instance;

但是如果你有一个Singleton需要引用另一个Singleton怎么办? 你会以同样的方式做吗?或者会创建某种类型的逻辑或循环依赖?

public class GenericProxy<T> : MonoBehaviour where T : Component
{
    private static T instance;
    public static T Instance
    {
        get
        {
            if (instance == null)
            {
                instance = FindObjectOfType<T>();
                if (instance == null)
                {
                    GameObject obj = new GameObject();
                    obj.name = typeof(T).Name;
                    instance = obj.AddComponent<T>();
                }
            }
        return instance;
        }
    }

    public virtual void Awake()
    {
        if (instance == null)
        {
            instance = this as T;
            DontDestroyOnLoad(this.gameObject);
        }
        else
        {
            Destroy(gameObject);
        }
    }
}

0 个答案:

没有答案