我在这里写,因为我真的需要你的帮助。我已经在gameObject灯光(Directional)上创建了这个脚本。
var time : int= 0;
function Update () {
time+=1;
transform.Rotate(time*Time.deltaTime, 0 ,0);
yield WaitForSeconds(0.2);
if (time == 360){
time = 0;
}
}
当我开始游戏时,对象不会旋转,如果我删除该行:
yield WaitForSeconds(0.2);
旋转开始缓慢然后增加速度直到(每2轮)它返回到0。
答案 0 :(得分:0)
Jerdak是对的。每帧都会调用Update()
,而不是每秒都调用time
。这样,Update
非常快达到360。为了获得自上次调用Time.deltaTime
以来经过的时间,请使用transform.Rotate(Time.deltaTime * speed, 0, 0);
。这基本上意味着当你执行time
时,它会根据你的速度旋转。因此,使用速度测量而不是时间测量。
旋转开始缓慢然后增加速度直到(每2个 轮次)它返回0。
这是预期的行为。就像我说的那样,您使用的是speed
而不是time
。您每0.2秒增加一次速度(命名:{{1}}),从而提高旋转速度。
当我开始游戏时,对象不会旋转
我不确定为什么会发生这种情况但是当你等待足够长时间时,你会看到无论如何都会发生旋转。它可能会发生但非常缓慢。