我在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;
}
答案 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