我想检查对象是否处于活动状态,是否我想要停用其他对象。这是我的方法。它不是最好的,但我只想让它工作。我有这种方法不正常,因为它只运行一次,即使我在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);
}
}
答案 0 :(得分:3)
只有当其脚本所在的GameObject处于activeInHierarchy且脚本已启用时才会调用更新。我的猜测是你在其中一个GameObjects上有这个脚本被禁用,导致更新不被调用。
所以我会将这个脚本移动到另一个未使用"选择"游戏对象,以便始终调用更新。
答案 1 :(得分:0)
我不确定这是否是一个愚蠢的答案,我从来没有使用游戏sdk,只是看着代码......
if(...) { } else if (...) { }
我总是看到它以这种方式编写,但也许只是我,你可以检查你的代码是否都使用调试器执行,如果不是,你可以使用Debug.Writeline来打印内容调试屏幕上的例程,以查看执行的代码。
答案 2 :(得分:0)
使用变量存储当前选择的内容。 然后,当进行新选择时,隐藏当前选择,然后调用check。
制作隐藏所有物品的功能。每次都打电话。然后设置您想要激活的项目。