美文网首页
Unity单例

Unity单例

作者: 李狗多 | 来源:发表于2020-03-24 21:49 被阅读0次

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

    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();
        }
    }
    

    相关文章

      网友评论

          本文标题:Unity单例

          本文链接:https://www.haomeiwen.com/subject/eiaayhtx.html