Xlua文件在热更新中调用方法
public class news : MonoBehaviour
{
LuaEnv luaEnv;//定义Lua初始变量
void Awake()
{
luaEnv = new LuaEnv();//new开辟空间
luaEnv.AddLoader(myload);//调用方法地址、返回字节
luaEnv.DoString("require'fish'");//更新文件
}
void OnDisable ()
{
//调用xlua.hotfix执行完数据归空
luaEnv.DoString (xlua.hotfix(CS.Treasour,'CreatePrize',nil);
}
void OnDestroy()
{
luaEnv.Dispose();
}
//方法myload加载、返回类型字节、参数路径
private byte[] myload(ref string filepath)
{
//文件地址,加载地址的切换
string abspath = @"F:\5.6.1\FishingJoy\AssetBundles\" + filepath + ".lua.txt";
//换回数据流
return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(abspath));
}
}
注:在C#通过LuaTable.Get获取并保存到对象成员,赋值该成员为null,通过xlua.hotfix(class, method, func)注入到C#,则通过xlua.hotfix(class, method, nil)删除,操作在Dispose之前完成