函数并非每次都运行

时间:2018-11-19 16:15:05

标签: c# unity3d

我通过创建一个简单的游戏来学习,例如太空侵略者。我遇到的问题是有时执行脚本,有时不执行。让我向您展示代码:

首先,我的玩家开枪,实例化子弹的预制。

开枪:

void Update() { 
    if (Input.GetMouseButtonDown(0)) { 
        Instantiate(rocket, strzal.position, strzal.rotation); 
    } 
}

子弹脚本:

private void OnTriggerEnter2D(Collider2D collision) { 
   if (collision.gameObject.tag== "Przeszkoda"){ 
       collision.GetComponent().TakeDamage(damage); 
       Destroy(gameObject); 
   } 
}

然后,如果子弹击中目标,则会触发伤害功能:

public void TakeDamage(float amount) { 
   health -= amount; 
   if (health <= 0) { 
       ABC.GetComponent<DEF>().NowyPoziomTrudnosci(); 
       gameObject.SetActive(false);

到目前为止,一切正常。但是问题始于NowyPoziomTrudnosci函数。有时,它的运行会杀死3个敌人,并且什么也没有发生,接下来有2个敌人运行该代码,然后又有x个敌人死亡,并且代码没有执行。

public void NowyPoziomTrudnosci() { 
    kills = kills + 1; 
    Debug.Log("wykonane"+ kills); 
}

知道我在哪里弄错了吗?我会知道NowyPoziomTrudnosci是否根本不会运行。但是它正在运行,而并非每次都运行。

0 个答案:

没有答案