ToLua集成:1基础集成
发表于2016-03-11
这两天把ToLua集成到工程里面,感觉还是跳了不少坑的。可能只是不熟,不过还是搞了好久才弄好。 小结一下:
1、下载, uLua的最新版叫ToLua,分为插件版和框架版。
插件版:https://github.com/topameng/tolua
只有最基本的lua解析,warp,打包等功能,适合大项目集成。
框架版:https://github.com/jarjin/LuaFramework_UGUI
包括了诸如网络层,更新策略, UI的Puremvc集成等诸多功能,理论上可以整个游戏逻辑由lua控制,适合没有其他框架的小项目。
2、下载好的目录为tolua-master 拷贝文件夹里面的 Editor,plugins,Source 和ToLua 到 我们自己工程的Assets/Thirdparty/ToLua (当然具体路径随意)
3、将tolua-master 中Lua 文件夹拷贝到 Assets/Lua (直接放资源根目录),如果是插件版,那么Lua文件夹里基本是空的。 这个Lua文件夹就是以后我们写的.lua文件存放的地方, 也是unity editor模式下.lua直接运行的位置。
4、修改LuaConst中的路径:
public static string luaDir = Application.dataPath + "/Lua";
public static string toluaDir = Application.dataPath + /ThirdParty/ToLua/ToLua/Lua";
修改CustomSettings中的路径:
public static string saveDir = Application.dataPath + "/ThirdParty/ToLua/Source/Generate/";
public static string luaDir = Application.dataPath + "/Lua/";
public static string toluaBaseType = Application.dataPath + "/ThirdParty/ToLua/ToLua/BaseType/";
5、Tolua中的Debugger.dll跟MediaUnity中的冲突,这么大众脸的名字,当然冲突啦:
麻烦的是, tolua中还集成了某些extension, 而mediaunity中的debugger又有debugger级别设等不一样的地方。所以两个都的留着。
解决:还好蒙大debugger 有源码
https://github.com/topameng/Debugger
下下来,重新弄个工程,改dll的名字
编译导入,就没问题了。
6、处理plugin冲突:
由于我们plugin里的dll等都是拷进来的,meta需要重设:
比如android
分别设为
和
其他平台差不多,一定要设,否则编不过。
7、点Lua -> Generate All 生成所有的warp。
测试:ThirdParty/ToLua/ToLua/Examples 中的例子大多应该可以运行了, 如果不行,一般是路径问题。
可惜examples 18 bundle的例子还是跑不过,其他例子大多是直接读取.lua文件,在editor下是没问题的。 这个18是读取bundle,实际编译的版本(不管pc还是mobile)一般都是的用bundle去包lua脚本的(否则怎么热更, 不热更干嘛用lua?)
tolua提供了一些编bundle的函数,比如Lua->Build bundle files not jit, 但是用下来有不少问题。反正我们的bundle编译和下载都的用自己的系统。那就自己弄把。具体下次在写。