前几个月腾讯开源了一套热更新、热补丁解决方案,托管在Github,点击进入
最近抽出时间学习下,研究了下官方文档,受益颇深
本文我来介绍xLua的自定义Loader
先介绍两种Lua文件加载方法
一.执行字符串方法
LuaEnv luaenv = new LuaEnv();
luaenv.DoString("print('hello world')");
二.执行Lua文件方法
LuaEnv luaenv = new LuaEnv();
luaenv.DoString("require ('byfile')");
其中byfile是文件名,存放在Resources文件下,以.lua.tex为后缀名
问题来了,require是怎样的执行过程?
实质上,require是一个个的调用Loader查找出匹配的Lua文件,然后执行该文件
在xLua中我们可以自定义添加Loader
public delegate byte[] CustomLoader(ref string filepath);
public void LuaEnv.AddLoader(CustomLoader loader)
通过AddLoader可以注册个回调,该回调参数是字符串,lua代码里头调用require时,参数将会透传给自定义回调函数和原生回调函数