我想为某个事件创建计时器/秒表

时间:2019-06-09 05:06:40

标签: c# unity3d

我有一个可以正常工作的代码,但是我认为如果我继续遵循相同的策略去做所有相同的事情,它将无缘无故地超载于处理器上

我有一个表示时间的变量,并且当gameObject的速度高于0.5f时,该变量在每一帧中均保持为0,因此我不想在每帧都低于0.5f时启动计时器,而不是对其进行重置

    if (speed >= 0.5f)
    {
        t = 0;
    }

    t = t + Time.deltaTime;

1 个答案:

答案 0 :(得分:1)

您可以使用布尔值来保存性能。

public static bool isTimerMoving = false;

public void Update()
{
    if (speed < 0.5f)
    {
        t = t + Time.deltaTime;
        isTimerMoving = true;
    }
    else if (isTimerMoving) {
        t = 0;
        isTimerMoving = false;
    }
}

只要速度达到0.5f,此代码就会重置计时器。如果您只想暂停计时器,则可以从其中删除t = 0

P.S。使用><比使用<=>=更快。不太好,但是我喜欢保持效率;)

编辑:问了一个问题后,回答表明这句话是错误的,我很抱歉。