我已经在网上关注了一段时间的教程,到目前为止它已经很好了。我唯一的问题是使用RaycastHit。现在乍一看,一切似乎都很好,但是时不时地看起来好像我得到了两次点击。基本上我已经设置好了,每当我按下鼠标按钮时,动画就会随着玩家摆动一个球杆而发出光线,并且一条射线将从玩家(实际上是第一人称相机的游戏对象)发送给敌人。但有时候,游戏对象在两次点击中被摧毁,时不时地被摧毁,只有一次被摧毁。
#pragma strict
var TheDamage : int = 50;
var Distance : float;
var MaxDistance : float = 1.5;
var TheSystem : Transform;
function Update ()
{
if(Input.GetButtonDown("Fire1"))
{
animation.Play("Attack");
}
}
function AttackDamage ()
{
var hit : RaycastHit;
if(Physics.Raycast (TheSystem.transform.position, TheSystem.transform.TransformDirection(Vector3.forward),hit))
{
Distance = hit.distance;
}
if (Distance < MaxDistance)
{
EnemyLogic.ApplyDamage(TheDamage);
}
}
&安培;&安培;
#pragma strict
static var Health = 100;
function Update ()
{
if (Health <= 0)
{
Dead ();
}
}
static function ApplyDamage (TheDamage: int)
{
Health -= TheDamage;
}
function Dead ()
{
Destroy (gameObject);
}