4.YooAsset资源系统的运行模式

4.YooAsset资源系统的运行模式


4.1 知识点

资源系统的运行模式

  • 编辑器模拟模式 (EditorSimulateMode)
  • 单机运行模式 (OfflinePlayMode)
  • 联机运行模式 (HostPlayMode)
  • Web运行模式 (WebPlayMode)
  • 自定义运行模式 (CustomPlayMode)

编辑器模拟模式 (EditorSimulateMode)

在编辑器下,不需要构建资源包,来模拟运行游戏。直接运行即可。注意该模式只在编辑器下起效

单机运行模式 (OfflinePlayMode)

对于不需要热更新资源的游戏,可以使用单机运行模式。注意该模式需要构建资源包。

打包时,选择Copy Buildin File Option首包资源文件的拷贝方式为ClearAndCopyAll(清空后拷贝所有文件)模式。

复制打包出来的目录下的所有文件到Assets\StreamingAssets\yoo\DefaultPackage目录下。(有可能会自动复制,看版本)


  • 注意打包时,除了对应时间戳生成的包目录,还会生成​​OutputCache目录。
  • ​​OutputCache目录的主要作用是作为AssetBundle的存储仓库,用于实现“增量构建”机制,以显著提升后续打包速度​​。
  • 每次打包时(无论是否开启Use Asset Depend DB),YooAssets都会将首次构建生成的AssetBundle文件存入OutputCache目录
  • 这些文件是​​未经版本号命名、无哈希混淆的原始AssetBundle​​,是后续打包的“素材库”。
  • 当后续再次打包时:
    • YooAssets会检查资源内容是否变更(需勾选Use Asset Depend DB)。
    • ​未变更的资源​​直接从OutputCache目录复制原始AssetBundle文件,跳过重新压缩/加密等耗时操作。
      ​- ​变更的资源​​:重新构建并更新OutputCache中的对应文件。

联机运行模式 (HostPlayMode)

对于需要热更新资源的游戏,可以使用联机运行模式。

清空之前复制在流文件夹下的资源

本地模拟开启资源服务器。创建bat 写入 python -m http.server 80

把打好的文件放入CDN 相对路径是 ..\CDN\PC\v1.0

相对路径是 ..\CDN\PC\v1.0 是因为示例代码中写好了这个路径

/// <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://localhost/CDN/PC/v1.0/ 可以看到资源

把之前打好的version文件和bytes文件放回流文件夹 这是提供当前版本号 为了对比服务器版本号的

修改未联网模式,打PC包并运行,可以模拟联网下载游玩


修改UIHome 比如标题加上Tao前缀 加个按钮叫Tao

重新构建资源

复制新构建的资源到..\CDN\PC\v1.0目录下

重新运行打的PC包,可以看到检查到资源更新需要下载资源。下载后可以看到更新后的Tao,至此完成资源热更新

Web运行模式 (WebPlayMode)

针对WebGL平台的专属模式,包括微信小游戏,抖音小游戏都需要选择该模式。注意:该模式需要构建资源包。

查看小游戏方案

自定义运行模式 (CustomPlayMode)

支持多个文件系统。
注意:列表最后一个元素作为主文件系统!
查看自定义运行模式



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏