1. 程式人生 > 實用技巧 >xLua學習筆記_使用xlua.hotfix()方法修改C#程式碼

xLua學習筆記_使用xlua.hotfix()方法修改C#程式碼

示例程式碼:

在要修改的類上打上 [HotFix] 標籤,要修改的方法上打上 [LuaCallCSharp ] (如果Lua程式碼中會呼叫到CSharp中的程式碼的話)

1 [Hotfix]
2 public class MyClass
3 {
4     [LuaCallCSharp]
5     public int MyFunction()
6     {
7         return 1;
8     }
9 }

使用 xlua.hotfix()

注入更新這個方法:

此處為方便演示,真實情況應為從伺服器獲得Lua檔案或其他操作。

 1 public class HotFix
 2 {
 3     public void hotFix()
 4     {
 5         LuaEnv le = new LuaEnv();
 6         le.DoString(@"
 7         xlua.hotfix(CS.MyClass,'MyFunction',
 8             function(self)
 9             return 666
10         end)
11 ");
12     }
13 }

xlua.hotfix() 函式引數說明,引用一段官方解釋:

xlua.hotfix(class, [method_name], fix)

  • 描述 : 注入lua補丁
  • class : C#類,兩種表示方法,CS.Namespace.TypeName或者字串方式"Namespace.TypeName",字串格式和C#的Type.GetType要求一致,如果是內嵌型別(Nested Type)是非Public型別的話,只能用字串方式表示"Namespace.TypeName+NestedTypeName";
  • method_name : 方法名,可選;
  • fix : 如果傳了method_name,fix將會是一個function,否則通過table提供一組函式。
    table的組織按key是method_name,value是function的方式。

執行結果:

佔位