Unity遊戲優化(第三版) (Davide Aversa、Chris Dickinson 著)
Unity高級編程主程手記 (陸澤西 著)
物理引擎
最大允許時間步長
- 物理更新會緩衝更新
- 透過設置最大時間步長丟掉卡住的緩衝更新
碰撞檢測
- 離散碰撞
rigidbody激活與眠機機制
- 超過動態閥值激活反之休眠
物理性能優化
縮放
- 盡可能接近(1,1,1)
- 位移量與縮放視覺引響遊戲真實度
質量
- 質量比不要過大,容易產生物理不穩定
靜態碰撞器
- 善用靜態碰撞器
射線
- 慎用射線,效能大於AABB
簡化網格碰撞器
- 使用基本型合併
避免布娃娃碰撞
- 假碰撞框
- 物理分層
- 禁用
內存管理
1 | unity引擎目的: |
垃圾回收策略
- 手動觸發
- 避免垃圾回收:D
手動JIT編譯
- 預先提前反射C#
值與參
- GC釋放速度
- 空引用要等待GC回收
傳值與傳參
- 指針大小遠小於整串值
- 嚴肅善用ref
字符是引用類型
- 字符串會鎖定在內存上
- 更改字符會產生新的字符內存,舊的會進入GC
- 慎用操作符(+、+=)連接字符,每合併一次都將產生新的內存
Unity Dots
Job System
- job
- 平行執行
- 共享本地內存(需手動GC)
- Allocator
- Temp Dispose
- TempJob Dispose
- Persistent Dispose
- Allocator
ECS
- 分篇概訴
Burst編譯器
- 最佳化計算
- 數據矩陣化計算