我想检查对象是否处于事件状态,如果是,我想停用其他对象。这是我的方法。它不是最好的,但我只是想让它工作。我的这个方法不能正常工作,因为即使我在 update() 中有它,它也只运行一次。这里需要一些帮助...
更新:问题是,当我选择该选择时,该选择变为真,并且由于另一个选择已经为真,此代码无法正常工作,现在我不知道如何修复它。
public GameObject selectionTop, selectionBot, selectionSplash, selectionFloor;
private void Update() => Check();
public void Check()
{
if (selectionTop.activeSelf)
{
selectionBot.SetActive(false);
selectionSplash.SetActive(false);
selectionFloor.SetActive(false);
}
else if (selectionBot.activeSelf)
{
selectionTop.SetActive(false);
selectionSplash.SetActive(false);
selectionFloor.SetActive(false);
}
else if (selectionSplash.activeSelf)
{
selectionTop.SetActive(false);
selectionBot.SetActive(false);
selectionFloor.SetActive(false);
}
else if (selectionFloor.activeSelf)
{
selectionTop.SetActive(false);
selectionBot.SetActive(false);
selectionSplash.SetActive(false);
}
}
最佳答案
仅当其脚本所在的 GameObject 处于 activeInHierarchy 且脚本已启用时,才会调用更新。我的猜测是您在其中一个被禁用的 GameObject 上安装了此脚本,这导致无法调用更新。
所以我会将此脚本移动到另一个未使用“选择”游戏对象之一的游戏对象,以便始终调用更新。
关于c# - 检查对象是否处于事件状态.Unity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30310414/