我需要在if语句之前在循环内重置y,然后检查计数

时间:2018-01-09 18:38:19

标签: c# unity3d

你好我试图在找到某个对象时使这个循环计数然后一旦找到所有3它执行最后一行。但是,当我运行代码时,游戏无法启动。我假设这是因为一旦它找不到一个对象就会计算3次。所以我认为解决这个问题的最好方法是在if语句之前重置y循环,然后检查计数。我不确定如何解决这个问题。任何关于我如何实现这一点的想法。任何帮助都会非常感激。

    void Start() {
    y = 0;
    StartCoroutine(checkTurrets());
}

IEnumerator checkTurrets() {
    while (true) {
        y = 0;
        if (GameObject.Find("right") != null) {} else {
            y++;
        }
        y = 0;
        if (GameObject.Find("left") != null) {} else {
            y++;
        }
        y = 0;
        if (GameObject.Find("bottom") != null) {} else {
            y++;
        }
        if (y == 3) {
            y++;
            SphereCollider sc = gameObject.AddComponent(typeof (SphereCollider)) as SphereCollider;

        }
    }
}

1 个答案:

答案 0 :(得分:4)

试试这个

IEnumerator checkTurrets() {
    while (true) {
        if (GameObject.Find("right") != null && GameObject.Find("left") != null && GameObject.Find("bottom") != null) 
        { 
            SphereCollider sc = gameObject.AddComponent(typeof (SphereCollider)) as SphereCollider; 
        } 
    }
}

我假设您要在找到所有三个对象时执行该语句。