健康与健康距离变量不减少

时间:2014-01-13 02:03:50

标签: unity3d logic unityscript

设置机制,以便在用户输入(“Fire1”)时更新距离,并且如果光线投射发现的距离小于或等于1.5,则扣除健康。

但是,当我单击鼠标按钮时,距离变量不会更新,因此健康状况也不会更新。

**

  

近战系统代码

**

#pragma strict

var Damage : int = 50;
var Distance : float;
var MaxDistance : float = 1.5;

function update ()
{

if(Input.GetButtonDown("Fire1"))
{
var hit : RaycastHit;
if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward), hit))
{
Distance = hit.distance;

if(Distance < MaxDistance)
{
 hit.transform.SendMessage("Apply Damage", Damage, SendMessageOptions.DontRequireReceiver);
}




}
}
}
  

敌人逻辑代码

#pragma strict

var Health : int = 100;

function ApplyDamage(Damage : int)
{

Health -= Damage;



}

* 请解释所有更改。 *

1 个答案:

答案 0 :(得分:3)

除了Man of Snow建议的解决方案(当然是正确的)之外,另一个错误是update()函数中较低的“u”。你想要的真正功能是Update()(上面带有“U”)。 “update()”是一个实际上从未被调用的函数,而不是由Unity调用的每个帧。