4.YooAsset资源系统的运行模式
4.1 知识点
资源系统的运行模式

- 编辑器模拟模式(EditorSimulateMode)
- 单机运行模式(OfflinePlayMode)
- 联机运行模式(HostPlayMode)
- Web 运行模式(WebPlayMode)
- 自定义运行模式(CustomPlayMode)
编辑器模拟模式(EditorSimulateMode)
在编辑器下不需要构建资源包即可模拟运行游戏,直接 Play 即可。仅编辑器内生效。

单机运行模式(OfflinePlayMode)
适用于不需要热更新资源的游戏。必须先构建资源包。
构建时,Copy Buildin File Option 建议选择 ClearAndCopyAll(清空后拷贝所有文件),把首包资源带进安装介质。
将构建输出目录下的文件复制到 Assets/StreamingAssets/yoo/DefaultPackage(部分版本可能会自动拷贝,以实际包行为为准)。



- 构建时除带时间戳/版本号的输出目录外,还会生成 OutputCache 目录。
- OutputCache 主要作为 AssetBundle 的本地「素材库」,配合增量构建缩短后续打包时间。
- 每次构建时,
YooAssets会将首次构建生成的 AssetBundle 原始文件存入 OutputCache(未经版本号目录封装、无哈希混淆文件名那一套,相当于可复用的中间产物)。 - 再次构建时:
- 若勾选 Use Asset Depend DB,会依据依赖与内容变更判断哪些资源变了。
- 未变更的资源:可直接从 OutputCache 拷贝已有 AB,跳过重新压缩/加密等重活。
- 变更的资源:重新构建并回写 OutputCache 中对应条目。
联机运行模式(HostPlayMode)
适用于需要热更新的资源流程。
先清空此前拷到 StreamingAssets 下的旧资源(避免本地目录与线上一致性混乱)。

本地可开一个静态资源服务模拟 CDN:例如建 .bat,内容为 python -m http.server 80(端口按本机冲突情况可改)。

把构建产物放到 CDN 约定目录,示例工程使用相对路径 ..\CDN\PC\v1.0 等。


相对路径写成 ..\CDN\PC\v1.0 是因为示例里 GetHostServerURL 把平台与版本段拼进了 URL:
/// <summary>
/// 获取资源服务器地址
/// </summary>
private string GetHostServerURL()
{
//string hostServerIP = "http://10.0.2.2"; //安卓模拟器地址
string hostServerIP = "http://127.0.0.1";
string appVersion = "v1.0";
#if UNITY_EDITOR
if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.Android)
return $"{hostServerIP}/CDN/Android/{appVersion}";
else if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.iOS)
return $"{hostServerIP}/CDN/IPhone/{appVersion}";
else if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.WebGL)
return $"{hostServerIP}/CDN/WebGL/{appVersion}";
else
return $"{hostServerIP}/CDN/PC/{appVersion}";
#else
if (Application.platform == RuntimePlatform.Android)
return $"{hostServerIP}/CDN/Android/{appVersion}";
else if (Application.platform == RuntimePlatform.IPhonePlayer)
return $"{hostServerIP}/CDN/IPhone/{appVersion}";
else if (Application.platform == RuntimePlatform.WebGLPlayer)
return $"{hostServerIP}/CDN/WebGL/{appVersion}";
else
return $"{hostServerIP}/CDN/PC/{appVersion}";
#endif
}
运行 .bat 启动本地 HTTP 服务后,浏览器访问 http://localhost/CDN/PC/v1.0/ 应能看到资源列表。


将当前版本的 version 与清单 bytes 等放回 StreamingAssets,用于客户端与服务器版本信息对比(本地基线 vs 远端)。


将运行模式改为联机,打 PC 包运行,可在本机模拟「联网检查更新 → 下载 → 游玩」。



示例迭代:改 UIHome(如标题加前缀、加按钮),重新构建资源,把新输出拷到 ..\CDN\PC\v1.0,再运行已安装的 PC 包,应能检测到更新并下到新资源。





Web 运行模式(WebPlayMode)
面向 WebGL 以及微信、抖音等小游戏形态,需选择该模式。同样需要构建资源包。
详见官方小游戏方案。
自定义运行模式(CustomPlayMode)
支持挂载多个文件系统。
列表最后一个元素作为主文件系统。
详见官方自定义运行模式。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com