似乎由于某些原因,Unity UI不喜欢使用使用默认参数的函数
public void PrintButtonName(GameObject go, string button_pressed = "none")
{
if (button_pressed != "none")
Debug.Log(go.name);
}
这不会在编辑器中的按钮单击事件中显示。 如果我删除默认值,编辑器可以再次“看到”该功能,您可以使用它。
为什么?这是一个错误吗?我需要使用一个可选参数,但我不能,因为onClick不会看到默认的那个函数。
答案 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();
}