YooAsset3介绍
YooAsset3 是 YooAsset 的一次重要版本升级。相比 2.3x 版本,YOO3 不只是 API 的规范化调整,更是一次面向大型项目、多包裹、多平台和小游戏场景的架构升级,重点提升文件系统扩展、异步调度、下载缓存和资源加载链路的可维护性。
YOO3 主要变化
-
架构边界更加清晰
YOO3 对运行时核心模块做了系统性拆分。
YooAssets负责全局生命周期与包裹注册,ResourcePackage作为单个包裹的公开操作入口,ResourceManager专注资源加载和内存生命周期,整体职责更加清晰。 -
文件系统更加灵活
YOO3 使用
FileSystemHost统一管理文件系统列表、资源清单和 Bundle 路由,不再让运行模式承担过多职责。开发者可以更容易地组合内置资源、沙盒缓存、Web 远端、小游戏平台等不同文件系统。 -
API 更稳定易扩展
初始化、请求版本、加载清单、下载、解压、导入、实例化和卸载等接口统一采用 Options 模型。相比旧版本的多参数重载,Options 更清晰,也方便后续扩展新参数。
-
异步调度更加可控
YOO3 引入多调度器模型,每个包裹拥有独立调度器,并支持包裹优先级和操作优先级。对于多包裹项目,可以更好地控制资源更新、加载和后台任务的执行顺序。
-
下载和缓存能力更容易定制
YOO3 将下载后端抽象为可替换接口,可以接入 UnityWebRequest、BestHTTP 或自研网络库。缓存能力也抽离为独立的
BundleCache模块,便于实现自定义缓存目录、缓存校验和清理策略。 -
资源加载链路更加统一
YOO3 将已加载资源包抽象为
IBundleHandle,让 Provider 不再关心 Bundle 的具体来源。无论资源来自 AssetBundle、RawBundle、虚拟包还是 Web 文件系统,加载和卸载流程都更加统一。 -
小游戏平台支持更加友好
YOO3 延续了对微信小游戏、抖音小游戏、WebGL 等平台的支持,并通过专用文件系统适配平台差异。开发者可以根据小游戏平台的缓存目录、下载限制和运行环境,定制更合适的资源更新方案。
从 2.3x 升级到 YOO3
对于 2.3x 项目,YOO3 提供了兼容层来帮助迁移。添加宏定义 YOOASSET_LEGACY_API 后,大部分旧 API 可以继续编译通过,兼容 API 会通过 [Obsolete] 给出迁移提示。
不过仍有一些内容需要开发者根据项目情况手动调整。详细的 API 对照、兼容范围和迁移注意事项,请阅读 YooAsset v2.3 到 v3.x 的迁移文档。
我们建议开发者在迁移阶段先启用兼容层,确保项目可以编译运行,然后按警告逐步替换为 YOO3 新接口。完成迁移后,再移除兼容宏,使用完整的 YOO3 API。
开发者如何选择
如果项目已经上线,并且当前资源更新流程稳定,可以继续保持 2.3x 版本,等待合适的维护窗口再升级。
如果是新项目、长期维护项目,或者正在重构资源更新流程,推荐直接使用 YOO3。新的 API 结构更适合多包裹、多平台和自定义文件系统场景,也为后续版本扩展打下了更清晰的基础。
