在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
这个问题原由于 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 已经激活 |
请发表评论