【发布时间】:2021-01-11 23:23:24
【问题描述】:
我有一个按钮(在 UI 中),有时我想隐藏它(但稍后再显示),这意味着它不应该再显示并且我不应该能够点击它。我找到的唯一解决方案(实际上设法隐藏了按钮)是SetActive()。
但是在Update() 中,当我执行SetActive(false) 时(真/假由我脚本中的变量wave_happening 控制),Update() 不再运行,所以我无法将其设置为再次真实。
当我在另一个脚本中执行GameObject.Find("Start Button").SetActive(true) 时,它只会给我一个 NullReferenceException(对象引用未设置为对象的实例)。
这是我的Update() 函数:
void Update() {
wave_happening = enemy_spawner_script.wave_happening;
Debug.Log(wave_happening);
transform.gameObject.SetActive(wave_happening);
}
是否有解决此问题的解决方案,或隐藏按钮的其他方法?
我对 Unity 和 C# 还很陌生,所以我不太了解。
【问题讨论】:
-
您可以通过禁用按钮的图像来隐藏按钮!
-
你不能通过另一种保持启用的管理器脚本来控制它吗?例如。在您更改
enemy_spawner_script.wave_happening的同一时刻 -
@JaysmitoMukherjee 您还需要禁用功能...您可以单击空白处,它会带您进入菜单:P
-
一般来说这应该是基于事件的,而不是每帧轮询检查一个布尔标志...
-
禁用图像确实不是解决方案伙计们(也可能是文本 - 以及其他问题)