获取currentSelectedGameObject不会停止激活

问题描述 投票:0回答:1

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


所以我尝试在获取不起作用的名称后将“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”

在此先感谢您的帮助 :)

visual-studio unity3d
1个回答
2
投票

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

if (buttonPressed != null && recentlySelected)
{
    Debug.Log(buttonPressed.name);
    buttonPressed = null;
    recentlySelected = false;
}
// Also, else is unnecessary.
© www.soinside.com 2019 - 2024. All rights reserved.