2015-12-04 4 views
3

У меня проблема с игрой, которую я создаю в Unity. Игрок управляет персонажем, на который нападает орда зомби. Я создал создателя для всех зомби, и это отлично работает, единственная проблема в том, что, как только игрок убивает одного зомби, все зомби исчезают из игрового мира. Я опубликовал сценарий врага, который прикреплен к каждому зомби ниже. Я не могу понять, почему каждый зомби уничтожается, а не только тот, на кого напали. Любая помощь будет замечательной!Убийство одного врага заставляет каждого врага исчезнуть - C# 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); 
    } 
} 

Путь сцена устанавливается в том, что у меня есть пустой объект игры, который содержит ряд объектов позиционных и сценарий порождения, который помещает противник спрайт в объект позиции. Кажется, все это работает нормально, но я не могу найти, что их заставляет всех исчезнуть.

+0

проблема с экземплярами. –

ответ

5

Проблема в том, что вы указали Health как статическую переменную. Это означает, что Health будет иметь одинаковое значение во всех ваших вражеских экземплярах. Объявить здоровья, как это вместо:

public float Health = 10.0f; 

Таким образом, каждый экземпляр противник будет иметь возможность иметь свой собственный уникальный Health значение.

Смежные вопросы