进击的AssetBundles和它的工具们

作者: 陈嘉栋 | 来源:发表于2017-07-10 18:55 被阅读1201次

0x00 前言

周末的时候在家看了下去年的Unite16 LA的视频。其中一个session很有趣,是AssetBundles开发团队Reichert的一个“总结过往,畅想未来”的名为《Future of Asset Bundles》的session 。


QQ截图20170709175749.png

简而言之是过去的AssetBundles有很多问题,以后AssetBundles的API可能又会有一些很大的变化。当然,一个好消息是unity显然和微软一样,这两年已经意识到啦开源的意义 一部分代码(高层c#部分的代码)在GitHub上已经开源:
AssetBundles-Browser
AssetBundles-BuildPipeline
在开源社区内通过高频度的交流反馈推进项目的进度,而不是花几个月时间捂出来一个实验室里的怪胎,显然前者让人更有信心。
不过本文想要聊到主要内容并非AssetBundle,而是一个辅助工具——AssetBundles-Browser。

0x01 过去的不足

在这个session 中Reichert总结了若干过去AssetBundle的不足,抛开各种各种和性能或底层机制相关的不足不谈,我很认同的一点就是Editor内AssetBundle工具的缺位。


QQ截图20170709181515.png

当然,Reichert罗列的问题还不止这些,他们甚至还组建了新的Asset Bundle & Build Pipelin团队来处理解决这些已有的问题同时开发新的功能。其中当然包括了为我们这些开发者提供更多的Editor工具来处理AssetBundle的相关问题。

QQ截图20170710154045.png

这其中包括一个叫做AssetBundles-Browser的工具,我感觉还是挺实用,因此在此和大家分享一下。

0x02 AssetBundles-Browser

AssetBundles-Browser-1.png
虽然AssetBundles-Browser是unity开发的一个工具,但是并没有包括在正式发布的Unity版本中。如果想要使用则必须保证Unity的版本在5.6+,并且去GitHub获取相应的脚本:
AssetBundles-Browser QQ截图20170710155823.png

之后将获取的项目内的Editor文件夹拷贝到我们已有的项目中,就可以在Editor的Window菜单栏里找到AssetBundle Browser了。
因为我的示例项目内没有Assetbundles,因此AssetBundle Browser窗口内空空如也。(场景以及模型资源来自:Japanese Matsuri City

QQ截图20170710160850.png

此时我们既可以像以往一样设置目标资源的Asset Labels,也可以直接将资源拖拽到AssetBundle Browser的Bundle列表区域。
例如,我可以直接将场景文件sample拖到AssetBundle Browser的Bundle列表区域。这样一个Bundle就创建好了,它的Asset Labels也会被自动设置。在AssetBundle Browser的右侧——Asset列表区域罗列了这个Bundle所包含的Asset。

QQ截图20170710162814.png

我们可以很方便的定位目标Asset或者是按照体积对Asset进行排序,甚至检视是否有一些问题发生,比如某个资源是否被重复打包了。

所以接下来我们可以再次向Bundle列表区域拖拽一个需要被制作成Bundle的资源。这次我们发现,在Bundle列表和Asset列表都出现了一个黄色的提示——有四个资源被重复打包了。

forcefield223345678933633.gif

那么怎么处理这种被重复引用的资源呢?我想各位在制作自己的AssetBundles时肯定都有各种各样的策略,不过在AssetBundle Browser中处理这种依赖问题却很简单——无非是被重复引用的资源单独打包——创建一个新的Bundle用来存放那些重复引用的资源。

forcefield22334567893363391.gif

当然,除了能往Bundle列表中拖拽来创建新的Bundle,那么我们能否直接在Asset列表中操作Bundle内的Asset呢?这同样是可以的。我们既可以直接将别的Asset拖入到某个Bundle内,也可以直接删除某个Bundle内的Asset。

forcefield2233456789336339.gif

0x03 Build

当AssetBundle的内容设置完成之后,我们就可以构建我们的Bundle文件了。我相信之前大家也是通过拓展编辑器来调用相应的BuildPipline的代码来构建Bundle文件,但是有了AssetBundle Browser之后,我们可以很方便的在AssetBundle Browser的窗口内构建Bundle文件。


forcefield22334567893363391.gif

勾选适合自己使用的选项,选择适合自己的压缩算法都可以实现。
之后,我们就能看到生成的AssetBundles文件了。

是不是比之前方便了很多?

ref:

【1】AssetBundles-Browser Manual

slide可以到这里到这里下载:UniteLA-AssetBundles.pdf
各位如果觉得有趣的话,欢迎点个赞。

-EOF-
最后打个广告,欢迎支持我的书《Unity 3D脚本编程》


欢迎大家关注我的公众号慕容的游戏编程:chenjd01

相关文章

  • 进击的AssetBundles和它的工具们

    0x00 前言 周末的时候在家看了下去年的Unite16 LA的视频。其中一个session很有趣,是AssetB...

  • 进击的女孩们

    马上就要面临毕业找工作了,前路茫茫。 最近时常和一些已经工作的朋友们聊天,也跟一些和我一样在为了毕业焦头烂额的同学...

  • 【Unity】打包(四)

    AssetBundle基础 这篇文章讨论了AssetBundles。介绍了AssetBundles打包系统以及As...

  • 【Unity】AssetBundle打包

    介绍 AssetBundles允许按流的方式从本地或远程加载资源。使用AssetBundles,资源可以存储在远程...

  • 「翻译」Unity中的AssetBundle详解(二)

    为AssetBundles准备资源 使用AssetBundles时,您可以随意将任何Asset分配给所需的任何Bu...

  • AssetBundle基础

    这一章来说说AssetBundles,介绍下它的基础系统,还有一些和AssetBundles进行交互的核心API。...

  • 太阳和它的伙伴们

    你,过份的京近我 就像靠在我身边的火炉 酷热难耐,让我心烦 你,一旦远离我 我的身边就像有座冰山 天气渐凉,寒气袭...

  • 馕和它的伙伴们

    《辞海》上说,馕是波斯语,“面包”的意思,中亚地区的民族都吃馕,这说明馕的分布范围很广。馕在新疆的历史很悠久,在我...

  • 虚伪和它的子民们

    虚伪脱下它的外套 人们开始焦躁不安 虚伪披上它的外套 马路上秩序井然了

  • 麒麟和它的宝宝们

    现在一有空闲就侍弄花花草草,给他们淋淋水,培培土,换换新装。说得我很勤快似的,其实,它们是最好养的,基本上不用我太...

网友评论

本文标题:进击的AssetBundles和它的工具们

本文链接:https://www.haomeiwen.com/subject/wcqehxtx.html