Unity 企業級使用案例分析
- Import Setting
- Model: Read/Write Enabled
- FBX: Animation Type Generic -> None
- Texture: Generate Minmaps(3D/2D)
- Audio: IOS->mp3, Android->vorbis(force to mono)
- Animation Clip 60fps -> 30fps
- 相關優化
- Shader.WarmupAllShader
一次性先編譯所有Shader, 預設是用到才編譯
- 不使用 Resources 資源太多啟動時間變長
- NGUI 建構在 C#(Mono) 上,會導致過多的記憶體堆疊
- 去掉不必要的Alpha通道
- Unity Profiler
- 保存分析資料
- Unity 5.6 介面右上方可保存 log
- overhead/unaccounted 分析時的額外資訊(包含 profiler本身消耗)
- CanvasRenderer.OnTransformChanged (5.3 -> 5.5 優化)
- string.memcpy: struct copy 過多
- putGeometryJobFence: vertex 操作過多
- Xcode instrument time profiler
- 可看到 unity 底層方法的使用消耗
- Allocations 分析記憶體使用
- Capture GPU frame
- Unity version 選擇
- 小版本號皆修正bug (e.g. 5.6.1f1, 5.6.1p2)