1. 程式人生 > >Unity優化大全(三)之CPU-Physics

Unity優化大全(三)之CPU-Physics

前言:

        因為在整體學習的一些資料沒來得及及時更新,現在來講講Physics的優化。

進入主題:

  Physics優化有很多方面,這裡先說說一些常在專案中出現的優化知識。

       1.將物理模擬時間步設定到最小化狀態。在我們的專案中不可以將讓它低於16毫秒。

      Fixed Timestep是和物理計算有關的。所以,若計算的頻率太高,自然會影響到CPU的開銷。同時,若計算頻率達不到遊戲設計時的要求,有會影響到功能的實現,所以如何抉擇需要各位具體分析,選擇一個合適的值。

2.減少角色控制器移動命令的呼叫。移動角色控制器會同步發生,每次呼叫都會耗損極大的效能。我們的做法是快取每幀的移動請求,並且僅運用一次。

 3.修改程式碼以免依賴“ControllerColliderHit” 回撥函式。這證明這些回撥函式處理得並不十分迅速。

 4.面對效能更弱的裝置,要用skinned mesh代替physics cloth。cloth引數在執行表現中發揮重要作用,如果你肯花些時間找到美學與執行表現之間的平衡點,就可以獲得理想的結果。

 5.在物理模擬過程中不要使用Ragdolls,只有在必要時才讓它生效。

 6.要謹慎評估觸發器的“OnInside”回撥函式,在我們的專案中,我們儘量在不依賴它們的情況下模擬邏輯。

 7.使用層次而不是標籤。我們可以輕鬆為物件分配層次和標籤,並查詢特定物件,但是涉及碰撞邏輯時,層次至少在執行表現上會更有明顯優勢。更快的物理計算和更少的無用分配記憶體是使用層次的基本原因。

 8.不要使用網格碰撞器(Mesh Collider,因為它太耗效能了!

 9.最小化碰撞檢測請求(例如Ray Casts和Sphere Checks),儘量從每次檢查中獲得更多資訊。

 10.真實的物理(剛體)很消耗,不要輕易使用,儘量使用自己的程式碼模仿假的物理。

 11.對於投射物不要使用真實物理的碰撞和剛體,用自己的程式碼處理。

。。。。。。。

 最後的最後

   很不完善,之後我會不斷去完善,大家還有什麼更好的建議可以在下面留言哦!謝謝大家微笑