0

我写在这里是因为我真的需要你的帮助。我已经创建了链接在游戏对象灯(定向)上的这个脚本。

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。

4

1 回答 1

0

杰达克是对的。Update()每帧调用一次,而不是每秒调用一次。这样,time很快就达到了 360。为了获取自上次调用以来经过的时间Update,请使用Time.deltaTime. 这基本上意味着当你这样做时transform.Rotate(Time.deltaTime * speed, 0, 0);,它会根据你的速度旋转。所以使用速度测量而不是时间测量。

旋转开始缓慢,然后增加其速度,直到(每 2 轮)它返回到 0。

这是预期的行为。就像我说的,你使用time而不是speed. 您每 0.2 秒增加一次速度(命名为time:),从而增加旋转速度。

当我开始游戏时,对象不旋转

我不确定为什么会发生这种情况,但是当您等待足够长的时间时,无论如何您都会看到轮换发生。它可能正在发生,但非常缓慢。

于 2013-08-26T07:42:58.807 回答