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

为AssetBundles准备资源

使用AssetBundles时,您能够随意将任何Asset分配给所需的任何Bundle。可是,在设置Bundles时,须要考虑一些策略。这些分组策略可使用到任何你认为适合的特定项目中。你能够为所欲为地混合和匹配这些策略。html

逻辑实体分组

逻辑实体分组是根据其所表明的项目的功能部分将资产分配给AssetBundles的。这包括诸如用户界面、人物、环境以及在整个应用程序的整个生命周期中频繁出现的其余部分。git

例子

  • 把用户界面的全部纹理和布局数据打包到一块儿
  • 把人物角色所包含的全部的模型和动画打包到一块儿
  • 把多个关卡中共用的纹理和模型打包到一块儿

逻辑实体分组是可下载内容(DLC)的理想选择,由于以这种方式分离的全部内容,您能够对单个实体进行更改,而不须要下载其余未更改的资产。
可以正确实施这一策略的最大的窍门是,开发人员将资产分配给各自的Bundle必须熟悉项目中每一个资产的使用时间和位置。github

类型分组

对于此策略,您能够将类似类型的Assets(如音轨或语言本地化文件)分配给单个AssetBundle。并发

类型分组是构建要由多个平台使用的AssetBundles的更好策略之一。例如,若是您的音频压缩设置在Windows和Mac平台之间是相同的,您能够将全部音频数据本身打包到AssetBundles中,并重复使用这些Bundles,而着色器则倾向于使用更多的平台特定选项进行编译,所以你为Mac构建的着色器包可能不能在Windows上重复使用。此外,这种方法很是适合使你的AssetBundles与更多的Unity版本兼容,如同纹理压缩格式和设置的更改频率比你的脚本或预制体的更改频率更低。布局

并发内容分组(Concurrent Content Grouping)

并发内容分组是将要同时加载和使用的Assets捆绑在一块儿的想法。您能够将这些类型的Bundles用于基于关卡的游戏,其中每一个关卡都包含彻底独特的角色、纹理、音乐等。你要绝对确定的是,包含在这些AssetBundles中一个Asset被使用的同时,其他的Assets也会被使用。对并发内容分组捆绑中的单个资产的依赖将致使加载时间的显著增长。你将由于这个单一Asset而被迫下载整个Bundle。动画

并发内容分组的Bundles最经常使用的用例是基于场景的Bundles。在此分配策略中,每一个场景Bundle应该包含大部分或所有场景依赖关系。翻译

注意,一个项目彻底能够而且应该根据须要来组合这些策略。对于任何给定的场景使用最优资产分配策略能够极大地提升任何项目的效率。3d

例如,一个项目可能决定将其用于不一样平台的用户界面(UI)元素分组到他们本身的特定于平台的UI Bundle中,但按照关卡或场景对其交互式内容进行分组。htm

无论你遵循什么策略,这里有一些额外的建议值得你铭记在心:对象

  • 将常常更新的对象拆分红AssetBundles,这些对象与不多更改的对象分开
  • 组合可能同时加载的对象。如一个模型,它的纹理和动画
  • 若是你注意到多个AssetBundles中的多个对象取决于彻底不一样的AssetBundle中的单个资产,请将依赖关系移动到单独的AssetBundle。若是几个AssetBundles引用了其余AssetBundles中的同一组资产,可能值得将这些依赖关系拉入共享的AssetBundle以减小重复。
  • 若是两套对象不太可能同时加载,例如标清和高清资产,请确保它们在本身的资产组合中。
  • 若是一个AssetBundle中常常有少于50%的Bundle在同一时间加载,那么能够考虑拆分该AssetBundle。
  • 若是有一些小的AssetBundles(少于5到10个资产的)常常同时被加载,能够考虑组合这些AssetBundles。
  • 若是一组对象只是同一对象的不一样版本,可考虑使用AssetBundle Variants

原文连接:
Preparing Assets for AssetBundles


同系列文章

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

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

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

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


本文做者: Sheh伟伟
本文连接: http://davidsheh.github.io/2017/08/13/「翻译」Unity中的AssetBundle详解(二)/
版权声明: 本博客全部文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!

相关文章
相关标签/搜索