2014 Unity3d大會的部分總結
一、項目開發。管理和公布策略
1. 四大準則
a. 美術的資源量
b. 美術規範,要依據開發什麽樣的遊戲制定統一的規範,這樣盡可能的形成統一的規範。然後程序要協助美術制定對應的查看美術是否適合規範的的工具。並把全部美術資源統計出來(這裏須要UI的二次開發)。
c. 先從CPU和內存的優化。然後GPU
d. 增量更新。包的大小控制,低端設備的支持
控制drawcall的數量。UI貼圖。技能特效,換裝等。
Sorting : Opaque :from front to back
Mipmaps
硬件分級:
{resolution, post-processing, MSAA, Fx/partides density on/off, Shader }
內存管理,一半原則,不要超過內存的一半
{
A. 降低貼圖的大小
B. 場景物體都做成prefab
C. 用好Assetbundle
D. ObjectPool 和 LoadManager,避免頻繁new。在切換場景的時候不釋放公共UI
E. LoadManager,同一時間一次加載
}
AssetBunddle
用alpha test的效率低
自己寫一套控制打包的腳本
二、自己主動打包
AssetPostprocessor
AssetImport
BuildPlayer
支持命令行編譯,自己主動化打包公布
Assetbundle的東西放入到StreamAssets目錄中
NewBehaviourScript.txt新建腳本的模板
Asset label: 提升檢索的速度
打包Android的jar文件命令:jar -cvf class.jar *
Edit裏面有個Gncphics Emulation選項,臨時不清楚幹什麽的。用來模擬不同硬件的測試
增量更新:就是打包的時候要實現。增量更新的方式
1) 腳本資源分離
2) 接口與實現分離
UnityNative code
1. C, C++ 代碼
2. 生成.so文件
3. 放到plugin下
4. 在Unity中調用
Java中調用navtive code 用 Systemn.Loadlibrary
一次打包10個包
BeginSamplePrifilor 取樣CPU的的信息
三、內存
盡可能避免不必要的堆內存的分配
a. CPU – GC Alloc
查看性能分析器裏:記錄遊戲執行時內存分配,盡可能避免不必要的堆內存分配
1. 一次性分配超過2kb的選項
2. 檢測每幀都具有20B以上的內存的分配的原則
b. CPU- Time
幀超過5ms的
c. 內存
ManagedHeap.UsedSize不超過20M
d. 內存
查看是否有反復的資源,紋理壓縮,不要超過1M。 Assetbundle打包的時候的依賴關系。
Device.Present :一般出現了復雜的Shader
Shader.CreateGPUPrgream
Other.compareTag() 不要用等號== 。影響速度
須要了解的內容:
1. 項目的管理
怎樣協調美術和策劃把資源的利用最大化
2. 內存的優化
3. CPU的優化
4. GPU的優化
5. 性能監視器的使用
6. 經常使用性能比較好的插件
7. 特殊友好效果的實現
8. Assetbundle的使用
9. 對Unity3d裏面的特性進行熟悉
目標就是高效率的項目管理流程,一切都以速度和效率為先。
高性能的遊戲設計技巧
Reference:
http://blog.csdn.net/sgnyyy/article/details/23775219
2014 Unity3d大會的部分總結