C# 检查对象是否处于活动状态。Unity

C# 检查对象是否处于活动状态。Unity,c#,unity3d,C#,Unity3d,我想检查对象是否处于活动状态,如果是,我想停用其他对象。这是我的方法。这不是最好的,但我只是想让它发挥作用。我使用的这个方法不能正常工作,因为即使我在update()中使用了它,它也只运行一次。这里需要帮助 更新:问题是,当我选择选择该选项时,该选项变为真,并且由于另一个选项已为真,因此该代码不起作用,现在我不知道如何修复它 public GameObject selectionTop; public GameObject selectionBot; public GameObject sele

我想检查对象是否处于活动状态,如果是,我想停用其他对象。这是我的方法。这不是最好的,但我只是想让它发挥作用。我使用的这个方法不能正常工作,因为即使我在update()中使用了它,它也只运行一次。这里需要帮助

更新:问题是,当我选择选择该选项时,该选项变为真,并且由于另一个选项已为真,因此该代码不起作用,现在我不知道如何修复它

public GameObject selectionTop;
public GameObject selectionBot;
public GameObject selectionSplash;
public GameObject selectionFloor;


// Use this for initialization
void Start () {

}
void Update (){
        Check ();
}

// Update is called once per frame
public void Check () {
    if (selectionTop.activeSelf == true) {
        selectionBot.SetActive(false);
        selectionSplash.SetActive(false);
        selectionFloor.SetActive(false);
    }else
    if (selectionBot.activeSelf == true) {
        selectionTop.SetActive(false);
        selectionSplash.SetActive(false);
        selectionFloor.SetActive(false);
    }else
    if (selectionSplash.activeSelf == true) {
        selectionTop.SetActive(false);
        selectionBot.SetActive(false);
        selectionFloor.SetActive(false);
    }else
    if (selectionFloor.activeSelf == true) {
        selectionTop.SetActive(false);
        selectionBot.SetActive(false);
        selectionSplash.SetActive(false);
    }
}

我不确定这是不是一个愚蠢的答案,我从来没有使用过游戏sdk,只是看看代码

如果(…) { } 否则如果(…) { }
我一直看到它是这样写的,但可能只有我,你可以检查你的代码是否同时使用调试器执行,如果不是,你可以使用Debug.Writeline在调试屏幕上的例程中打印一些内容,以查看执行的代码。

使用变量存储当前选择的内容。 然后,在进行新选择时,隐藏当前选择,然后调用检查

  • 或-

创建一个隐藏所有项的函数。每次都这么叫。然后设置你想要激活的项目。

只有当其脚本所在的游戏对象在层次结构中处于活动状态且脚本已启用时,才会调用Update。我的猜测是,您在其中一个被禁用的游戏对象上有此脚本,这导致无法调用更新


因此,我会将此脚本移动到另一个未使用“选择”游戏对象的游戏对象,以便始终调用update。

空格不会打断@Nikita Chernykh的代码。您当前拥有的代码正是您希望它执行的操作,即禁用其他游戏对象和第一个启用的游戏对象。你能解释一下你到底想归档什么吗?如果可能的话,发布你的选择脚本。selectionTop、selectionBot、SelectionPlash、selectionFloor用于什么?如果脚本附加到一个或所有selectionXXX对象,禁用其游戏对象后将不会调用Update。应该发生什么情况,即如何再次启用选择对象?是否还有其他对象/脚本? if(...) { } else if (...) { }