• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go.IsActive()&&go.GetTag()!=0的报错

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 这个问题原由于 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 已经激活


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go中的iota发布时间:2022-07-10
下一篇:
论文笔记:Mastering the game of Go with deep neural networks and tree search ...发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap