Visual studio 获取currentSelectedGameObject不需要';不要停止射击

Visual studio 获取currentSelectedGameObject不需要';不要停止射击,visual-studio,unity3d,Visual Studio,Unity3d,我环顾四周,了解了如何获取画布上按下的按钮的名称,而关于“获取名称”的所有操作都很好 一个问题是,这一事件从未停止过 因此,我尝试在获得名称后将“buttonPressed”设置为null,但该名称无效 我还尝试将es.currentSelectedGameObject设置为null,但我不允许这样做(应该知道这一点,但值得一试) 我也搜索了这个stackoverflow来寻找解决方案,但遗憾的是,我找不到解决我问题的方法 所以我想要的是 我点击一个按钮,一旦控制台显示 “[时间]按钮的名

我环顾四周,了解了如何获取画布上按下的按钮的名称,而关于“获取名称”的所有操作都很好 一个问题是,这一事件从未停止过


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

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

我也搜索了这个stackoverflow来寻找解决方案,但遗憾的是,我找不到解决我问题的方法



所以我想要的是

我点击一个按钮,一旦控制台显示 “[时间]按钮的名称”

我现在得到的是源源不断的信息

“[时间]按钮的名称”


非常感谢您的帮助:)

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

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

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

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

哦,对不起,我应该仔细看一看,我自己也注意到了“SetSelectedGameObject”。谢谢你指出这一点!:)我现在使用这个方法,它是有效的,你会说这是好的,还是我应该使用flag选项以获得更好的理由?再次感谢你的帮助!不确定。取决于你想做什么。如果您希望所选对象在写入其名称后出于某种原因保持选中状态,则可能需要标志选项。哦,对不起,我应该仔细查看并注意到“SetSelectedGameObject”。谢谢你指出这一点!:)我现在使用这个方法,它是有效的,你会说这是好的,还是我应该使用flag选项以获得更好的理由?再次感谢你的帮助!不确定。取决于你想做什么。如果希望选定对象在写入其名称后出于某种原因保持选定状态,则可能需要“标志”选项。