您的位置:首页 > 其它

AssetGraph - 好用的AssetBundle打包工具

2016-03-31 11:28 525 查看
作者:Unity Japan
翻譯:Kelvin Lo

AssetGraph是一個用來針對AssetBundle打包的可視化工具。它的目的是用來建立一個架構在自訂規則下,閱讀容易的AssetBundle管理表。

Usage

1.Add Nodes

從Window裡可以呼叫出AssetGraph的視窗,在空白處按右鍵會列出一個你能新增的節點清單,你可以依照需求建立這些節點。建立一個Loader來當作根,它能蒐集Asset清單並帶到下一個節點,以供未來打包AssetBundle當作參考。


Loader節點裡面可以針對不同平台來做分類,代表你可以針對不同發佈平台來打包。指定一個存在的目錄到Load Path來讓系統知道你的Asset要從哪裡載入。

2.Connect Them

當你建立更多的節點後,只要點一下連結點並拖出一條線,你就可以連結他們彼此。點擊這些線AssetGraph會顯示哪些Asset會通過這些管線。


3.Configure Settings

選擇任何種類的節點,你就可以在Inspector視窗看到它的設定選項,透過這些選項你可以自訂你的打包規則,例如,Filter節點可以用來設定過濾規則,Importer節點可以設定不同的匯入方法。


4.Build It!

最後只要按一下AssetGraph視窗上方的Build按鈕就可以打包了。這工具讓美術或是企劃用更直覺的方式來設計包裝。









Why Rule Based?

因為透過規則化的AssetGraph 來處理 AssetBundle 打包流程,程式設計師和美術與企劃就能用更相同的語言來安全的打包,一旦設定好之後當有新的Asset放入目錄,AssetGraph就會自動的將他們納入需要的打包規則中。

Nodes tips

AssetGraph提供幾種不同功能的節點類型,接下來我們會一一介紹。

Loader

Loader會搜尋要打包的Asset並納入它們, 預設的目錄會在專案的根目錄(全專案搜尋),你也可以指定一個存在的目錄給它。

IN: 沒有

OUT: 指定目錄下所有的Asset清單




Filter

Filter會透過Asset的名字和關鍵字配對來過濾前一個節點傳過來的Asset,你可以在同一個Filter建立複數的規則來達成多重過濾。

IN:Asset清單

OUT:過濾配對之後的Asset清單





Importer

Importer用來改寫由前一個節點傳來Asset的匯入設定(import setting) (註:原Asset設定還是存在的)

IN: Asset清單

OUT: 修改過importer setting後的Asset清單




Grouping

Group 用來將不同的資源清單透過關鍵字指定群組,例如:將經過分類並調整過Import Setting之後的Asset清單群組起來。Group用在打包AssetBundle非常有用,也允許在keyword欄位裡面輸入*號當作是通用字。(例如:Asset*)

IN: Asset清單

OUT: 群組化的Asset清單










Prefabricator

Prefabricator可以讓你在遊戲內依據你需要的格式產生Prefab. 你可以在透過修改AssetGraph.PrefabricatorBase腳本來製作你自己的Prefab。

IN: 群組化的Asset清單

OUT: 產生Prefab之後的群組Asset清單




Prefabricator code example:

public class CreateCharaPrefab : AssetGraph.PrefabricatorBase {
public override void In (string groupKey, List<AssetGraph.AssetInfo> source, string recommendedPrefabOutputDir) {
/*
create character's prefab.

1.texture & material -> set texture to the material of model.
2.model -> instantiate, then set material to model.
3.new prefab -> prefabricate model to new prefab.
4.delete model instance from hierarchy.
*/

~~~ DO SOMETHING ~~~

// export prefab data.
PrefabUtility.ReplacePrefab(modelObj, prefabFile);

}
}


這裡可以找到完整的範例。

Bundlizer

Bundlizer 用來建立指定好名稱後的 "bundle". 如果有用 "*" 的檔名,會同步採用群組的 “*” 設定。

IN: 群組後的Asset清單

OUT: Bundle清單





BundleBuilder

BundleBuilder會處理所有傳入的規則後建立 AssetBundle 檔案,透過Bundlizer和不同的BundleBuilder,你可以同時建立不同的設定的AssetBundle (例如:壓縮或沒壓縮的)

IN: Bundle清單

OUT: 產生的AssetBundle檔案清單




Exporter

Exporter將上述完成步驟的內容輸出存到目錄,你也可以改變匯出的目錄位置。

IN: Asset清單或AssetBundle檔案清單




雖然AssetGraph是日本Unity所開發,但它目前只是一個插件,也無法再Asset Store上找到,所以你必須要到Github上去拉下來,如果對Github操作不熟,也可以下載我們提供的安裝包(不再更新)。

Download Link:

https://github.com/unity3d-jp/AssetGraph

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: