Xlua常用第三方库(含rapidjson)

2,814 阅读1分钟

XLua有官方的第三方库集成教程, 这里只是给不愿意折腾编译的小伙伴多一个选择。

下载

Github链接:github.com/chexiongshe… 下载之后, 替换XLua的Plugins文件夹,里面包含RapidJson、LuaSocket、LPeg、lua-protobuf等

扩展LuaDLL.Lua类

新建一个CS文件,写入如下代码, 这里就以rapidjson为例

using System.Runtime.InteropServices;

namespace XLua.LuaDLL {

    public partial class Lua {

        [DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)]
        public static extern int luaopen_rapidjson(System.IntPtr L);

        [MonoPInvokeCallback(typeof(LuaDLL.lua_CSFunction))]
        public static int LoadRapidJson(System.IntPtr L) {
            return luaopen_rapidjson(L);
        }
    }
}

在合适的位置调用AddBuildin

//笔者是在LuaBehaviour中调用, 做if判断是为了防止重复添加
if (!luaEnv.buildin_initer.ContainsKey("rapidjson")) {               
     luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson);            
 }

以上步骤弄完之后,记得重启下Unity,要不然可能会报错:EntryPointNotFoundException: luaopen_rapidjson

最后在lua文件中require即可

local rapidJson = require("rapidjson”)

附上rapidjson的API文档:github.com/xpol/lua-ra…