其实导出apk的步骤很简单,就是:
1.设置AppConst.LuaBundleMode为true。这样就会将lua代码打包成.unity3d
2.点击菜单栏LuaFramework/Build Android Resource。这里注意的是,在Build的时候,StreamingAssets文件夹的东西会先被清空,所以注意好备份
有可能会提示Found plugins with same names and architectures的错误,解决方法就是:
如果是32位Unity编辑器,删掉x86_64目录,如果是64位编辑,删除x86目录即可。
顺便也整理一下相关的知识:
一.打包流程
要打包的就是各种素材以及lua代码。找到Packager.cs的BuildAssetResource方法,开始分析。
1.素材的打包
如果AppConst.ExampleMode为true,那么就会对"Assets/LuaFramework/Examples/Builds/"这个路径下的素材进行打包,打包到StreamingAssets这个目录下。这里我建议不要修改这个值(保持为true),通过系列二的打包工具将素材的路径改了就可以了。
2.lua代码的打包
如果AppConst.LuaBundleMode为true,那么就会对"LuaFramework/lua/"和"LuaFramework/Tolua/Lua/"这两个路径下的lua代码进行打包,打包到StreamingAssets/lua/这个目录下;否则,就是将这两个路径的文件复制到目标目录下。如果要导出apk,那么要将这个值改为true;如果只是在编辑器上测试,可以改为false。
二.AppConst.cs
这个类中的常量十分重要,有必要分析一下。
1.DebugMode
对于LuaManager来说,如果值为true,那么lua代码的加载路径就为"LuaFramework/lua/"和"LuaFramework/Tolua/Lua/"这两个路径(也就是pc上的本地路径),否则为Util.DataPath + "lua"(也就是爪机上的沙盒路径)
2.ExampleMode
上面已经说了
3.UpdateMode
如果为true,则会访问服务端进行下载更新
4.LuaBundleMode
上面已经说了
三.获取android程序的输出
众所周知,在unity编辑器下可以很方便地看到输出信息,但是生成apk后却看不到。其实可以使用一些特殊手段看到的~~
在android的sdk目录下找到tools/monitor.bat,打开,并设置过滤,然后打开app即可。
四.android程序局域网连接
找到Game.lua,在OnInitOK方法中即可设置地址和端口号。要注意的是如果只是编辑器和exe程序进行连接,那么就无需修改了,如果是app连接,要改一下地址。
在控制面板---网络和Internet---网络和共享中心,点击本地连接---详细信息,其中IPv4地址即为要填写的IP地址。