xLua增加第三方lua库lpack
来源:互联网 发布:软件风险分析 编辑:程序博客网 时间:2024/04/30 14:25
因为网络通讯使用自定义协议,需要用到luasocket和lpack库,但xLua默认只集成了luasocket库,所以需要自己增加lpack库
下载xLua C源码:https://github.com/Tencent/xLua/archive/v2.1.8.zip
lpack下载地址:http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/5.2/lpack.tar.gz
解压下载的xLua-2.1.8,把build目录放在自己unity项目的根目录下
解压下载的lpack.tar.gz,放到build目录下
添加扩展&编译
在CMakeLists.txt文件 MARK_AS_ADVANCED(XLUA_PROJECT_DIR) 行下面加入扩展
#begin lua-pack
set (PACK_SRC pack/lpack.c)
set_property(
SOURCE ${PACK_SRC}
APPEND
PROPERTY COMPILE_DEFINITIONS
LUA_LIB
)
set (THIRDPART_SRC ${THIRDPART_SRC} ${PACK_SRC})
#end lua-pack
找到自己对应的平台和版本编译,如make_win64_lua53.bat,直接双击编译
把plugin_lua53/Plugins/x86_64/xlua.dll 覆盖unity项目的Assets/Plugins/x86_64/xlua.dll
下面是使用vs2012的处理
把make_win64_lua53.bat文件里面的 cmake -G “Visual Studio 14 2015 Win64” .. 这一行修改成 cmake -G “Visual Studio 11 2012 Win64” ..
把i64lib.c文件里面的 lua_pushuint64(L, strtoull(str, NULL, 0)); 这一行修改成 lua_pushuint64(L, _strtoui64(str, NULL, 10));
C#集成
找到项目下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_pack(System.IntPtr L);[MonoPInvokeCallback(typeof(LuaDLL.lua_CSFunction))]public static int LoadPack(System.IntPtr L){ return luaopen_pack(L);}
找到项目下LuaEnv.cs文件
在
AddBuildin("socket.core", StaticLuaCallbacks.LoadSocketCore);AddBuildin("socket", StaticLuaCallbacks.LoadSocketCore);
下面添加
AddBuildin("pack", LuaDLL.Lua.LoadPack);
测试集成
新建Test.cs文件,内容如下
using UnityEngine;using XLua;public class Test : MonoBehaviour{ void Start() { LuaEnv luaEnv = new LuaEnv(); luaEnv.DoString(@" require 'pack' print('Hello World!') "); luaEnv.Dispose(); }}
运行如能输出Hello World!则成功集成
- xLua增加第三方lua库lpack
- Xlua使用C#中第三方库:DoTween
- 关于lua扩展库lpack的使用指南
- lua第三方库
- Android 增加第三方库
- 一些lua第三方库
- 在android中增加 第三方库
- Windows下使用第三方lua库
- Lua导入第三方库或目录
- cocos2dx 加入lpack库
- Android 增加第三方APK
- Lua第三方插件列表
- Lua 第三方插件索引
- 安装openresty扩展 lpack库
- lua中如何加入第三方拓展c库
- lua中集成第三方拓展c库
- centos6.5生产环境编译安装nginx-1.11.3并增加第三方模块ngx_cache_purge、nginx_upstream_check、ngx_devel_kit、lua-nginx
- mtk 如何增加第三方apk
- 在服务器开启pathinfo
- Funny Function(HDU 6050)
- 问题 H: 循环左移
- 78. Subsets
- 7种回归分析方法
- xLua增加第三方lua库lpack
- Android中AutoLayout的使用
- 1157: 连续的n个1
- (十六)Bitmap的加载和Cache
- Firefox GeckoDriver不支持鼠标悬停
- 新装谷歌浏览器拦截Flash插件解决方案
- 面向对象设计原则
- B1022
- torch中创建multitask网络结构