杀死一个敌人会导致所有敌人消失 - C# Unity
Killing one Enemy causes every enemy to disappear - C# Unity
我在 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);
}
}
场景的设置方式是我有一个空的游戏对象,其中包含一系列位置对象和一个将敌人精灵放置到位置对象中的生成器脚本。这一切似乎都很好,但我找不到导致它们全部消失的原因。
问题是您已将 Health
声明为静态变量。这意味着 Health
将在所有敌人实例中具有相同的值。改为像这样声明健康:
public float Health = 10.0f;
这样,每个实例化的敌人都可以拥有自己独特的 Health
值。
我在 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);
}
}
场景的设置方式是我有一个空的游戏对象,其中包含一系列位置对象和一个将敌人精灵放置到位置对象中的生成器脚本。这一切似乎都很好,但我找不到导致它们全部消失的原因。
问题是您已将 Health
声明为静态变量。这意味着 Health
将在所有敌人实例中具有相同的值。改为像这样声明健康:
public float Health = 10.0f;
这样,每个实例化的敌人都可以拥有自己独特的 Health
值。