整理項目特效Prefab時發現Prefab特別大,一個包含幾十個ParticleSystem的Prefab大小竟然達到了1MB(項目採用了ForceText模式),懷疑是ParticleSystem的序列化字段太多,於是創建一個空ParticleSystem生成Prefab,發現竟然有80KB那麼大,和預想中的一樣。
用Sublime打開Prefab進行研究分析,發現ParticleSystem序列化內容很大的原因如下:
- 很多沒有用到得Module也被序列化了,這一點在Inspector面板上打開Debug模式也能看到
- float和Color有大量的Curve數據,即使並沒有採用這些Curve模式
嘗試進行解決,一方面,對於ParticleSystem裏面enabled爲false的Module,直接分析Prefab內容進行刪除;另一方面,把沒有用到的Curve數據進行清理,最後可以將Prefab壓縮到原始大小的10%左右。
最後問題來了,將清理和的ForceText Prefab轉爲Binary之後,那些被清理的序列化字段又回來了,打AssetBundle測試也是如此,結論是清理只能減少Git/SVN的傳輸對比:)
Unity官方我求求你趕快修復吧......