最近我們項(xiàng)目快上線了钻蔑,把項(xiàng)目提交到了一個專業(yè)做Unity項(xiàng)目優(yōu)化的網(wǎng)站拧抖。——uwa
他們號稱沒有不存在資源冗余的項(xiàng)目识埋,我們提交以后確實(shí)發(fā)現(xiàn)了一些冗余資源凡伊。但是他們網(wǎng)站有2個缺陷:
- 免費(fèi)用戶一個月只能檢測2次
- 不自由
- 付費(fèi)用戶6600/季度
- 需要上傳自己項(xiàng)目的所有AB文件
- 不安全
而且,我仔細(xì)想了下窒舟,這里面的技術(shù)其實(shí)不是很復(fù)雜系忙。就衍生了一個自己寫一個小插件的想法,然后ABRedundancyChecker就誕生了惠豺。
一银还、插件介紹
- 我把AB包所有的資源分為兩類
- 本包資源
- 依賴包資源
- 該插件把每個AB包的本包資源都列舉出來,然后統(tǒng)計這些資源是否有重復(fù)耕腾,重復(fù)則為冗余见剩。
- 插件github倉庫地址:https://github.com/inkiu0/ABRedundancyChecker
- 喜歡的賞顆星星
二、ABRedundancyChecker使用方法
1. 修改腳本參數(shù)
- 把以下參數(shù)改成自己想要的:
/// <summary>
/// AB文件名匹配規(guī)則
/// </summary>
public string searchPattern = "*.ab";
/// <summary>
/// 冗余資源類型白名單
/// </summary>
public List<Type> assetTypeList = new List<Type> { typeof(Material), typeof(Texture2D), typeof(AnimationClip),
typeof(AudioClip), typeof(Sprite), typeof(Shader), typeof(Font), typeof(Mesh) };
/// <summary>
/// 輸出路徑
/// </summary>
public string outPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
/// <summary>
/// AB文件存放路徑扫俺,會從這個文件夾下遞歸查找符合查找規(guī)則searchPattern的文件苍苞。
/// </summary>
public string abPath = "Assets/StreamingAssets";
[MenuItem("AB冗余檢測/AB檢測")]
2. 開始使用
- 將
ABRedundancyChecker.cs
放在Unity項(xiàng)目的Editor目錄下 - 將所有打包好的AssetBundle文件放在
abPath
目錄下 - 點(diǎn)擊菜單欄
AB冗余檢測
->AB檢測
- 喝一杯茶
- 250MB的AB文件(1600個文件)檢測時間為2分鐘
- 打開輸出到目標(biāo)目錄的MarkDown文件
3. 輸出的MarkDown形如
資源名稱 | 資源類型 | 數(shù)量 | AB文件名 |
---|---|---|---|
smoke_01 | Texture2D | 14 |
art_11_1.ab art_13_103.ab art_13_104.ab art_13_107.ab art_13_109.ab art_13_131.ab art_13_132.ab art_13_31.ab art_13_63.ab art_13_77.ab art_13_81.ab art_13_87.ab art_2_128.ab art_4_1.ab
|
wuti_07 | Texture2D | 12 |
art_11_1.ab art_12_4.ab art_13_102.ab art_13_116.ab art_13_142.ab art_13_17.ab art_13_22.ab art_13_31.ab art_13_59.ab art_13_61.ab art_13_73.ab art_4_1.ab
|