目前廠商們比較統(tǒng)一的認(rèn)可標(biāo)準(zhǔn)是內(nèi)存控制在300M左右庶弃。內(nèi)存控制關(guān)系到整個程序架構(gòu)的設(shè)計(jì)和很多細(xì)節(jié)的調(diào)整和優(yōu)化。
1. 貼圖的多次加載
1.1 在加載貼圖方式進(jìn)行優(yōu)化,一個貼圖只加載一份,把多個prefab引用的貼圖進(jìn)行預(yù)先加載(這樣這個貼圖在內(nèi)存中就會只占一份內(nèi)存)
1.2 在上述情況下,靜態(tài)創(chuàng)建(場景的一部分)的東西還是會多占一份內(nèi)存德澈,貼圖的使用上要分開
1.3 游戲一啟動就引用的資源會被加載兩份(原因未知)
2. 貼圖的壓縮
2.1 盡量對貼圖進(jìn)行壓縮歇攻。保證是標(biāo)準(zhǔn)尺寸,才可以壓縮
2.2 因?yàn)閕os對壓縮的支持有限圃验,要把貼圖分為方形icon和背景圖類(4bits壓縮)掉伏,icon類(16bit壓縮)、漸變色強(qiáng)的icon類(不壓縮或者壓縮尺寸)
2.3 尺寸和壓縮方式細(xì)調(diào)
2.4 貼圖排列工具在圖集中自動排列圖元澳窑,采用排料算法
3. 音效的加載方式
3.1 在內(nèi)存中以壓縮方式存儲斧散,大大降低audiomanger
3.2 進(jìn)行適當(dāng)質(zhì)量的降低
3.3 音效設(shè)置為單通道,分別使用mp3,ogg格式
4. 動態(tài)加卸載所有資源摊聋、合理分ab包
4.1 按卡牌劃分卡牌相關(guān)prefab的ab打包(貼圖鸡捐、模型、動作麻裁、音效箍镜;每個卡牌打?yàn)橐粋€ab)、卡牌的圖標(biāo)獨(dú)立打?yàn)橐粋€包(圖標(biāo)使用頻率更頻繁)
4.2 按技能劃分技能相關(guān)prefab的ab打包
4.3 UI的prefab按界面分類打ab包
4.4 從ab創(chuàng)建資源后煎源,ab實(shí)際是沒有卸載的色迂,但是ab內(nèi)的東西并沒有保證完全創(chuàng)建完成,暫時(shí)沒有做完全的卸載
4.5 需要預(yù)先加載的common包內(nèi)是一些動態(tài)使用的資源手销,無法靠ab包依賴關(guān)系加載
5. 對內(nèi)存中的資源進(jìn)行定期清理
5.1 隨著游戲的進(jìn)行歇僧,內(nèi)存中的東西會越來越多,可以在切換場景時(shí)锋拖,進(jìn)行對資源的清空處理
5.2 保證lua程序中的數(shù)據(jù)在合適的時(shí)機(jī)清除
6. 陰影貼圖尺寸問題
在場景中找到會產(chǎn)生投影的燈诈悍,設(shè)置它使用QualitySetting的Resolution,然后Resolution設(shè)置到一個合理的尺寸
7. 字體文件問題
使用的字體庫文件只保留常用字
8. Android不支持部分壓縮格式如DXT
如果選了DXT格式兽埃,在Android手機(jī)上圖片是原尺寸的
9. 模型適當(dāng)壓縮侥钳,動作盡量壓縮
10. 對mipmap進(jìn)行適當(dāng)?shù)拈_關(guān),UI一般關(guān)閉柄错,模型打開舷夺。
mipmaps渲染模式可以查看mipmap的使用情況