|
XLua有官方的第三方库集成教程, 这里只是给不愿意折腾编译的小伙伴多一个选择。
下载
Github链接:https://github.com/chexiongsheng/build_xlua_with_libs 下载之后, 替换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文档:https://github.com/xpol/lua-rapidjson/blob/master/API.md |
|