Unity Addressable使用之入门篇
Addressable Assets(可寻址资源)系统是Unity提供的一种高级资源管理解决方案,它解决了传统资源管理中的诸多痛点,特别适合中大型项目开发。
官方文档
Unity Addressable Asset system | Addressables | 1.14.3
安装步骤
在Package Manager中搜索安装
安装过后,可以看到新增了Addressables菜单栏
创建Addressables Settings(Window > Asset Management > Addressables > Groups)
创建成功后会生成AddressableAssetsData文件夹,用于将可寻址资源元数据存储在项目的 Assets
目录中。
拖拽资源到Addressables Groups
Addressables Groups窗口介绍
1、创建新的资源组
2、配置文件管理
Addressable Profiles 窗口是用于管理不同构建和加载环境配置的核心工具,可以为不同发布环境(如开发、测试、生产等)定义不同的路径和设置。
Profiles系统使得在不同环境间切换构建配置变得非常简单,无需手动修改每个组的路径设置,只需切换Profile即可自动应用所有相关配置,大大提高了工作流程的效率并减少了配置错误。
菜单栏描述
Local Build Path
本地构建路径
Local Load Path
本地加载路径
Remote Build Path
远程构建路径
Remote Load Path
远程加载路径
[UnityEditor.EditorUserBuildSettings.activeBuildTarget]
自动适配当前平台
菜单栏描述
选项
特点
使用场景
Built-In
Unity 提供的默认配置,适合本地开发和测试
-
快速开始使用Addressables
-
本地开发环境
-
不需要远程内容分发的小型项目
Editor Hosted
专为编辑器内测试设计,模拟远程内容加载但实际使用本地资源
-
测试远程加载逻辑而不实际部署到服务器
-
验证远程内容更新流程
-
开发阶段的快速迭代测试
Cloud Content Delivery
专为Unity的CCD服务优化,
-
使用Unity官方CCD服务的大型项目
Custom
完全自定义所有路径
-
使用自建CDN或第三方存储服务
-
需要特殊目录结构的项目
-
多环境复杂配置需求
3、Play Mode Script
Play Mode Script 是 Unity Addressable Asset System 中的一个关键设置,它决定了在编辑器播放模式(Play Mode)下如何加载和管理 Addressable 资源。这个设置在开发阶段特别重要,因为它影响开发者的工作流程和迭代速度。
Use Asset Database
(快速模式)
Simulate Groups
(模拟模式)
Use Existing Build
(使用已构建版本)
工作原理
- 直接通过 Unity 的 Asset Database 加载资源
- 完全绕过 Addressables 的打包系统
- 不生成任何 AssetBundle
- 模拟完整的 Addressables 系统行为
- 在内存中构建虚拟的 AssetBundle 结构
- 使用真实的加载路径和依赖管理
- 使用之前构建的真正的 AssetBundle
- 完全模拟发布后的运行环境
优点
- 最快的迭代速度
- 无需等待构建过程
- 适合快速原型开发
- 比完整构建快得多
- 能测试加载逻辑和依赖关系
- 可以模拟远程加载场景
- 最接近最终产品的行为
- 能测试所有加载逻辑和打包问题
缺点
- 无法测试实际的加载逻辑
- 无法模拟打包后的资源组织方式
- 可能隐藏资源依赖问题
- 比 Asset Database 模式稍慢
- 某些底层行为可能与实际构建不同
- 需要预先构建 AssetBundle
- 每次资源变更后需要重新构建
- 迭代速度最慢
适用场景
- 早期开发阶段
- 当只关注内容而非加载逻辑时
- 需要快速测试资源变更时
- 大多数开发阶段
- 需要测试加载逻辑但不想等待完整构建时
- 验证资源分组和依赖关系时
- 准备发布前的最终测试
- 调试打包后出现的特定问题
- 测试远程加载和更新流程
如何选择适合的模式
-
项目初期:使用 \"Use Asset Database\" 快速迭代
-
主要开发阶段:使用 \"Simulate Groups\" 平衡速度和准确性
-
发布前测试:切换到 \"Use Existing Build\" 进行全面验证
4、Build菜单栏
New Build(新建构建)
- 执行完整的 Addressables 资源构建流程
- 生成所有配置的 AssetBundles(包括本地和远程资源)
打包的路径
Update a Previous Build(更新已有构建)
- 基于已有构建执行增量更新
- 只重新构建修改过的资源
Clear Build Cache(清除构建缓存)
是 Addressable Asset System 中的一个维护功能,用于删除 Addressables 系统在构建过程中生成的缓存数据。这个功能可以确保每次构建都基于最新的资源状态
当执行清除操作时,会删除以下类型的缓存数据:
AssetBundle 构建缓存
1、临时生成的 AssetBundle 文件
2、依赖关系缓存
3、构建配置缓存
使用场景
1. 解决构建异常
当遇到以下构建问题时建议清除缓存:
构建过程中出现不可预知的错误
资源明明已修改但构建后未生效
依赖关系计算出现异常
2. 平台切换后
当从 iOS 切换到 Android 或其他平台构建时
确保不会混用不同平台的缓存数据
3. 重大配置变更后
Addressables 系统版本升级后
修改了重要的构建参数后
资源分组结构发生重大调整时
注意事项
1、性能影响:清除缓存后首次构建会较慢,系统需要重新计算所有依赖关系,后续构建会重新生成必要的缓存。
2、数据安全性:不会删除您的原始资源文件,不会影响已发布的远程资源,只会删除本地临时缓存文件。
简单使用
using UnityEngine;using UnityEngine.AddressableAssets;using UnityEngine.UI;public class ResTest : MonoBehaviour{ public Image img; void Start() { Addressables.LoadAssetAsync(\"Assets/Res/Icons/icon_prop_1.png\").Completed+= (asset) => { img.sprite = asset.Result; }; }}
后续会继续学习整理Addressable相关文章,敬请期待~