Unity MonoBehaviour单例

通常你可以这样创建一个Singleton:

public class Single
{
    public static Single _instance;

    public static Single GetInstance(){...}
}

问题是你如何创建 MonoBehaviour 类型的单例?

public class Single : MonoBehaviour
{
}

上述代码将无法正常工作。
是的,问题是,我不能对MonoBehaviour call new 。

原文:Unity MonoBehaviour Singleton

阅读 3.4k
1 个回答

来自@user2085599 的答案

你不能用 new 初始化 _instance,因为你不能在 MonoBehaviour 中
解决办法

在你的void Awake() 添加下面一行:

void Awake()
{
    _instance = this;
}

额外的代码
显然,GetInstance()函数略有不同了。请注意,我们不再检查实例等于null。

public static Single GetInstance()
{
    return _instance.
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进