Unity MonoBehaviour 单例

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

public class Single
{
    public static Single _instance;

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

问题是在Unity中产生MonoBehaviour class时应该如何创建?

public class Single : MonoBehaviour
{
}

上述的常规代码不起作用。
Edit:问题是我不能在 MonoBehaviour调用new

原问题:Unity MonoBehaviour Singleton

阅读 6.2k
1 个回答

@FunctionR:
会起作用的,在未来的帖子里,你可以贴出为什么它不起作用。过去我也遇到过这个问题,所以我知道为什么。你不可以用new初始化_instance,因为你不可以在MonoBehaviour调用new。
解决方案
在 voidAwake()添加这几行:

void Awake()
{
    _instance = this;
}
Extra Code

显然GetInstance() 函数看起来略有不同了。注意我们不再像往常那样检查实例是否为null。

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