Unity 全球技術(shù)支持部門制作了一些實用的小工具免費供大家使用,此前已為大家推薦了用于批量處理資源文件的Asset Auditing粱檀。今天要給大家推薦的是一款名叫AssetGraph的插件洲敢,可以幫助開發(fā)者方便地定制AssetBundle構(gòu)建規(guī)則并進行可視化的管理。
項目介紹
在Unity 5.x中構(gòu)建AssetBundle的流程已經(jīng)比4.x時代大大簡化茄蚯,開發(fā)者不用在資源的依賴關(guān)系上花費太多時間压彭,但是在實際大型項目中,開發(fā)者可能會發(fā)現(xiàn)僅靠引擎自帶的功能對AssetBundle進行管理還有不太方便的地方渗常。例如:如果希望為不同平臺對AssetBundle的構(gòu)建設(shè)置不同的規(guī)則(包括打入AssetBundle內(nèi)的資源壮不,資源的導(dǎo)入設(shè)置等),那么開發(fā)者可能會在兩套不同方案的切換中花費不少的時間皱碘,或者需要自己編寫一套對應(yīng)于項目需要的AssetBundle打包工具忆畅。鑒于此我們開發(fā)了AssetGraph,讓開發(fā)者可以根據(jù)實際需求可視化地定制AssetBundle打包規(guī)則并有效地進行管理。
使用方法
添加節(jié)點
打開AssetGraph窗口家凯,在AssetGraph的畫布上點擊鼠標右鍵會彈出可以添加的節(jié)點列表缓醋,每個添加的節(jié)點都可以在其Inspector中設(shè)置對應(yīng)的屬性值。而首先要添加的是Loader節(jié)點绊诲,這個節(jié)點用來指示哪個文件夾下的Assets會作為Output輸送給接下來的節(jié)點以進行設(shè)置或過濾直至最后打入AssetBundle中送粱。
連接節(jié)點
當創(chuàng)建了兩個以上的節(jié)點時,可以通過點擊并拖動節(jié)點上的小圓點到另一個節(jié)點上來創(chuàng)建兩個節(jié)點之間的link掂之,這時一個節(jié)點的Output即成為另一個節(jié)點的Input抗俄。通過點擊link,我們可以在link的inspector窗口中實時查看此時通過此link的Asset世舰。
設(shè)置節(jié)點屬性
通過點擊一個節(jié)點动雹,你可以在其inspector窗口中設(shè)置你所需要的AssetBundle構(gòu)建規(guī)則屬性。例如Filter節(jié)點允許你設(shè)置Asset的過濾規(guī)則跟压,而Importer節(jié)點則允許你設(shè)置需要應(yīng)用到這個節(jié)點的Input Assets上的導(dǎo)入設(shè)置胰蝠。
構(gòu)建AssetBundle
最后只要點擊AssetGraph上的Build按鈕,就能構(gòu)建出基于你所設(shè)定規(guī)則的AssetBundle了震蒋。如此茸塞,AssetGraph讓你可以簡單方便地管理不同的構(gòu)建需求并通過可視化界面實時驗證結(jié)果是否正確。
節(jié)點介紹
Loader
Loader定義了Asset的最初源頭查剖,你可以指定一個根目錄(也可以指定Assets/外部的目錄)
IN: 無
OUT:指定目錄下的所有Asset
Filter
Filter用于過濾輸入的Asset钾虐,你可以在inspector窗口中設(shè)置多條過濾的規(guī)則。
IN: 上個節(jié)點輸出的Asset
OUT:符合過濾規(guī)則的Asset
Importer
Importer可以重載輸入Asset的導(dǎo)入設(shè)置(注意只是在構(gòu)建AssetBundle的時候改變了導(dǎo)入設(shè)置笋庄,原來的導(dǎo)入設(shè)置其他時候仍然生效)
IN:上個節(jié)點輸出的Asset
OUT:應(yīng)用了所設(shè)導(dǎo)入設(shè)置的Asset
Grouping
Grouping可以根據(jù)設(shè)定的關(guān)鍵字把輸入的Asset進行分組效扫,而“*”星號可以作為關(guān)鍵字的一個通配符。
IN:上個節(jié)點輸出的Asset
OUT:根據(jù)關(guān)鍵字設(shè)置的Asset分組列表
Prefabricator
Prefabricator可以把輸入的Asset創(chuàng)建成Prefab直砂〉炊蹋可以通過擴展AssetGraph.PrefabricatorBase類來定制自己的Prefab創(chuàng)建方式,具體代碼示例請參見項目GitHub說明頁面哆键。
IN:上個節(jié)點輸出的Asset
OUT:包含了新生成的Prefab的Asset(Prefab被分配在對應(yīng)的group中)
Bundlizer
Bundlizer用來把輸入的Assets指定到特定的AssetBundle中并設(shè)置AssetBundle的命名掘托,其中“*”星號可以適配Grouping節(jié)點的通配符。
IN:上個節(jié)點輸出的Asset
OUT:包含了輸入Asset的AssetBundle
BundleBuilder
BundleBuilder用于實際構(gòu)建AssetBundle籍嘹。通過使用Bundlizer和BundleBuilder,你可以同時構(gòu)建帶有不同設(shè)置的AssetBundle(比如說壓縮及非壓縮)闪盔。
IN:上個節(jié)點輸出的AssetBundle
OUT:構(gòu)建出來的AssetBundle文件
Exporter
Exporter可以把輸入的AssetBundle或Asset文件保存到指定的文件夾中(可以指定Assets/外部的目錄)。
IN:上個節(jié)點輸出的Asset或AssetBundle文件