Unity3d 统一方向灯更新(昼夜效果)
我在这里写信是因为我真的需要你的帮助。我已经创建了这个链接到游戏对象灯光(方向)上的脚本 当我开始游戏时,对象不会旋转,如果我移除线条:Unity3d 统一方向灯更新(昼夜效果),unity3d,delay,wait,yield,light,Unity3d,Delay,Wait,Yield,Light,我在这里写信是因为我真的需要你的帮助。我已经创建了这个链接到游戏对象灯光(方向)上的脚本 当我开始游戏时,对象不会旋转,如果我移除线条: yield WaitForSeconds(0.2); 旋转开始缓慢,然后增加速度,直到(每2圈)返回0。杰达克是对的更新()每帧调用一次,而不是每秒钟调用一次。这样,时间就可以非常快地达到360。要获取自上次调用Update以来经过的时间,请使用time.deltaTime。这基本上意味着当你做transform.Rotate时(Time.deltaT
yield WaitForSeconds(0.2);
旋转开始缓慢,然后增加速度,直到(每2圈)返回0。杰达克是对的<代码>更新()每帧调用一次,而不是每秒钟调用一次。这样,
时间就可以非常快地达到360。要获取自上次调用Update
以来经过的时间,请使用time.deltaTime
。这基本上意味着当你做transform.Rotate时(Time.deltaTime*speed,0,0)代码>,它将根据您的速度旋转。因此,使用速度度量而不是时间度量
旋转缓慢开始,然后增加其速度,直到(每2秒
循环)返回到0
这是预期的行为。就像我说的,你用了时间
而不是速度
。每0.2秒增加一次速度(名为:时间
),从而提高旋转速度
当我开始游戏时,物体不会旋转
我不确定为什么会发生这种情况,但当你等待足够长的时间,你会看到旋转无论如何发生。这可能正在发生,但速度非常缓慢 那么问题是什么?你不知道当yield…
在代码中时为什么旋转不起作用,或者你不知道为什么物体速度缓慢增加?第二部分很简单,Rotate是一个相对函数,意味着每次调用都会将输入值附加到当前旋转。只要做transform.Rotate(Time.deltaTime*speed,0,0)
就可以了。这里有两个问题:第一个:为什么我添加产量时什么都没有发生?第二:为什么,如果我去掉产量,旋转的速度会增加?(我想增加旋转,而不是旋转速度)
yield WaitForSeconds(0.2);