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之前完成

posted on 2018-09-15 17:08  _萧朗  阅读(1079)  评论(0编辑  收藏  举报