对敌人造成伤害

时间:2014-11-01 14:39:35

标签: unity3d unityscript

我正在进行2D,Top-Down游戏。

当我按空格键并且敌人在玩家的一定距离内时,我希望能够对敌人造成伤害。

此时代码会让敌人慢慢向玩家移动,并在玩家碰撞时对其造成伤害。当我击中空格键时,敌人被摧毁但我希望只有当敌人与玩家关闭时才会受到伤害。

这是我目前的敌人代码,有一个健康系统设置:

var Player : Transform;
var MoveSpeed = 4;
var MinDist = 5;
var Health = 100;
var anyValue = 100;

function Update () 
{
  transform.LookAt(Player);

  if(Vector2.Distance(transform.position,Player.position) >= MinDist)
  {
      transform.position += transform.forward*MoveSpeed*Time.deltaTime;
   }
{
  if(Health <= 0)
  {
      Dead();
  }

}
if (Vector3.Distance(transform.position, Player.position) < someValue &&    Input.GetKeyDown(KeyCode.Space)) 
{
  ApplyDamage(someValue);
}
}

function ApplyDamage (TheDamage : int)
{
  Health -= TheDamage;
}

function Dead ()
{
  Destroy (gameObject);
}

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

要在一定距离内施加伤害我需要这个:

if (Vector3.Distance(transform.position, Player.position) < 1.25 
    && Input.GetKeyDown(KeyCode.Space)) 
{
   ApplyDamage(5);
}