Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 统一方向灯更新(昼夜效果)_Unity3d_Delay_Wait_Yield_Light - Fatal编程技术网

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);