Unity 5:如何从检查器传递按钮单击功能的多个参数?

时间:2016-07-22 05:35:47

标签: c# uibutton parameter-passing unity5

我想在检查员点击按钮时发送多个参数?

Unity不允许这样做,我怎样才能做到这一点?还有其他方法吗? 有几十个按钮,我使用相同的方法为所有按钮,但发送不同的参数,现在我需要发送多种类型的参数。想不出来怎么样?

1 个答案:

答案 0 :(得分:7)

从编辑器调用Unity功能有限制。它只能接受一个参数,并且该函数必须是非static函数。

这就是了解如何从代码订阅事件的重要性。下面是单击Button时调用的函数示例。它将字符串和整数传递给该函数。很简单,将Button拖到编辑器中的某个按钮插槽,这应该可以。

public Button someButton;

void OnEnable()
{
    //Register Button Events
    someButton.onClick.AddListener(() => buttonCallBack("Hello Affan", 88));
}

private void buttonCallBack(string myStringValue, int myIntValue)
{
    Debug.Log("Button Clicked. Received string: " + myStringValue + " with int: " + myIntValue);
}

void OnDisable()
{
    //Un-Register Button Events
    someButton.onClick.RemoveAllListeners();
}