开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:1904

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 2056|回复: 21

[慕容小匹夫] 进击的AssetBundles和它的工具们

[复制链接]  [移动端链接]
排名
1805
昨日变化
3

43

主题

286

帖子

2937

积分

Rank: 9Rank: 9Rank: 9

UID
44527
好友
55
蛮牛币
2448
威望
0
注册时间
2014-9-12
在线时间
551 小时
最后登录
2017-10-9

专栏作家活力之星认证开发者

发表于 2017-7-17 12:51:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

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


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



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

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


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



0x02 AssetBundles-Browser

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


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



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



我们可以很方便的定位目标Asset或者是按照体积对Asset进行排序,甚至检视是否有一些问题发生,比如某个资源是否被重复打包了。
所以接下来我们可以再次向Bundle列表区域拖拽一个需要被制作成Bundle的资源。这次我们发现,在Bundle列表和Asset列表都出现了一个黄色的提示——有四个资源被重复打包了。

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



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




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


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

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

ref:
【1】AssetBundles-Browser Manual

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

-华丽的分割线-
最后打个广告,欢迎支持我的书《Unity 3D脚本编程》
https://item.jd.com/12035114.html

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



回复

使用道具 举报

头像被屏蔽
排名
99
昨日变化

2

主题

2638

帖子

5871

积分

UID
47709
好友
1
蛮牛币
4003
威望
0
注册时间
2014-10-5
在线时间
1193 小时
最后登录
2017-10-12
发表于 2017-7-17 16:43:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

回复 支持 反对

使用道具 举报

4四处流浪
465/500
排名
5812
昨日变化
35

1

主题

138

帖子

465

积分

Rank: 4

UID
192151
好友
0
蛮牛币
162
威望
0
注册时间
2016-12-14
在线时间
148 小时
最后登录
2017-10-18
发表于 2017-7-17 16:53:20 | 显示全部楼层
哇 厉害了刚好需要这样的东西 sixsixsixsix

回复 支持 反对

使用道具 举报

7日久生情
1769/5000
排名
486
昨日变化
2

0

主题

120

帖子

1769

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
45471
好友
2
蛮牛币
6976
威望
0
注册时间
2014-9-18
在线时间
399 小时
最后登录
2017-10-18
发表于 2017-7-18 10:49:57 | 显示全部楼层
工具很好,开源才放心

回复 支持 反对

使用道具 举报

4四处流浪
432/500
排名
5179
昨日变化
5

14

主题

58

帖子

432

积分

Rank: 4

UID
188601
好友
0
蛮牛币
1026
威望
0
注册时间
2016-12-1
在线时间
154 小时
最后登录
2017-10-16
发表于 2017-7-18 15:37:34 | 显示全部楼层
unity发布成iOS64位,实例化asset bundle的时候如果模型有贴图应用就崩溃楼主能帮帮忙吗

回复 支持 反对

使用道具 举报

7日久生情
1804/5000
排名
744
昨日变化
1

10

主题

62

帖子

1804

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
79646
好友
0
蛮牛币
3619
威望
0
注册时间
2015-3-14
在线时间
694 小时
最后登录
2017-10-18
QQ
发表于 2017-7-18 16:45:37 | 显示全部楼层
感谢大牛分享

回复

使用道具 举报

7日久生情
1847/5000
排名
17300
昨日变化
29

2

主题

1553

帖子

1847

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
185807
好友
0
蛮牛币
2483
威望
0
注册时间
2016-11-22
在线时间
268 小时
最后登录
2017-10-18
发表于 2017-7-18 19:52:53 | 显示全部楼层
赞,学习了,谢谢分享

回复 支持 反对

使用道具 举报

排名
4614
昨日变化
30

2

主题

106

帖子

628

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
19436
好友
10
蛮牛币
1456
威望
0
注册时间
2014-3-29
在线时间
232 小时
最后登录
2017-10-17

认证开发者

发表于 2017-7-19 01:30:24 | 显示全部楼层
个人感觉这个还是没啥特别大的用处....

回复 支持 反对

使用道具 举报

5熟悉之中
675/1000
排名
4087
昨日变化
1

0

主题

195

帖子

675

积分

Rank: 5Rank: 5

UID
168312
好友
0
蛮牛币
1245
威望
0
注册时间
2016-9-13
在线时间
206 小时
最后登录
2017-10-17
发表于 2017-7-19 08:48:57 | 显示全部楼层
路过学习了

回复

使用道具 举报

4四处流浪
321/500
排名
6084
昨日变化
3

0

主题

65

帖子

321

积分

Rank: 4

UID
153443
好友
0
蛮牛币
697
威望
0
注册时间
2016-6-24
在线时间
90 小时
最后登录
2017-10-13
发表于 2017-7-19 09:42:14 | 显示全部楼层
哇 厉害了刚好需要这样的东西 sixsixsixsix

回复 支持 反对

使用道具 举报

5熟悉之中
501/1000
排名
5528
昨日变化
3

33

主题

94

帖子

501

积分

Rank: 5Rank: 5

UID
25287
好友
0
蛮牛币
494
威望
0
注册时间
2014-5-15
在线时间
174 小时
最后登录
2017-9-5
发表于 2017-7-19 12:26:31 | 显示全部楼层
fffffffffffffffffffffffffffff

回复 支持 反对

使用道具 举报

排名
16183
昨日变化
29

0

主题

28

帖子

68

积分

Rank: 2Rank: 2

UID
2609
好友
0
蛮牛币
7
威望
0
注册时间
2013-8-26
在线时间
12 小时
最后登录
2017-10-16
发表于 2017-7-19 16:10:44 | 显示全部楼层
进击的AssetBundles和它的工具们,学习了,感谢
[发帖际遇]: yonderbyron 乐于助人,奖励 3 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

7日久生情
1689/5000
排名
914
昨日变化

9

主题

284

帖子

1689

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
75415
好友
2
蛮牛币
4046
威望
0
注册时间
2015-2-22
在线时间
482 小时
最后登录
2017-8-7
发表于 2017-7-19 18:31:19 | 显示全部楼层
谢谢楼主

回复

使用道具 举报

4四处流浪
468/500
排名
5258
昨日变化
37

3

主题

128

帖子

468

积分

Rank: 4

UID
104455
好友
0
蛮牛币
822
威望
0
注册时间
2015-5-30
在线时间
137 小时
最后登录
2017-10-17
QQ
发表于 2017-7-20 11:15:01 | 显示全部楼层
赞,学习了,谢谢分享

回复 支持 反对

使用道具 举报

排名
28106
昨日变化
8

2

主题

9

帖子

19

积分

Rank: 1

UID
233318
好友
0
蛮牛币
22
威望
0
注册时间
2017-7-20
在线时间
2 小时
最后登录
2017-7-23
发表于 2017-7-21 09:55:06 | 显示全部楼层
感谢楼主分享

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表