一定要在Linux或者Mac环境下 才能打包android的第三方包
- 一定要在Linux或者Mac环境下 才能打包android的第三方包
- 一定要在Linux或者Mac环境下 才能打包android的第三方包
- 在电脑上安装个虚拟机来完成以下
- 需要的工具有
- cmake3 yum install cmake3
- ndk-r15c https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip (根据sh文件内的版本所下载,我的版本为r15c我就去官网下载r15c,r10e我这边测试是不行的)
- android sdk https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip?utm_source=androiddevtools&utm_medium=website
- Xlua源码包
- 配置好NDK和SDK
- 通过 source .bash_profile 进行环境配置的实时更新
- 生成后把Android文件夹覆盖到unity项目的 assets/plugins/android下
- 下载xLua 源代码 https://github.com/Tencent/xLua.git
- 其中的build文件夹解压至Unity项目的根目录下
- 下载第三方库的源码 解压至build文件夹
- 修改build里面的CMakeLists.txt
- 在mark_as_advanced下面添加扩展
#begin lua-xxx
set (XXX_SRC xxx/xxxx.c)
set_property(
SOURCE ${XXX_SRC}
APPEND
PROPERTY COMPILE_DEFINITIONS
LUA_LIB
)
set (THIRDPART_SRC ${THIRDPART_SRC} ${XXX_SRC})
#end lua-xxx
这里的xxx为Lua包名
- 在xlua下找到LuaDLL.cs
-
#if UNITY_IPHONE && !UNITY_EDITOR const string LUADLL = "__Internal"; #else const string LUADLL = "xlua"; #endif
在上面代码下添加引进新的模块
-
[DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)] public static extern int luaopen_模块名(System.IntPtr L); [MonoPInvokeCallback(typeof(LuaDLL.lua_CSFunction))] public static int Load模块名(System.IntPtr L) { return luaopen_模块名(L); }
- 在LuaEnv.cs的文件下找到
- AddBuildin(XXX,XXXX)
- 添加 AddBuildin("引入包名", LuaDLL.Lua.Load模块名);
- 引入包名:require "包名"
- 在Lua代码中即可使用
- local a = require “包名”