Xlua文件在热更新中调用方法

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.1FishingJoyAssetBundles" + 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之前完成

支持个人观看使用,如商用或转载,请告知! -----萧朗(QQ:453929789 Email:xiaolang_xl@sina.com)
原文地址:https://www.cnblogs.com/XiaoLang0/p/9651465.html