一、資源優化
可通過轉換工具配套提供的資源優化工具,將游戲內紋理資源針對webgl導出做優化。
工具入口:
工具介紹
Texture
搜索規則介紹
已開啟MipMap: 搜索已開啟了MipMap的紋理。
NPOT: 搜索非POT圖片。
isReadable: 搜索已開啟readable紋理。
MaxSize大于512: 搜素MaxSize大于512紋理。
修復規則講解
注意: 每次修復時將當前所要修復資源的importer覆蓋寫入到Library/AssetImporterbak;
還原時,從Library/AssetImporterbak讀取選中資源的importer設置并還原后,會刪除Library/AssetImporterbak,并不是undo/redo邏輯
禁用readable:關閉readable
禁用mipmap:關閉mipmap
優化maxsize:勾選后,可選擇優化maxsize的方式
改變紋理壓縮格式:勾選后可修改紋理壓縮格式
篩選列表結果展示
列表總覽:描述資源個數和資源總內存
引用查找 選中一個資源,查找資源被引用關系
使用前后對比
修復資源前
修復資源后
可以發現資源總內存減少了很多。
二、使用Addressable Assets System進行資源按需加載
1.概述
對于Unity WebGL轉換的小游戲啟動耗時,資源下載通常是貢獻最大的部分。這是由于手游APP往往很少針對首包資源進行特殊優化。因此,優化原則是:
首包資源量不超過5M。
資源按需延遲加載,拆分得盡量細。
2.Addressable在小游戲中的應用
2.1什么是Addressable Assets System
?Addressable特點如下:
低使用門檻:使用Addressable在開發前期就進入快速開發的階段,使用任何你喜歡的資源管理技術,你都能快速的切換來Addressable系統中,幾乎不需要修改代碼。
依賴管理:Addressable系統不僅僅會幫你管理、加載你指定的內容,同時它會自動管理并加載好該內容的全部依賴。在所有的依賴加載完成,你的內容徹底可用時,它才會告訴你加載完成。
內存管理:Addressable不僅僅能記載資源,同時也能卸載資源。系統自動啟用引用計數,并且有一個完善的Profiler幫助你指出潛在的內存問題。
內容打包:Addressable系統自動管理了所有復雜的依賴連接,所以即使資源移動了或是重新命名了,系統依然能夠高效地找到準確的依賴進行打包。當你需要將打包的資源從本地移到服務器上面,Addressable系統也能輕松做到,幾乎不需要任何代價。
2.2使用WXAssetBundleProvider節省內存
WXAssetBundle可以減輕iOS的內存壓力,對于使用Addressable的項目,需要替換Provider來使用WXAssetBundle。
使用方式
下載WXAssetBundleProvider.cs,放到WX-WASM-SDK-V2/Runtime/目錄下。
導入插件后會有WXAssetBundleProvider.cs缺依賴的報錯,需要給WX-WASM-SDK-V2/Runtime 增加 Unity.ResourceManager 的引用。
進入AA的組設置修改Provider如下
最后重新導出 AA包 和 小游戲。