https://bitbucket.org/Unity-Technologies/memoryprofilerios
Unity5 開源了一個新工具能夠用於內存分析。編輯器
Unity遊戲中內存佔用的大頭通常是 紋理內存, 使用自帶的Profiler 工具能夠 查看內存使用狀況。工具
遊戲的內存使用狀況,須要在真機上進行profiler測試,編輯器中,圖片的格式和真機上圖片格式可能不一樣。測試
資源加載方式可能不一樣,AB和Resources目錄。優化
profiler 內存分析分爲兩種, Simple和detailed;ui
simple 能夠看到實時統計數據:對象
紋理數量,mesh數量,材質,音樂等。遊戲
在detail界面:圖片
Assets下可看到ab中的資源,SceneMemory能夠看到場景實例的對象。內存
1:ios 紋理格式儘可能設置爲 pvrrtc ,可是非pot 圖片沒法支持,則使用RGBA16bit 格式
2: sprite packer打包的時候,會由於圖片有無透明通道,而製造多個atlas, 能夠修改policy 代碼,使其不要根據是否有alpha分組,儘可能使圖在一個atlas
3:背景音樂太長,也會佔用大量內存,能夠使用 load type , compressed in memory 在內存中壓縮音樂格式, 用cpu換內存。
4:防止圖片在ab中冗餘,須要將sprite或者texture2d的資源明確的打入一個ab中,這樣使用這些sprite的ui纔可以複用 spriteatlas, 防止同一個圖片在內存中有多份。
這樣優化以後,下降了50%的紋理內存佔用,下降了80%聲音內存消耗
對於非POT的紋理,unity能夠將其轉化爲POT大小,這樣就能夠使用壓縮格式了。
Sprite類型不支持
Unity的圖像資源分爲Sprite類型和texture類型, 若是使用RawImage等應用sprite中的圖像,會致使圖像以Texture2D形式被AB使用,所以最好複製一份資源,供其使用。