Unity单例

在游戏场景切换或者实例化代码中,我们不希望某一代码或者类在此场景中多次出现,从而导致数据的混乱或者调用混淆。另一种情况就是我们在场景跳转中,想要保持某一组件在整个项目中只有一个,常见的有人物的属性,你肯定不希望当你跳转场景时出现两个你吧。
我也曾用来计时运行此项目不单单限制一个场景所使用的时间。
此时我们需要使用单例来保证此代码在此项目中只有一个。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class AwakeByte : MonoBehaviour {  
  // 改为自己的类
    public bool bDontDestroyOnLoad = false;
    public static AwakeByte Instance;
    private void InitializeInstance()
    {
        if (Instance != null & Instance == this)
            return;

        if (bDontDestroyOnLoad)
        {
            if (Instance == null)
            {
                Instance = this;
                DontDestroyOnLoad(gameObject);
            }
            else
            {
                Destroy(gameObject);
            }
        }
        else
        {
            Instance = this;
        }
    }
    private void Awake()
    {
        InitializeInstance();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容