1. Unity中Update,FixedUpdate,LateUpdate的區別
        2022/12/3 12:05:12
        Unity中Update,FixedUpdate,LateUpdate的區別
        void FixedUpdate () 固定更新
        void Update ()   更新
        void LateUpdate() 晚于更新

        FixedUpdate () 和 Update ()  
        同:當MonoBehaviour啟用時,其在每一幀被調用。都是用來更新的
        異:Update()每一幀的時間不固定,即第一幀與第二幀的時間t1和第三幀與第四幀的時間t2不一定相同。FixedUpdate()每幀與每幀之間相差的時間是固定的.
        Update受當前渲染的物體影響,這與當前場景中正在被渲染的物體有關(比如人物的面數,個數等),有時快有時慢,幀率會變化,Update被調用的時間間隔就會發生變化。但是FixedUpdate則不受幀率的變化影響,它是以固定的時間間隔來被調用。
      所以一些物理屬性的更新操作應該放在FxiedUpdate中操作,比如Force,Collider,Rigidbody等。外設的操作也是,比如說鍵盤或者鼠標的輸入輸出Input,因為這樣GameObject的物理表現的更平滑,更接近現實。
      FixedUpdate的時間間隔可以在項目設置中更改,Edit->Project Setting->time 找到Fixed timestep。就可以修改了

        Update和LateUpdate
        LateUpdate是在所有Update函數調用后被調用?捎糜谡{整腳本執行順序。例如:當物體在Update里移動時,跟隨物體的相機可以在LateUpdate里實現。
      Unity后臺主線程將 Update LateUpdate 制作成兩個多線程 先去執行Update的線程,等Update 執行完畢后 在去執行LateUpdate線程。
      舉個例子,一個宿舍4個人,每個人的起床在update中執行,出發在某個人中的lateupdate執行,這樣就可以保證每個人都起床了才會出發。
        因為多個update函數是先后順序是隨機的,所以可能攝像機先update而物體還未移動,而下一幀是若物體先update那么就會出現瞬移的情況。多數攝像機都要加上LateUpdate,即所有場景內的調用結束后再更新攝像機。
        比如說:有2個不同的腳本同時在Update中控制一個物體,那么當其中一個腳本改變物體方位、旋轉或者其他參數時,另一個腳本也在改變這些東西,那么這個物體的方位、旋轉就會出現一定的反復。如果還有個物體在Update中跟隨這個物體移動、旋轉的話,那跟隨的物體就會出現抖動。 如果是在LateUpdate中跟隨的話就會只跟隨所有Update執行完后的最后位置、旋轉,這樣就防止了抖動。
       [1] [2]

      相關文章(向右看)..

      ·相關
      游戲模型突然部分透明解決方案/圖
      Unity:物體沒有影子、影子閃
      ACCESS下載,支持任何WIN
      WIN2K、XP如何新增IIS連
      Unity中Vector3中一些
      unity連續平滑粒子應用技巧/圖
      Unity C#的五種方法調用其
      ngrok本地網站穿透與反向代理
      unity:如何導入頂點變形動畫
      安卓開發者必讀:應用包名大全/圖

      ·熱點
      天天摸天天碰天天添小草