我怎样才能保持原来的速度,同时又能够更改为新的速度?

  • 本文关键字:速度 原来 c# unity-game-engine
  • 更新时间 :
  • 英文 :

public class EnemyBehaviour : MonoBehaviour
{
public float speed;              // or the speed of rotation.
public bool randomSpeed = false;
public float speedRange = 4;
private float originalSpeed;
private void Start() { originalSpeed = speed; }
private void Update()
{
if (!randomSpeed)
{
speedRange = 0;
speed = originalSpeed;
}
else speed = Random.Range(1, speedRange);
}
}

问题出在这一部分Update

if (!randomSpeed)
{
speedRange = 0;
speed = originalSpeed;
}

例如,如果在运行游戏时速度是 3,当我将其设置为 false 时,速度值将一直为 3,我现在无法更改它。但我希望能够将速度值更改为任何值。我希望如果我设置为 false,它会恢复到原始速度,但也能够更改为新速度,然后将原始速度更新为新速度。

我现在这样做的方式,当它是假的时,我锁定了速度。

当然,当您通过每帧的原始速度分配速度值时,它会锁定速度。

要解决它,你不应该把东西放在 Update(( 中。此外,尝试为那些受保护的公共变量使用"get set"语法。

假设您只想在单击randomSpeed复选框时为"速度"分配一次值。

private float randomSpeed
public float RandomSpeed
{
get {return randomSpeed;}
set {
randomSpeed = RandomSpeed;
if (!randomSpeed){
speed = originalSpeed;
} else {
speed = Random.Range(1, speedRange);
}
}
}

相关内容

  • 没有找到相关文章