UI无法识别具有默认参数的函数

时间:2016-03-28 05:40:32

标签: unity3d

似乎由于某些原因,Unity UI不喜欢使用使用默认参数的函数

public void PrintButtonName(GameObject go, string button_pressed = "none")
{
    if (button_pressed != "none")
        Debug.Log(go.name);

}

这不会在编辑器中的按钮单击事件中显示。 如果我删除默认值,编辑器可以再次“看到”该功能,您可以使用它。

为什么?这是一个错误吗?我需要使用一个可选参数,但我不能,因为onClick不会看到默认的那个函数。

1 个答案:

答案 0 :(得分:0)

从Unity Editor分配UI回调函数非常限制。当Unity UI出现时,您无法通过编辑中的更多参数调用 1 参数。我仍然认为现在仍然适用限制

解决方案是通过代码完成此操作。

public Button newbiezButton; //Drag button to here from Editor


void OnEnable() (){
//Add listener
 newbiezButton.onClick.AddListener(() => PrintButtonName(yourGameObj, yourString));
}

public void PrintButtonName(GameObject go, string button_pressed = "none")
{
    if (button_pressed != "none")
        Debug.Log(go.name);

}

public void OnDisable(){
//Remove listener
 newbiezButton.onClick.RemoveAllListeners();
}