定义 AssetBundle 时需要注意一些规则:
除了这些规则,您可以将任何资源分配给所需的任何捆绑包。但是,在设置捆绑包时需要考虑某些策略。
逻辑实体分组策略可用于决定如何整理进入每个项目 AssetBundle 的内容。原则就是,根据每段内容所代表的项目功能部分做出决定。这包括各种不同部分,比如用户界面、角色、环境以及在应用程序整个生命周期中可能经常出现的任何其他内容。
按逻辑实体分组整理 AssetBundle 非常适合用于可下载内容 (DLC),因为这样您就能更轻松地小范围更改项目,无需用户重新下载大量其他未更改的资源。
为了能够正确实施此策略,最大诀窍在于,负责为各自捆绑包分配资源的开发人员必须熟悉项目使用每个资源的准确时机和场合。
使用类型分组策略时,可以将相似类型的资源(例如音频轨道或语言本地化文件)分配到单个 AssetBundle。
类型分组可用于建立很少更改的 AssetBundle。以这种方式对 AssetBundle 进行分组可能会减少 AssetBundle 的更改,并在增量构建完成后需要分发。缺点是可能需要下载和加载更多 AssetBundle 才能在运行时将所有依赖对象集合起来。
并发内容分组是指将需要同时加载和使用的资源捆绑在一起。可以将这些类型的捆绑包用于基于关卡的游戏(其中每个关卡包含完全独特的角色、纹理、音乐等)。有时您可能希望确保其中一个 AssetBundle 中的资源与该捆绑包中的其余资源同时使用。依赖于并发内容分组捆绑包中的单个资源会导致加载时间显著增加。您将被迫下载该单个资源的整个捆绑包。
并发内容分组捆绑包最常见的用例是针对基于场景的捆绑包。在此分配策略中,每个场景捆绑包应包含大部分或全部场景依赖项。
注意:构建包含场景的 AssetBundle 时,该场景引用的任何资源也会自动包含在 AssetBundle 中,除非这些资源被显式分配给不同的 AssetBundle。在进行并发内容分组时,这很方便,但如果任何引用的资源也被其他场景使用,而您正在将这些场景构建到单独 AssetBundle 中的,则需要注意是否有重复的资源。
项目绝对可以也应该根据您的需求混用这些策略。对任何给定情形使用最优资源分配策略可以大大提高项目的效率。
例如,一个项目可能决定将不同平台的用户界面 (UI) 元素分组到各自的 Platform-UI 特定捆绑包中,但按关卡/场景对其交互式内容进行分组。
无论遵循何种策略,下面这些额外提示都有助于掌控全局: