日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

void Update ( ) 更新 void FixedUpdate ( )

發(fā)布時(shí)間:2023/11/30 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 void Update ( ) 更新 void FixedUpdate ( ) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

void Update ( ) 更新?
void FixedUpdate ( ) 固定更新

相同點(diǎn):當(dāng)MonoBehaviour啟用時(shí),其在每一幀被調(diào)用,都是用來更新的。?
異同點(diǎn):第一點(diǎn)不同:?
Update()每一幀的時(shí)間不固定,即第一幀與第二幀的時(shí)間間隔t1和第三幀與第四幀的時(shí)間間隔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("時(shí)間為:" + time);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

這里t1 = 0.04 - 0.02 = 0.02;t2 = 0.55 - 0.35 = 0.2;大約相差了十倍。而如果使用FixedUpdate()會(huì)出現(xiàn)什么情況?

代碼片段:

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("時(shí)間為:" + time);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

我們很清楚地看到t1 = t2 = 0.02。也就是說,FixedUpdate()每幀與每幀之間相差的時(shí)間是固定的,而Update()不是固定的。?
第二點(diǎn)不同:?
Update受當(dāng)前渲染的物體影響,這與當(dāng)前場(chǎng)景中正在被渲染的物體有關(guān)(比如人物的面數(shù),個(gè)數(shù)等),有時(shí)快有時(shí)慢,幀率會(huì)變化,Update被調(diào)用的時(shí)間間隔就會(huì)發(fā)生變化。但是FixedUpdate則不受幀率的變化影響,它是以固定的時(shí)間間隔來被調(diào)用。?
在官網(wǎng)文檔中也提到說: 處理Rigidbody時(shí),需要用FixedUpdate代替Update。例如:給剛體加一個(gè)作用力時(shí),你必須應(yīng)用作用力在FixedUpdate里的固定幀,而不是Update中的幀。(兩者幀長不同)。正是因?yàn)镕ixedUpdate是以固定的時(shí)間間隔來被調(diào)用,所以人物運(yùn)動(dòng)起來比較平滑(運(yùn)動(dòng)起來不會(huì)有忽快忽慢的感覺,像是跳幀似的),這也就是為什么處理Rigidbody時(shí)要用FixedUpdate了(當(dāng)然還有其他一些原因)。FixedUpdate是以固定的時(shí)間間隔來被調(diào)用的,而這個(gè)固定的時(shí)間是可以修改的。?
Edit->Project Setting->time 下的Fixed timestep。?
?
這里是0.02;與上面做的實(shí)驗(yàn)t1 = t2 = 0.02一致

總結(jié)

以上是生活随笔為你收集整理的void Update ( ) 更新 void FixedUpdate ( )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。