zoukankan      html  css  js  c++  java
  • go.IsActive() && go.GetTag() != 0 的报错

     这个问题原由于 OnEnable Awake  OnEnable OnLevelWasLoaded 这几个问题。

    具体的起因大致是 在OnEnable 中的代码执行的时候这个脚本已经激活了。

    开始我的起始脚本是 

    using UnityEngine;
    using System.Collections;
    /*
     *  游戏从这里开始 ,整个游戏的逻辑初始化开始
     */
    public class LogicWorld:MonoSingleton<LogicWorld>
    {
       
        // 这里有所有需要初始化的 逻辑管理器
        #region property
        public PlayerDatas globalPlayerData;
    
        #endregion
        protected override void OnAwake()
       {
            base.OnAwake();  
            DontDestroyOnLoad(this);
        }
        void Start()
        { 
            StartGame();
            UIMgr.SG.HandlerSence(SenceTypy.UIBackGround , UICommend.CommendType.CreateUIAndShow);
        }
        void StartGame()
        {
            globalPlayerData = RealtimeDataGet.GetData(); //获取本地存储的数据 单机版
           this.gameObject.AddComponent<LayerMgr>();
            this.gameObject.AddComponent<UIMgr>();
            this.gameObject.AddComponent<AppMgr>();
        }
    }

    在这里 我先把这几个 脚本初始化加载了 。 然后我的ResMgr 脚本的单例是这么写的

    public class MonoSingleton<T> : MonoBehaviour where T : MonoSingleton<T>
        {
            private static T instance=null;
            public static T Instance {
                get {
                       if(instance==null)
                       instance=GameObject.Find("GameElement").AddCompnent<T>();
                    return instance;
                }
            }
            
            void OnApplicationQuit () { if (instance != null) instance = null; }
            
            
        }

    导致再次使用时 ResMgr 已经激活

  • 相关阅读:
    [牛客]十二桥问题 解题报告
    [NOIP2017 逛公园] 解题报告
    [JSOI2008]最小生成树计数 解题报告
    类欧几里得算法
    概率与期望题目列表
    [SCOI2008]配对 解题报告
    拦截导弹
    牛客网-约数的个数
    牛客网-成绩排名
    最大连续区间和的算法总结
  • 原文地址:https://www.cnblogs.com/bambomtan/p/5080713.html
Copyright © 2011-2022 走看看