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