使用布尔控件销毁对象

时间:2014-09-17 15:11:56

标签: mobile unity3d unityscript

我在Unity教程中找到了一个对象,并试图为destroy对象添加一些代码。

我的问题是当我尝试点击计数器减少和布尔值更改为false时。 但如果我继续点击对象,敌人仍会摧毁

如何更正代码?

var counter : int =3;
public var destroy = true;
function Update () {
    var hit: RaycastHit;
   var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
   if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)    

    {
       if (Physics.Raycast (ray, hit, 100)) 
      {
           if(hit.collider.gameObject.tag == "weapon" && destroy==true)

                counter-=1;
                DestroyEnemy();
                Check();
                                  }
        }
    }

function DestroyEnemy() {

 Destroy(GameObject.Find("enemy2(Clone)"));
 Destroy(GameObject.Find("enemy(Clone)"));

}

function Check() {

if (counter <=0)
destroy=false;

}

1 个答案:

答案 0 :(得分:0)

您可能错过了if语句中的括号:

if(hit.collider.gameObject.tag == "weapon" && destroy==true)
    counter-=1;
    DestroyEnemy();
    Check();

如果你运行它,只有counter -= 1将在if语句中。无论DestroyEnemy()值如何,每次点击时都会运行Check()destroy。为多行if语句提供括号:

if(hit.collider.gameObject.tag == "weapon" && destroy==true)
{ // this
    counter-=1;
    DestroyEnemy();
    Check();
} // and this