Process->在所有可能出现问题的类上打上[Hotfix]标签,在所有Lua调用C#的方法打上[LuaCallCSharp],在所有C#调用Lua的方法打上[CSharpCallLua]->打包发布->修改时只需要更新Lua文件,修改资源是(声音,模型,贴图,UI)只需要更新AB包。用户只需要下载Lua文件和AB包

using UnityEngine;
using XLua;

namespace XLuaTest
{
[Hotfix]//在需要修复的类前加上[Hotfix]特性
public class HotfixTest : MonoBehaviour
{
LuaEnv luaenv = new LuaEnv();//Lua虚拟运行环境

    private int tick = 0;

    // Use this for initialization
    void Start()
    {
    }

    // Update is called once per frame
    [LuaCallCSharp]
    void Update()
    {
        if (++tick % 50 == 0)
        {
            Debug.Log(">>>>>>>>Update in C#, tick = " + tick);
        }
    }

    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 300, 80), "Hotfix"))
        {//要修改的类名,要修复的类中的方法,作为替换的Lua中的方法
            luaenv.DoString(@"
            xlua.hotfix(CS.XLuaTest.HotfixTest, 'Update', function(self)
                local a = CS.UnityEngine.GameObject.Find('Main Camera')
                CS.UnityEngine.Debug.Log(a.name)
                --[[self.tick = self.tick + 1
                if (self.tick % 50) == 0 then
                    print('<<<<<<<<Update in lua, tick = ' .. self.tick)
                end--]]
            end)
        ");
        }
    }
}

}