用于本地資源檢測讳推,幫助開發(fā)者盡早發(fā)現(xiàn)資源文件中存在的問題
- 支持所有版本的Unity項目
- 不依賴Unity Editor,無需安裝綠色運行
- 檢測速度極快强戴,可在UPR中查閱檢測結(jié)果
- 支持命令行模式脆贵,可與CI/CD工具輕松集成,實現(xiàn)自動化檢測
- 規(guī)則庫持續(xù)更新
- 支持AssetBundle冗余檢測
- 支持靜態(tài)代碼分析
Asset Checker 官方教程地址(包含工具下載地址)
資源檢測
- 生成配置文件放可。
assetcheck.exe generate-config
- 檢測Unity工程谒臼。
assetcheck.exe --project=<project_path> --projectId=<project_id>
<project_path>為Unity工程所在路徑,<project_id>為UPR項目Id耀里。
<project_id>非必需項蜈缤。如果填寫了<project_id>,檢測結(jié)束后备韧,可直接在UPR網(wǎng)站該項目內(nèi)查看檢測結(jié)果。
UPR項目創(chuàng)建方式可參考UPR App 使用手冊痪枫,步驟2织堂。點擊ProjectId可以快速拷貝。
- 查看檢測結(jié)果奶陈。
直接打開rule_report.yaml文件查看易阳。
或者登陸UPR網(wǎng)站查看。
在檢測時如果填寫了<project_id>吃粒,檢測結(jié)束后潦俺,可直接在UPR網(wǎng)站該項目內(nèi)查看檢測結(jié)果。
UPR網(wǎng)站支持離線「上傳資源檢測文件」徐勃∈率荆可直接將assetcheck文件夾內(nèi)的assetcheck_result.json文件上傳,查看檢測結(jié)果僻肖。
點擊「詳情」肖爵,可查看資源檢測的詳細(xì)結(jié)果。
4.設(shè)置待檢測資源的路徑范圍
assetcheck支持通過命令行參數(shù) --includePaths 和 --excludePaths 來控制待檢測資源所在的文件夾集合
(注意臀脏,此參數(shù)中填入的路徑分隔符在1.10.2版本之前不會被自動轉(zhuǎn)換為操作系統(tǒng)默認(rèn))
例1:此時僅有Assets目錄(及子目錄)下的資源會進(jìn)入檢測劝堪,其余資源會被忽略
assetcheck.exe --project="C:\unity\sample201904" --includePaths="Assets"
例2:此時Assets目錄下Scripts和Scenes這兩個子目錄中的資源會被忽略,其他Assets下的資源會進(jìn)入檢測
assetcheck.exe --project="C:\unity\sample201904" --includePaths="Assets" --excludePaths="Assets\Scripts,Assets\Scenes"
例3:--excludePaths單獨也可以發(fā)揮作用
assetcheck.exe --project="C:\unity\sample201904" --excludePaths="Third-party-repo,Assets\Lib"
(此外注意揉稚,AssetChecker默認(rèn)已經(jīng)將項目根目錄下的Package和Library目錄忽略)
AssetChecker還支持在config.yaml中對某類別的規(guī)則或者某條具體規(guī)則設(shè)置生效的路徑范圍秒啦,配置的生效優(yōu)先級為:規(guī)則 > 類別 > 項目,高優(yōu)先級的配置會直接覆蓋低優(yōu)先級
例4:當(dāng)項目級別(命令行參數(shù))和規(guī)則設(shè)置中都配置了includePaths或者excludePaths時搀玖,對于”Video size limit“這條規(guī)則余境,僅有它自己的路徑范圍設(shè)置生效,即Assets/Video下的除了CGExport外的資源將參與檢測灌诅;對于所有其他規(guī)則葛超,則適用項目級別的配置,即Assets目錄下的資源都被跳過
assetcheck.exe --project="C:\unity\sample201904" --excludePaths="Assets"
(...)
- category: Video
enabled: true
includePaths: Assets/Included_0,Assets/Included_1
excludePaths: Assets/Ignored_0,Assets/Ignored_1
rules:
- name: Video size limit
description: Size of imported video should not over limit, default at 256MB
includePaths: Assets/Video,Assets/VideoClip
excludePaths: Assets/Video/CGExport
enabled: true
platform: All
customParameters:
sizeLimit: 256
5.指定服務(wù)器地址
對于購買了UPR企業(yè)版的用戶延塑,可以通過--serverIp參數(shù)來指定AssetCheck绣张,AssetBundleCheck,CodeAnalyze的檢測結(jié)果的上傳目的服務(wù)器地址关带,此時使用協(xié)議默認(rèn)為http侥涵,上傳端口默認(rèn)為8080沼撕,展示頁面的端口默認(rèn)為3005
assetcheck.exe --project="C:\unity\sample201904" --serverIp="123.123.123.123"
----
2020-08-13 15:33:07,407 INFO: Current version is 1.11.0
2020-08-13 15:33:07,408 INFO: {***}
2020-08-13 15:33:07,408 WARNING: No project id provided, report will not be uploaded to upr server
2020-08-13 15:33:07,408 INFO: Upload server set to: http://123.123.123.123:8080
2020-08-13 15:33:07,408 INFO: Browse server set to: http://123.123.123.123:3005
也可以通過--uploadServer和--browseServer來直接指定服務(wù)器的完整URL(此時--serverIp會被忽略)
6.資源修復(fù)
Asset Checker中的部分規(guī)則支持直接對檢測到缺陷的資源進(jìn)行修復(fù)
在檢測完成后,如果發(fā)現(xiàn)資源的缺陷是可以自動修復(fù)的芜飘,Asset Checker會生成fix_report.yaml文件务豺,記錄準(zhǔn)備執(zhí)行修復(fù)的資源和修復(fù)規(guī)則
之后,用戶需要執(zhí)行
assetcheck.exe fix --project=<project_path>
來完成資源修復(fù)
現(xiàn)階段用戶可以手動刪除fix_report.yaml中的部分條目來控制所要執(zhí)行的修復(fù)范圍嗦明,后續(xù)我們將提供過濾命令或UPR Web中的操作界面優(yōu)化操作
資源包冗余檢測
1.檢測資源包
assetcheck.exe abcheck --project=<assetbundle_path> --projectId=<project_id>
<assetbundle_path>為AssetBundle包所在絕對路徑(其中不能包括中文)笼沥,<project_id>為UPR項目Id。
<project_id>非必需項娶牌。如果填寫了<project_id>奔浅,檢測結(jié)束后,可直接在UPR網(wǎng)站該項目內(nèi)查看檢測結(jié)果诗良。
UPR項目創(chuàng)建方式可參考UPR App 使用手冊汹桦,步驟2。點擊ProjectId可以快速拷貝鉴裹。
2.查看整體檢測結(jié)果
檢測執(zhí)行完成后舞骆,可點擊運行日志末尾的URL跳轉(zhuǎn)至UPR網(wǎng)站查看詳細(xì)結(jié)果
3.查看Asset依賴關(guān)系鏈
點擊上圖中相應(yīng)的資源AB包中某一個AssetBundle名字,可以在彈出頁面中進(jìn)一步查看此Asset到指定AssetBundle的依賴關(guān)系鏈
4.本地解析結(jié)果
abcheck的執(zhí)行結(jié)果會同時在本地以json文件格式保存在assetcheck所在文件夾下asse_bundle_analyze_result.json中
代碼缺陷檢測
1.檢測項目地址
assetcheck.exe code-analyze --project=<project_path> --projectId=<project_id>
<project_path>為Unity項目所在絕對路徑(其中不能包括中文)径荔,<project_id>為UPR項目Id督禽。