在运行unity时自动创建prefab并将单例脚本挂上

    [RuntimeInitializeOnLoadMethod]
    private static void CheckInstance()
    {
        if (instance == null && Application.isPlaying)
        {
            var go = new GameObject(
                "CustomComponent", typeof(CustomComponent));
            GameObject.DontDestroyOnLoad(go);
            instance = go.GetComponent();
        }
    }

[RuntimeInitializeOnLoadMethod]这个特性在Awake()之后执行。

CheckInstance()方法在Awake()方法之后创建了名字为CustomComponent的游戏对象,并把CustomComponent脚本挂到CustomComponent的游戏对象上,CustomComponent脚本已经创建为一个单例

你可能感兴趣的:(Unity技术,unity,游戏开发)