Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击()上的Unity按钮。public void Method()与public void Method(arr1[],arr2[],arr3[])的比较_C#_Unity3d - Fatal编程技术网

C# 单击()上的Unity按钮。public void Method()与public void Method(arr1[],arr2[],arr3[])的比较

C# 单击()上的Unity按钮。public void Method()与public void Method(arr1[],arr2[],arr3[])的比较,c#,unity3d,C#,Unity3d,我不熟悉统一和编程。 当我尝试在单击时启动method()按钮时(见图) 由于某些原因,我无法启动public void LockPickTrigger(int[]lockPick1,int[]lockPick2,int[]lockPick3),但public void LockPickTrigger()工作正常。如何启动第一种方法? 代码如下: (向下滚动至“此处开始代码”) 关于UnityUI,我没有太多经验(我使用Noesis UI),但从我收集的信息来看,onclick事件只能有一个参

我不熟悉统一和编程。 当我尝试在单击时启动method()按钮时(见图)

由于某些原因,我无法启动public void LockPickTrigger(int[]lockPick1,int[]lockPick2,int[]lockPick3),但public void LockPickTrigger()工作正常。如何启动第一种方法? 代码如下: (向下滚动至“此处开始代码”)


关于UnityUI,我没有太多经验(我使用Noesis UI),但从我收集的信息来看,onclick事件只能有一个参数,或者根本没有参数。因此
myFunc()
myFunc(字符串a)
起作用,但
myFunc(字符串a,字符串b)

所以你也许应该重构你的代码,这样你就不需要这些参数了,或者把所有的参数放在一个类中,然后用它来代替(我相信这也可以,但我只从网上的资料中读过)

以下是包含更多解决方案的快速列表:


尽管了解您实际想要实现的目标会有所帮助。

检查器只允许您分配接受零个或一个参数的回调函数,并且该参数只有少数允许的类型(bool、int、float和GameObject)。但是,不必从inspector添加此函数,您可以在如下代码中将此函数添加为按钮onClick listener:

void Start()
{
    LockPick1.onClick.AddListener(() => {
        int[] lockPick1 = GetLockPick1Values();
        int[] lockPick2 = GetLockPick2Values();
        int[] lockPick3 = GetLockPick3Values();
        LockPickTrigger(lockPick1, lockPick2, lockPick3);
    });
}

这个班叫什么名字?你能发布完整的代码吗?刚刚添加了所有内容。谢谢,我对它做了一点修改,效果很好!LockPick1.onClick.AddListener(()=>{LockPickTrigger1(LockPick1,lockPick2,lockPick3);})@Maxkiel你知道我觉得这有点违背了unityEvents的目的,你知道能够从inspectore分配事件。现在,它的所有代码都再次出现了(我更喜欢它,但其他人可能不喜欢)我想知道为什么unity只允许0..1个具有特定类型的参数。。。
void Start()
{
    LockPick1.onClick.AddListener(() => {
        int[] lockPick1 = GetLockPick1Values();
        int[] lockPick2 = GetLockPick2Values();
        int[] lockPick3 = GetLockPick3Values();
        LockPickTrigger(lockPick1, lockPick2, lockPick3);
    });
}