ToLua集成:1基础集成

发表于2016-03-11
评论1 3.3k浏览
  这两天把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编译和下载都的用自己的系统。那就自己弄把。具体下次在写。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引