如何检查更新中的速度值是否已更改,然后设置新的速度值?

时间:2018-03-15 23:17:50

标签: c# unity3d

在剧本的顶部:

public float constantSpeed;
private float lastSpeed;

Update()如果我在游戏运行期间在检查器中更改了constantSpeed,我想在Update()中实时进行更改:

private void Update()
{

}

这是我设定速度的方式:

for (int i = 0; i < instancesToMove.Length; i++)
{
    movementSpeeds[i] = constantSpeed;
}

但我需要在Update()中完成。 lastSpeed应该是helper float,以检查constantSpeed中是否有更改以及是否有更改修改movementSpeeds。但是我如何检查是否有变化?

1 个答案:

答案 0 :(得分:2)

首先,确保将lastSpeed设置为constantSpeed的初始值,这可能最好在Start()

中完成
void Start() {
    lastSpeed = constantSpeed;
}

然后在Update()中,您可以轻松检查constantSpeed是否已更改:

void Update() {
    if (lastSpeed != constantSpeed) {
        lastSpeed = constantSpeed;

        for (int i = 0; i < instancesToMove.Length; i++) {
            movementSpeeds[i] = constantSpeed;
        }
    }
}