CSharp侧的代码:
1 using UnityEngine; 2 3 namespace LGSTEST 4 { 5 public class Lgs : MonoBehaviour 6 { 7 void Update() 8 { 9 if (Input.GetMouseButtonDown(0)) 10 { 11 TestParams(12, "110"); 12 } 13 } 14 15 void TestParams(params object[] param) 16 { 17 Debug.Log(param[0]); 18 } 19 } 20 }
用Xlua对方法 TestParams 进行修复的时候,lua代码的写法:
1 xlua.hotfix(CS.LGSTEST.Lgs, "TestParams", function(self, ...) 2 local param = {...}; 3 print("------- " .. param[1] .." ++++++ " .. param[2]) 4 print(param[3]) 5 end)
运行结果:
需要注意的有两一点:
lua侧对C#的可变参数的接受及使用方式,... 接受,{...}包成数组再使用,索引是从1开始的。