杀死一个敌人会使每个敌人消失 - C#Unity

时间:2015-12-04 21:43:39

标签: c# unity3d scripting unity5

我在Unity中创建的游戏存在问题。玩家控制一个被一大群僵尸攻击的角色。我已经为所有的僵尸创造了一个产卵器并且效果很好,唯一的问题是,一旦玩家杀死一个僵尸,所有的僵尸都会从游戏世界中消失。我发布了附在下面每个僵尸上的敌人脚本。我无法弄清楚为什么每个僵尸都被摧毁而不仅仅是被攻击的僵尸。任何帮助都会很棒!

using UnityEngine;
using System.Collections;

public class Enemy : MonoBehaviour {

public static float Damage = 10.0f;
public static float Health = 10.0f;

public Transform target;
public float Speed;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

    //Destroy the enemy if it's health reaches 0
    if(Health <= 0){
        Destroy(this.gameObject);
        Debug.Log ("Enemy Destroyed!");
    }

    //Constantly move the enemy towards the centre of the gamespace (where the base is)
    float step = Speed * Time.deltaTime;
    transform.position = Vector3.MoveTowards(transform.position, target.position, step);
  }
}

场景的设置方式是我有一个空的游戏对象,其中包含一系列位置对象和一个将敌人精灵放入位置对象的生成器脚本。这一切似乎都很好,但我找不到什么导致它们全部消失。

1 个答案:

答案 0 :(得分:5)

问题是您已将Health声明为静态变量。这意味着Health将在所有敌方实例中具有相同的值。相反,声明健康:

public float Health = 10.0f;

这样,每个实例化的敌人都可以拥有自己唯一的Health值。