首页 > 解决方案 > 功能不是每次都运行

问题描述

我通过创建一个简单的游戏来学习,比如太空入侵者。我遇到的问题是有时执行脚本,有时不执行。让我给你看一下代码:

首先我的玩家开枪,它实例化了一个子弹预制件。

开枪:

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如果根本不运行,我会理解的。但它正在运行,只是不是每次都在运行。

标签: c#unity3d

解决方案


推荐阅读