Unity 全球技术支持部门制作了一些实用的小工具免费供大家使用,此前已为大家推荐了用于批量处理资源文件的Asset Auditing。今天要给大家推荐的是一款名叫AssetGraph的插件,可以帮助开发者方便地定制AssetBundle构建规则并进行可视化的管理。

请访问Unity中国区Github页面下载Asset Auditing工具:https://github.com/unity-cn/AssetGraph

项目介绍

在Unity 5.x中构建AssetBundle的流程已经比4.x时代大大简化,开发者不用在资源的依赖关系上花费太多时间,但是在实际大型项目中,开发者可能会发现仅靠引擎自带的功能对AssetBundle进行管理还有不太方便的地方。例如:如果希望为不同平台对AssetBundle的构建设置不同的规则(包括打入AssetBundle内的资源,资源的导入设置等),那么开发者可能会在两套不同方案的切换中花费不少的时间,或者需要自己编写一套对应于项目需要的AssetBundle打包工具。鉴于此我们开发了AssetGraph,让开发者可以根据实际需求可视化地定制AssetBundle打包规则并有效地进行管理。

使用方法

1. 添加节点
打开AssetGraph窗口,在AssetGraph的画布上点击鼠标右键会弹出可以添加的节点列表,每个添加的节点都可以在其Inspector中设置对应的属性值。而首先要添加的是Loader节点,这个节点用来指示哪个文件夹下的Assets会作为Output输送给接下来的节点以进行设置或过滤直至最后打入AssetBundle中。

031523wjxoyf74xsmd4hh4.png

2. 连接节点
当你创建了两个以上的节点时,可以通过点击并拖动节点上的小圆点到另一个节点上来创建两个节点之间的link,这时一个节点的Output即成为另一个节点的Input。通过点击link,我们可以在link的inspector窗口中实时查看此时通过此link的Asset。

031523m3l6t1m383qkw61t.png

3. 设置节点属性
通过点击一个节点,你可以在其inspector窗口中设置你所需要的AssetBundle构建规则属性。例如Filter节点允许你设置Asset的过滤规则,而Importer节点则允许你设置需要应用到这个节点的Input Assets上的导入设置。

031524j77zzy27qftzhbfb.png

4. 构建AssetBundle
最后只要点击AssetGraph上的Build按钮,就能构建出基于你所设定规则的AssetBundle了。如此,AssetGraph让你可以简单方便地管理不同的构建需求并通过可视化界面实时验证结果是否正确。

031524lded9wxczdy9cc39.png

节点介绍

1. Loader
Loader定义了Asset的最初源头,你可以指定一个根目录(也可以指定Assets/外部的目录)
λ IN: 无
λ OUT:指定目录下的所有Asset

031524dahamox93ab98tsg.png

2. Filter
Filter用于过滤输入的Asset,你可以在inspector窗口中设置多条过滤的规则。
λ IN: 上个节点输出的Asset
λ OUT:符合过滤规则的Asset

031525uwnd8n5nw3ox8ho8.png

3. Importer
Importer可以重载输入Asset的导入设置(注意只是在构建AssetBundle的时候改变了导入设置,原来的导入设置其他时候仍然生效)
λ IN:上个节点输出的Asset
λ OUT:应用了所设导入设置的Asset

031525g9geqeh91uu9nqh0.png

4. Grouping
Grouping可以根据设定的关键字把输入的Asset进行分组,而“*”星号可以作为关键字的一个通配符。
λ IN:上个节点输出的Asset
λ OUT:根据关键字设置的Asset分组列表

031525ehqfs1vhqwquou5q.png031526spbijj0lhaw9zllt.png031526tvvs2p2i1llal1jj.png

5. Prefabricator
Prefabricator让你可以把输入的Asset创建成Prefab。可以通过扩展AssetGraph.PrefabricatorBase类来定制自己的Prefab创建方式,具体代码示例参见项目github说明页面。
λ IN:上个节点输出的Asset
λ OUT:包含了新生成的Prefab的Asset(Prefab被分配在对应的group中)

031526z9uwjj97jrh9o72w.png

6. Bundlizer
Bundlizer用来把输入的Assets指定到特定的AssetBundle中并设置AssetBundle的命名,其中“*”星号可以适配Grouping节点的通配符。
λ IN:上个节点输出的Asset
λ OUT:包含了输入Asset的AssetBundle

031526rqitx7ta4xillagg.png

7. BundleBuilder
BundleBuilder用于实际构建AssetBundle。通过使用Bundlizer和BundleBuilder,你可以同时构建带有不同设置的AssetBundle(比如说压缩及非压缩)。
λ IN:上个节点输出的AssetBundle
λ OUT:构建出来的AssetBundle文件

031526kybew8rize78r7ym.png

8. Exporter
Exporter可以把输入的AssetBundle或Asset文件保存到指定的文件夹中(可以指定Assets/外部的目录)。
λ IN:上个节点输出的Asset或AssetBundle文件

031527jp2g321jpp0i8njn.png

有了这样的可视化插件,资源依赖关系一目了然,构建AssetBundle是不是也易如反掌呢?立即下载AssetGraph插件用起来吧:https://github.com/unity-cn/AssetGraph

AssetGraph锐亚教育

锐亚教育 锐亚科技 unity unity教程