Xlua侧如何接受CSharp侧的可变参数

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开始的。

posted @ 2020-05-09 19:38  小·糊涂仙  阅读(393)  评论(0编辑  收藏  举报