在定义 AssetBundle 时,需要注意一些规则
除了这些规则之外,您可以自由地将任何资源分配到任何您想要的包中。但是,在设置包时,需要考虑某些策略。
逻辑实体分组是一种您可以用来决定如何组织项目每个 AssetBundle 中内容的策略。其原则是根据每个内容片段所代表的项目的函数部分做出决策。这包括用户界面、角色、环境等部分,以及应用程序生命周期中可能频繁出现的任何其他部分。
通过逻辑实体分组组织 AssetBundle 非常适合下载内容 (DLC),因为它使您能够更轻松地对项目进行小的更改,而无需用户重新下载大量未更改的资源。
能够正确实施此策略的最大技巧是,将资源分配到各自包中的开发人员必须准确了解项目何时何地将使用每个资源。
类型分组是一种策略,您将类似类型的资源(例如音频轨道或语言本地化文件)分配到单个 AssetBundle 中。
类型分组有助于建立很少更改的 AssetBundle。以这种方式分组 AssetBundle 可能会导致在进行增量构建时,更改并需要分发的 AssetBundle 数量减少。缺点是,可能需要下载和加载更多 AssetBundle 才能在运行时将所有相关对象组合在一起。
并发内容分组是指您将同时加载和使用的资源捆绑在一起。您可以将这些类型的包视为用于基于关卡的游戏,其中每个关卡包含完全独特的角色、纹理、音乐等。您需要绝对确定一个并发内容分组包中的资源仅在该包中的其余资源也将使用的同时使用。依赖于并发内容分组包中的单个资源会导致加载时间显着增加。您将被迫下载该单个资源的整个包。
并发内容分组包最常见的用例是基于场景的包。在此分配策略中,每个场景包应包含该场景的大部分或所有依赖项。
注意:构建包含场景的 AssetBundle 时,该场景引用的任何资源也将自动包含在 AssetBundle 中,除非这些资源明确分配给其他 AssetBundle。这在执行并发内容分组时很方便,但如果任何引用的资源也由您构建到单独 AssetBundle 中的其他场景使用,则需要注意重复的资源。
项目绝对可以并且应该根据需要混合使用这些策略。为任何给定场景使用最佳资源分配策略可以大大提高任何项目的效率。
例如,项目可能会决定将其不同平台的用户界面 (UI) 元素分组到其自己的平台 UI 特定包中,但将其交互式内容按关卡/场景分组。
无论您遵循哪种策略,以下是一些在整个过程中需要注意的其他提示