1. 程式人生 > >2014 Unity3d大會的部分總結

2014 Unity3d大會的部分總結

打開 family -s roc bject 釋放 tag 四大 enc

一、項目開發。管理和公布策略

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: 提升檢索的速度

打包Androidjar文件命令: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大會的部分總結