我有一个可以正常工作的代码,但是我认为如果我继续遵循相同的策略去做所有相同的事情,它将无缘无故地超载于处理器上
我有一个表示时间的变量,并且当gameObject的速度高于0.5f时,该变量在每一帧中均保持为0,因此我不想在每帧都低于0.5f时启动计时器,而不是对其进行重置>
if (speed >= 0.5f)
{
t = 0;
}
t = t + Time.deltaTime;
答案 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。使用 >
或<
比使用<=
或>=
更快。不太好,但是我喜欢保持效率;)
编辑:问了一个问题后,回答表明这句话是错误的,我很抱歉。