uLua 热更新 增加Manager管理类时报错问题解决
来源:互联网 发布:阿里云服务器配置推荐 编辑:程序博客网 时间:2024/06/05 06:16
今天增加了一个场景类 但是报错 虽然有很多种 但是还是记下来了
以前增加过 Photon 服务器NetPhotonManager类 是好使的 流程如下:
cs方面:
StartUpCommand.cs 仿照 Execute 方法中的其他增加该类
ManagerName.cs按照其他修改
LuaHelper.cs 按照其他添加该类
Base.cs 按照其他添加该类(这个类没有修改也不影响 我试过 不加也没事 也没空研究为什么。。。知道了就行了)
clear一下 generate all build。。。
lua代码方面省略 流程的话用过的人都知道的
最后在lua的sceneMgr:CreateScene就不好使
经过调试 是在cs增加类的时候就出错了
StartUpcommand.cs中原先我的代码是这样的:
public override void Execute(IMessage message) {
if (!Util.CheckEnvironment()) return;
GameObject gameMgr = GameObject.Find("GlobalGenerator");
if (gameMgr != null) {
AppView appView = gameMgr.AddComponent<AppView>();
}
//-----------------关联命令-----------------------
AppFacade.Instance.RegisterCommand(NotiConst.DISPATCH_MESSAGE, typeof(SocketCommand));
//-----------------初始化管理器-----------------------
AppFacade.Instance.AddManager<LuaManager>(ManagerName.Lua);
AppFacade.Instance.AddManager<PanelManager>(ManagerName.Panel);
AppFacade.Instance.AddManager<SoundManager>(ManagerName.Sound);
AppFacade.Instance.AddManager<TimerManager>(ManagerName.Timer);
// AppFacade.Instance.AddManager<NetworkManager>(ManagerName.Network);
AppFacade.Instance.AddManager<NetPhotonManager>(ManagerName.Network);
AppFacade.Instance.AddManager<ResourceManager>(ManagerName.Resource);
AppFacade.Instance.AddManager<ThreadManager>(ManagerName.Thread);
AppFacade.Instance.AddManager<ObjectPoolManager>(ManagerName.ObjectPool);
AppFacade.Instance.AddManager<GameManager>(ManagerName.Game);
Debug.LogWarning("the startupcommand is start the manager is loading");
}
可以看到 我注释的那一段是原来的网络管理器
而我直接在下面直接加的代码 好使
注意 就是这个问题 我把sceneManager在这里增加的时候 是放到了最下面
实质上就是这一步放到了GameManager下面 就发生了错误
错误如下:
AppFacade.Instance.AddManager<GameManager>(ManagerName.Game);
AppFacade.Instance.AddManager<ResourceManager>(ManagerName.Resource);
解决方案:
将初始化SceneManager提到 GameManager 初始化之前就可以
如:
AppFacade.Instance.AddManager<ResourceManager>(ManagerName.Resource);
AppFacade.Instance.AddManager<GameManager>(ManagerName.Game);
当然 再提前也是可以的 只要是GameManager之前就可以
(以下是猜测的原因 注意 是猜测 懒得细查了。。。)
原因就是在添加GameManager的时候
GameManager中Awake方法中进行了初始化 我报错的地方就是这里 跟踪的话可以发现
void OnInitialize() {
LuaManager.InitStart();
LuaManager.DoFile("Logic/Game"); //加载游戏
LuaManager.DoFile("Logic/Network"); //加载网络
//NetManager.OnInit(); //初始化网络
Util.CallMethod("Game", "OnInitOK"); //初始化完成
}
这里有个 Util.CallMethod 函数 之后懒得跟踪
这里我猜测应该在 初始化GameManager之后访问了其他管理器的函数(变量的话代码中有取空赋值的操作 应该不是) //说明一下 这只是猜测。。。没有仔细进行排查。。。。
此时SceneManager还没有加载 因此报错
找了半天 原来是这样的错误。。。。有点浪费时间。。。不过最后还是找到了。。。
- uLua 热更新 增加Manager管理类时报错问题解决
- ULua热更新
- U3D和ULUA热更新
- ulua热更新小demo
- uLua热更新学习笔记
- unity3d热更新插件uLua
- ulua热更新小试
- Untiy3d实现Ulua热更新
- Ulua热更新提高 <六> Ulua使用DoTween改进版
- unity3d热更新插件uLua学习整理
- Unity 热更新之ULua 踩坑篇
- Unity热更新专题(六)uLua简介
- uLua,一个Unity+Lua热更新解决方案!
- Unity热更新之ULua 踩坑篇
- unity3d热更新插件uLua学习整理
- ulua+PureMVC框架简单热更新使用
- Unity热更新ULua(一)
- unity3d热更新插件uLua学习整理
- android 重写View遇见错误:Error inflating class
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 G
- 常见问题2
- 【总结】PHP常见面试题汇总(二)
- Arrays.asList()方法的使用
- uLua 热更新 增加Manager管理类时报错问题解决
- 《OC基础教程》读书笔记6-NSString基础方法整理
- linux系统挂载与取消挂载
- Android Dagger2入门详解(六)
- HDU
- RecyclerView 添加Header
- 【leetcode】第73题 Set Matrix Zeroes 题目+解析+JAVA代码
- 算法学习笔记4-动态规划-背包问题
- linux下更改mysql密码