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 已经激活

  • 相关阅读:
    javascript 之异常处理try catch finally--05
    javascript 之基本包装类型--04
    javascript 之基本数据类型、引用数据类型区别--02
    javascript 之数据类型--01
    CSS3 object-fit 图像裁剪
    jQuery.extend 使用函数
    ios 不支持iframe 解决方案
    python常用代码积累
    mysql日志类型
    python中列表 元组 字符串如何互相转换
  • 原文地址:https://www.cnblogs.com/bambomtan/p/5080713.html
Copyright © 2011-2022 走看看