当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《杀死一个敌人会使每个敌人消失-C#Unity》经验,为你挑选了1个好方法。

我在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> James Hogle..:

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

public float Health = 10.0f;

这样,每个实例化的敌人将能够拥有自己的唯一Health值.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有