C# 单击()上的Unity按钮。public void Method()与public void Method(arr1[],arr2[],arr3[])的比较
我不熟悉统一和编程。 当我尝试在单击时启动method()按钮时(见图) 由于某些原因,我无法启动public void LockPickTrigger(int[]lockPick1,int[]lockPick2,int[]lockPick3),但public void LockPickTrigger()工作正常。如何启动第一种方法? 代码如下: (向下滚动至“此处开始代码”)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事件只能有一个参
关于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);
});
}