一起做网店的类似网站,做网站入门看什么书,章贡区建设局网站,wordpress分类标题nothing foundvoid Update ( ) 更新 void FixedUpdate ( ) 固定更新 相同点#xff1a;当MonoBehaviour启用时#xff0c;其在每一帧被调用#xff0c;都是用来更新的。 异同点#xff1a;第一点不同#xff1a; Update()每一帧的时间不固定#xff0c;即第一帧与第二帧的时间间隔t… void Update ( ) 更新 void FixedUpdate ( ) 固定更新 相同点当MonoBehaviour启用时其在每一帧被调用都是用来更新的。 异同点第一点不同 Update()每一帧的时间不固定即第一帧与第二帧的时间间隔t1和第三帧与第四帧的时间间隔t2不一定相同。比如 代码片段 using UnityEngine;using System.Collections;public class TestScript : MonoBehaviour{int i 0;float time 0f;void Update () {i ;time Time.deltaTime;Debug.Log(这是第 i 帧)Debug.Log(时间为: time);}1234567891011121314 这里t1 0.04 - 0.02 0.02t2 0.55 - 0.35 0.2大约相差了十倍。而如果使用FixedUpdate()会出现什么情况 代码片段 using UnityEngine;using System.Collections;public class TestScript : MonoBehaviour{int i 0;float time 0f;void FixedUpdate () {i ;time Time.deltaTime;Debug.Log(这是第 i 帧)Debug.Log(时间为: time);}1234567891011121314 我们很清楚地看到t1 t2 0.02。也就是说FixedUpdate()每帧与每帧之间相差的时间是固定的而Update()不是固定的。 第二点不同 Update受当前渲染的物体影响这与当前场景中正在被渲染的物体有关比如人物的面数个数等有时快有时慢帧率会变化Update被调用的时间间隔就会发生变化。但是FixedUpdate则不受帧率的变化影响它是以固定的时间间隔来被调用。 在官网文档中也提到说 处理Rigidbody时需要用FixedUpdate代替Update。例如:给刚体加一个作用力时你必须应用作用力在FixedUpdate里的固定帧而不是Update中的帧。(两者帧长不同)。正是因为FixedUpdate是以固定的时间间隔来被调用所以人物运动起来比较平滑运动起来不会有忽快忽慢的感觉像是跳帧似的这也就是为什么处理Rigidbody时要用FixedUpdate了当然还有其他一些原因。FixedUpdate是以固定的时间间隔来被调用的而这个固定的时间是可以修改的。 Edit-Project Setting-time 下的Fixed timestep。 这里是0.02与上面做的实验t1 t2 0.02一致