第1章 Addressables概述与环境搭建
第1章 Addressables概述与环境搭建
NyxX第1章 Addressables概述与环境搭建
什么是Addressables系统
Unity Addressables系统是Unity提供的一种高级资源管理解决方案,它允许开发者以地址(Address)的方式引用和加载资源,而不是直接引用资源对象。Addressables系统建立在AssetBundle之上,提供了更高级别的抽象和更灵活的资源管理方式。
Addressables系统的核心思想是将资源与其位置解耦,开发者可以通过一个地址字符串来获取资源,而不需要关心资源具体存储在本地还是远程服务器上。这种设计使得资源管理更加灵活,支持本地资源、远程资源、打包资源和非打包资源的统一管理。
Addressables系统的主要特点包括:
- 统一的资源加载API
- 支持本地和远程资源
- 自动处理依赖关系
- 内置缓存管理
- 支持内容更新
- 灵活的分组策略
为什么需要Addressables(vs传统Resources/AssetBundle)
传统Resources系统的局限性
传统的Resources文件夹方式虽然简单易用,但存在以下严重问题:
- 打包体积过大:所有Resources文件夹中的资源都会被打包到APK/IPA中,无法实现按需加载
- 内存占用高:资源无法在运行时卸载,导致内存持续占用
- 更新困难:资源更新需要重新发布整个应用
- 缺乏灵活性:无法区分本地和远程资源
- 无依赖管理:需要手动处理资源依赖关系
AssetBundle的复杂性
AssetBundle虽然解决了Resources系统的部分问题,但带来了新的复杂性:
- 手动管理复杂:需要手动处理打包、依赖、加载、卸载等流程
- 版本管理困难:需要自己实现版本控制和更新机制
- 错误处理繁琐:需要处理各种加载失败的情况
- 缓存管理复杂:需要手动管理AssetBundle缓存
Addressables的优势
Addressables系统结合了Resources的易用性和AssetBundle的灵活性:
- 简化API:统一的加载和卸载API
- 自动依赖管理:系统自动处理资源依赖关系
- 灵活的分组策略:可以按需分组资源
- 内置更新机制:支持内容更新和差量更新
- 统一本地远程:本地和远程资源使用相同API
- 完善的缓存系统:自动管理内存和磁盘缓存
核心概念预览:地址、组、构建、加载
地址(Address)
地址是Addressables系统的核心概念之一,它是资源的唯一标识符。地址可以是:
- 字符串形式的唯一标识
- 资源路径
- 自定义命名
地址与资源位置解耦,同一个资源可以有多个地址,同一地址也可以指向不同位置的资源。
组(Group)
组是资源的逻辑集合,用于组织和管理资源。通过分组可以:
- 控制资源的打包策略
- 统一管理资源的构建路径
- 实现资源的分类管理
构建(Build)
构建是将标记为Addressable的资源打包成AssetBundle的过程。构建过程会:
- 分析资源依赖关系
- 按组打包资源
- 生成内容目录(Catalog)
- 创建加载路径
加载(Load)
加载是从本地或远程获取资源的过程。Addressables提供统一的加载API,支持:
- 同步和异步加载
- 多种资源类型加载
- 自动依赖处理
安装Addressables包
通过Package Manager安装
- 打开Unity编辑器
- 选择Window > Package Manager
- 在Package Manager窗口中,选择Unity Registry
- 搜索”Addressables”
- 找到”Addressable Asset System”包
- 点击Install按钮安装
通过manifest.json安装
如果需要在项目中明确指定版本,可以在Packages/manifest.json文件中添加:
1 | { |
项目初始化配置
初始化Addressables系统
安装完成后,需要初始化Addressables系统:
- 选择菜单Window > Asset Management > Addressables > Groups
- 如果是首次使用,系统会提示初始化Addressables
- 点击”Yes”确认初始化
初始化过程会:
- 创建AddressableAssetSettings配置文件
- 设置默认的组配置
- 创建必要的配置文件夹
AddressableAssetSettings配置
AddressableAssetSettings.asset文件包含系统的主要配置:
- Build Path:构建后AssetBundle的输出路径
- Load Path:运行时加载AssetBundle的路径
- Profile:不同平台的配置文件
- Catalog:内容目录配置
- Build:构建相关设置
第一个Addressables资源的创建与加载
标记资源为Addressable
- 在Project窗口中选择一个资源(如一个Prefab或Texture)
- 在Inspector窗口中找到Addressable Asset组件
- 勾选”Addressable”复选框
- 设置资源的Address(默认使用文件路径)
创建简单的加载脚本
创建一个简单的脚本用于加载Addressable资源:
1 | using UnityEngine; |
运行测试
- 将上述脚本挂载到场景中的一个GameObject上
- 设置assetAddress为实际的资源地址
- 运行场景,观察资源是否成功加载
关键要点
- 资源加载完成后需要正确释放
- 使用异步加载避免阻塞主线程
- 正确处理加载失败的情况
- 记住在适当时机释放资源引用
通过本章的学习,您已经了解了Addressables系统的基本概念和如何创建第一个Addressables资源。下一章我们将深入学习资源的标记和管理方法。











