天天看點

技術分享連載(二十八)資源管理資源管理資源管理資源管理

Q1:在UWA性能報告中,你們建議我們選中Optimize GameObject來提升Mecanim動畫子產品的運作性能,但是這個功能會隐蔽角色骨骼,那麼要挂載該骨骼上的這個點就無法查詢了,有什麼辦法可以解決這個問題嗎?

是的,開啟Optimize GameObject預設情況下會将動畫網格下的所有骨骼結點隐藏,但是,你可以通過“Extra Transform to Expose”檢視你想通過腳本擷取的骨骼結點,這樣既可以提升該角色的動畫子產品性能,又可以達到擷取某個關鍵結點的需求。
技術分享連載(二十八)資源管理資源管理資源管理資源管理

Q2: 我在Profiler中看到Other下System.ExecutableAndDlls的記憶體很大,請問這個是什麼東西,對我們遊戲的性能影響很大嗎?

技術分享連載(二十八)資源管理資源管理資源管理資源管理
一般來說,在移動遊戲中,該選項經常在iOS真機運作時會看到,System.ExecutableAndDlls該項顯示的是執行檔案和所調用的庫(實體、渲染、IO等系統庫)的總和。開發團隊不用太擔心該選項的數值,因為很多應用均在共用這些庫,并且它對于真實項目的記憶體壓力非常小,幾乎沒有影響,而且OS也不會因為該記憶體而殺掉遊戲或應用。

Q3:我們發現材質執行個體數量特别多,想問下這個對性能的影響如何,有沒有什麼建議?

Material的記憶體占用一般很小,是以大量的Material資源對于記憶體的壓力其實很小的。但是,它本身對于場景的切換時間是有影響的,即資源備援得越多,切換場景時,UnloadUnusedAssets的開銷越大,進而增加了場景的切換時間,同時也會影響DrawCall的拼合。是以,建議研發團隊盡可能定位資源備援的原因,并對其進行修複和完善。這一點,我們在UWA性能測評報告中的“分析和建議”中都有詳細說明。
技術分享連載(二十八)資源管理資源管理資源管理資源管理

Q4:現在Unity還不能将場景和 NavMesh資料或者Lightmap資料分離,是嗎?我是想先加載一個幹淨的場景,然後再動态切入不同的光照貼圖和NavMesh網格資料,有什麼辦法嗎?

Lightmap是可以與場景分離的,并且可以通過AssetBundle進行動态加載。建議将Lightmap作為普通的資源進行打包,動态加載後,通過LightmapSetting接口整體替換場景的Lightmap。目前,Navmesh确實是無法與場景分離的。但是在Unity 5.x版本以後,引擎已經允許通過LoadLevelAdditive加載多個場景的方式來加載NavMesh,是以,研發團隊可以嘗試預先将NavMesh在多個場景内烘焙好,然後通過LoadLevelAddtive或類似API來進行加載,進而達到動态加載NavMesh的效果。

原文出處:侑虎科技

本文作者:admin

轉載請與作者聯系,同時請務必标明文章原始出處和原文連結及本聲明。

繼續閱讀