获取currentSelectedGameObject不会停止触发

时间:2019-01-18 12:04:01

标签: visual-studio unity3d

我环顾了如何获取在画布上按下的按钮的名称,而有关“获取名称”的一切都正常 问题在于此事件永远不会停止。


因此,在获得无效的名称后,我尝试将“ buttonPressed”设置为null。

我还尝试将es.currentSelectedGameObject设置为null,这是我不允许的(应该知道,但是值得尝试)

我也在此stackoverflow中搜索了解决方案,但可惜我找不到解决我问题的方法。


 void Update()
{
    buttonPressed = es.currentSelectedGameObject;

    if (buttonPressed != null)
    {
        Debug.Log(buttonPressed.name);
        buttonPressed = null;
    } else
    {
        return;
    }
}

所以我想要的是类似的东西

我单击一个按钮,控制台显示后 “ [时间] NAME_OF_BUTTON”

我目前得到的是永无止境的

“ [时间] NAME_OF_BUTTON”

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

这将触发所有更新。您可以使用es.SetSelectedGameObject(null);取消选择,也可以使用标志属性,例如仅在选择游戏对象时将recentlySelected设置为true,并在条件内将其设置为false。即

if (buttonPressed != null && recentlySelected)
{
    Debug.Log(buttonPressed.name);
    buttonPressed = null;
    recentlySelected = false;
}
// Also, else is unnecessary.