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的方式。

 

 

執行結果:

 

 

 

 

 

占位


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM