Unity 热更新学习笔记四:xLua插件 Part1-基础调用
各平台如何热更新?
Android,PC(C#)
将执行代码预编译为AssemblyDLL
将代码作为TextAsset打包进AssetBundle
运行时调用AssemblyDLL代码
更新相应的AssetBundle即可实现热更新
IOS(不允许使用C#的部分反射功能并不支持JIT)
Unity+Lua插件(常见的有uLua,xLua,ILRuntime)
什么是是xLua?
这是一款腾讯开发的Lua插件下载网址:GitHub - Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc.
下面是一段简单的C#调用Lua代码
//XLua解析器获得 LuaEnv env = new LuaEnv(); //解析器运行Lua代码,把字符串当成Lua代码执行 env.DoString("print('Hello world!')"); //解析器释放 env.Dispose();
如何使用Lua调用C#代码呢?代码如下
LuaEnv env = new LuaEnv(); //Lua调用 C#代码 (CS.命名空间.类名.方法名(参数)) env.DoString("CS.UnityEngine.Debug.Log('From Lua')"); env.Dispose();
这样两方都可以互相调用对方了
Lua返回值给C#(获取解析器与释放都是一样的不再赘述)
object[] data = env.DoString("return 100,true"); Debug.Log("Lua的第一个返回值:"+data[0].ToString()); Debug.Log("Lua的第二个返回值:"+data[1].ToString());
调用Lua文件执行
// 内置加载器扫描预制目录,查找是否存在test.lua env.DoString("require('test')");
本文作者:CatSevenMillion
本文链接:https://www.cnblogs.com/CatSevenMillion/p/17420963.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
Untiy热更新学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步