Addressables之资源管理

发布网友 发布时间:2024-10-23 22:16

我来回答

1个回答

热心网友 时间:2024-10-23 23:02

当你在Build Settings中将场景加入打包场景列表时,Unity会在构建时自动打包场景引用的资源到内置数据中。同时,位于Resources路径的资源也会被打包到应用包内。然而,前者的资源只能与场景一起加载,而后者的资源则可以加载。

Addressables资源包含内置资源、额外本地资源和远程服务器资源(远程资源不可包含代码,仅支持资源或序列化数据)。同一类别内存在相同资源时,Unity会复制这些资源,而非共享实例,比如一个材质被多个场景使用,构建时会生成多个材质资源。

构建前需先对Addressables内容进行构建。推荐将场景及Resources路径下的内容移入Addressables组进行管理。Build Settings下的场景必须至少包含一个用于初始化的场景,第三方Packages可不移至Addressables组。

Addressables资源间的依赖处理:若依赖也是Addressable,则根据分组和设置打包至相应bundle;否则一同打包。多个Addressable资源引用同一非Addressable资源时,所有依赖会被包含在不同bundle中。

为解决运行时实例多份存在的问题,可将依赖标记为Addressable,选择与引用资源相同的bundle或不同bundle,加载引用资源时加载依赖bundle。使用Analyse工具识别无用重复资产。

SpriteAtlas设置影响Sprite加载方式,包括是否包含在构建中以及Sprite Packer模式。示例显示,Addressable Sprites与非Addressable资源的打包差异,以及标记Atlas为Addressable时的打包结果。正确打包Atlas仅需标记其为Addressable。

依赖于Sprite的Addressable预制体的打包示例展示了SpriteAtlas冗余及标记Atlas为Addressable后的打包结果。标记Texture为Addressable并分组会生成更多Bundle,但打包结果与描述不符。Label标记用于资源管理,结合MergeMode实现加载组合资源。资产引用可通过MonoBehaviour或ScriptableObject实现,非Addressable资源拖入时自动标记为Addressable。

Addressables提供组打包选项,场景资源与组内其他资源分开打包。组管理涉及分组创建、配置和标签应用,包括标签标记、资源引用管理及自定义AssetReference子类。AssetReference类型支持多种引用方式,自定义子类需实现特定属性展示。引用仅在编辑器中生效,添加后禁止拖拽非Addressable资源引用。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com