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

CSharp侧的代码:

using UnityEngine;

namespace LGSTEST
{
    public class Lgs : MonoBehaviour
    {
        void Update()
        {
            if (Input.GetMouseButtonDown(0))
            {
                TestParams(12, "110");
            }
        }

        void TestParams(params object[] param)
        {
            Debug.Log(param[0]);
        }
    }
}

用Xlua对方法 TestParams 进行修复的时候,lua代码的写法:

xlua.hotfix(CS.LGSTEST.Lgs, "TestParams", function(self, ...)
    local param = {...};
    print("------- " .. param[1] .." ++++++ " .. param[2])
    print(param[3])
end)

运行结果:

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

需要注意的有两一点:

lua侧对C#的可变参数的接受及使用方式,... 接受,{...}包成数组再使用,索引是从1开始的。

相关推荐