源码地址:https://gitee.com/warthGod/GameFrameworkForTolua.git
1. 目的:编辑的便利性,减少build的步骤,lua文件自加载
编辑窗口依然是lua文件
2. 启动build时,无需要做额外工作:
3. 这种方式不利于热更新,而且常驻内存了。
4. 真正的热更新是由lua去告知程序加载那些lua脚本
解决方法:
1. AssetBundleEditor.xml 添加lua识别
2. 像常规添加方法加入lua
3. 修改AssetBundleBuilderController.cs 代码。GetBuildMap()方法中添加代码片段:
4. 干掉 ProcedureLoadLuaScripts.cs中PreloadLuaScriptsInfos的调用
5.干掉ProcedureLoadLuaScripts.cs中的
//for(int i = 0; i < PreloadLuaScriptsInfos.Length; ++i)
//{
// var info = PreloadLuaScriptsInfos[i];
// m_LoadFlags.Add(info.FileName);
// luaComp.LoadFile(info.AssetPathPrefix +info.FileName, info.FileName, OnLoadLuaScriptSuccess,OnLoadLuaScriptFailure);
//}
5. 也就是关键部分:CustomLuaLoader.cs代码修改
第一部分是判断是tolua核心部分就去调用tolua'自身的加载机制,第二部分是加载assetbunld部分。
6. ResourceManager.cs添加非异步加载机制
测试结果:
Lua文件结构: