我将我的代理或模型类定义为单例。 我创建了一个基本单例,子类然后继承。 通常,您只需获得对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);
}
}
}