0
点赞
收藏
分享

微信扫一扫

【Android】Xlua引入第三方库

Alex富贵 2022-01-11 阅读 83

 一定要在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 “包名”
举报

相关推荐

0 条评论