- [【Unity工具篇】| 游戏完整资源热更新流程,YooAsset官方示例项目](#【Unity工具篇】| 游戏完整资源热更新流程,YooAsset官方示例项目)
-
- 一、导入示例工程
- [二、 Editor Simulate Mode 编辑器下的模拟模式](#二、 Editor Simulate Mode 编辑器下的模拟模式)
- [三、Offline Play Mode 离线运行模式](#三、Offline Play Mode 离线运行模式)
- [四、Host Play Mode 远程联机运行模式](#四、Host Play Mode 远程联机运行模式)
-
- [4.1 选择Host Play Mode](#4.1 选择Host Play Mode)
- [4.2 使用python添加本地测试服务器](#4.2 使用python添加本地测试服务器)
- [4.3 打包测试](#4.3 打包测试)
- [4.4 资源热更测试](#4.4 资源热更测试)
- 总结

前言
- 在Unity 3D游戏开发中,资源管理与热更新是保障项目高效交付、提升玩家体验的核心环节,直接决定了游戏的迭代效率、安装包体积控制及线上运维能力。
- YooAsset 作为一套经过多款百万DAU游戏产品验证的Unity资源管理系统,凭借其灵活的打包策略、高效的资源加载机制、完善的版本管理及多平台适配能力,成为解决商业化游戏资源管理需求的优选方案。
- 前面文章讲了 YooAsset的原理及配置 的相关内容,本篇文章使用官方示例项目测试完整热更新流程。
【Unity工具篇】| 游戏完整资源热更新流程,YooAsset官方示例项目
一、导入示例工程
打开管理界面 Edit/Project Settings/Package Manager
csharp
// 输入以下内容(国际版)
Name: package.openupm.com
URL: https://package.openupm.com
Scope(s): com.tuyoogame.yooasset

在Package Manager 的 MyRegistries 中找到YooAsset,官方一共提供了以下几个示例:

- Space Shooter 太空战机DEMO,包含完整资源热更流程演示。
- Mini Game 小游戏平台的文件系统扩展库。
- Extension Sample 包含编辑器扩展代码的示例和着色器变种收集器。
- UniTask Sample 包含支持UniTask代码的示例。
- Test Sample 单元测试用例。
这里选择安装Space Shooter 进行学习。
二、 Editor Simulate Mode 编辑器下的模拟模式
第一步:Space Shooter在导入完成后,打开YooAsset->AssetBundle Collector 窗口。

第二步:点击Fix修复按钮,然后点击Save按钮保存配置,最后关闭窗口。
第三步:PlayMode需调成Editor Simulate Mode ,不然在Editor下没法游玩。

找到Boot.scene场景启动游戏。


三、Offline Play Mode 离线运行模式
第一步:Build构建。
打开YooAsset->AssetBundle Builder ,Copy BuildinFile Option 选择Clear And Copy All ,然后点击ClickBuild 进行构建。

提示
如果构建失败,可以保存一下场景然后再次尝试。
此时在Assets下会自动创建文件夹StreamingAssets,和本次对应的bundle文件。

第二步:打开Boot场景,PlayMode选择Offline Play Mode ,然后启动游戏。

游戏可以正常游玩,且右下角的版本已经变成本次构建的版本号。

四、Host Play Mode 远程联机运行模式
4.1 选择Host Play Mode
首先打开Boot场景,PlayMode选择 Host Play Mode ,此时应该没办法游玩。

4.2 使用python添加本地测试服务器
在本地新建文件夹目录CDNFile,里面放一个文件夹CDN和一个bat文件启动本地服务器。
CDN目录下新建Android和PC文件夹,然后在PC目录下再新建一个v1.0文件夹用于放bundle文件。

把在Unity中Build的bundle包(默认在该目录下Bundles\StandaloneWindows64\DefaultPackage\)复制到v1.0文件夹下。

此处的目录结构为:~/CDN/PC/v1.0 ,否则没办法正常加载热更资源,因为示例代码中获取资源服务器地址是这样写的,也可以通过改代码的方式调整对应的目录结构。

startServer.bat内容如下,使用python启用本地服务器,没有安装Python的需要去安装一下。

bash
python -m http.server 80
此时双击startServer.bat文件会打开一个命令行窗口,然后去浏览器输入http://127.0.0.1/ 进行访问,可以看到本地目录就完成了。


这个时候启动游戏可以正常运行就说明配置成功了。
4.3 打包测试
游戏可以正常运行了,开始Build一个PC包进行热更测试。


打开游戏可以正常运行游玩,此时如果想更改游戏内容的话就只能重新打包。
接下来在Unity中对游戏进行修改,然后进行热更测试,在不重新打包的情况下修改游戏内容。
4.4 资源热更测试
打开UIHome预制体,这个是游戏主页面的UI,直接在该UI页面上面进行新增一张图,和调整了按钮的位置。

接下来打开AssetBundle Builder 重新点击ClickBuild

把前面创建的文件夹v1.0中的内容全部删掉,将新build出来的内容全部复制到v1.0中。


此时再运行前面打包好的exe文件查看效果,前面的startServer.bat也要运行,否则拉取不到内容。

可以看到进入游戏的时候弹出一个更新提示,更新完之后进入游戏会发现UI主页面已经更新了,这样在没有重新打包的情况下就完成了一次资源的热更新流程。
总结
- 本文围绕YooAsset官方示例项目搭建与资源热更新展开了详细的实操讲解。
- 通过本文的学习可顺利完成官方示例项目的搭建,理解资源热更新的核心流程------包括资源包构建、版本管理、远程下载、及本地加载的全链路实现。
- YooAsset的价值不仅在于示例项目所呈现的基础功能,其分布式构建、资源加密、引用计数内存管理等高级特性,还能满足超大体量项目、多平台部署等复杂场景的需求。
- 后续可基于本文讲解的示例流程,结合自身项目需求,灵活拓展YooAsset的使用场景,优化资源管理策略,实现更高效的资源交付与热更新迭代。
🎬 博客主页:https://xiaoy.blog.csdn.net
🎥 本文由 呆呆敲代码的小Y 原创 🙉
🎄 学习专栏推荐:Unity系统学习专栏
🌲 游戏制作专栏推荐:游戏制作
🌲Unity实战100例专栏推荐:Unity 实战100例 教程
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------



资料白嫖,技术互助
| 学习路线指引(点击解锁) | 知识定位 | 人群定位 |
|---|---|---|
| 🧡 Unity系统学习专栏 | 入门级 | 本专栏从Unity入门开始学习,快速达到Unity的入门水平 |
| 💛 Unity实战类项目 | 进阶级 | 计划制作Unity的 100个实战案例!助你进入Unity世界,争取做最全的Unity原创博客大全。 |
| ❤️ 游戏制作专栏 | 难度偏高 | 分享学习一些Unity成品的游戏Demo和其他语言的小游戏! |
| 💚 游戏爱好者万人社区 | 互助/吹水 | 数万人游戏爱好者社区,聊天互助,白嫖奖品 |
| 💙 Unity100个实用技能 | Unity查漏补缺 | 针对一些Unity中经常用到的一些小知识和技能进行学习介绍,核心目的就是让我们能够快速学习Unity的知识以达到查漏补缺 |