CDN + YooAsset
CDN + YooAsset
YooAsset可以满足以下任何需求:
- 我想发布一个不包含任何游戏资源的安装包,然后玩家边玩边下载。
- 我想发布一个可以保证前期体验的安装包,然后玩家自己选择下载关卡内容。
- 我想发布一个保证300MB以下内容的安装包,然后进入游戏之前把剩余内容下载完毕。
- 我想发布一个偏单机的游戏安装包,在网络畅通的时候,支持正常更新。在没有网络的时候,支持游玩老版本。
- 我想发布一个MOD游戏安装包,玩家可以把自己制作的MOD内容上传到服务器,其它玩家可以下载游玩。
- 我们在制作一个超大体量的项目,有上百GB的资源内容,每次构建都花费大量时间,是否可以分工程构建?
搭配 UOS CDN 使用
1.安装 YooAsset
打开 YooAsset 快速开始 并按照教程所示完成安装(推荐通过PackageManager安装)。
2.下载示例教程
打开 YooAsset 示例教程 并按照教程所示完成Sample的下载。
3.资源打包并上传
在Unity Project中点击 「YooAsset -> AssetBundle Builder」,打开构建面板并点击「构建」:
资源包将构建在 Build Output 所示的路径下,按照以下部署方式部署资源目录:
UOS CDN
└─android
├─v1.0(APP版本)
├─v1.1(APP版本)
└─v2.0(APP版本)
└─iphone
├─v1.0(APP版本)
├─v1.1(APP版本)
└─v2.0(APP版本)将Bundles文件中 [Platform]->[DefaultPackage]->[Build Version] 目录按照平台进行重新部署,示例将 [StandaloneOSX]->[DefaultPackage] 下的 [V1.0] 文件夹放入新建的 [UOS CDN]->[PC] 文件夹中:
并将文件夹 UOS CDN 上传到 Bucket 中:
4.修改配置
4.1.修改 UOS CDN 地址
Assets/Samples/Space Shooter/GameScript/Runtime/PatchLogic/FsmNode/FsmInitializePackage.cs
修改方法 GetHostServerURL() 中 Host 地址为 UOS CDN 地址(注意替换ULR中 bucketId 为真实的 BucketId)。
private string GetHostServerURL()
{
//string hostServerIP = "http://10.0.2.2"; //安卓模拟器地址
string hostServerIP = "https://a.unity.cn/client_api/v1/buckets/{bucketId}/entry_by_path/content/?path=";
string buildVersion = "V1.0";
#if UNITY_EDITOR
if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.Android)
return $"{hostServerIP}UOS CDN/Android/{buildVersion}";
else if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.iOS)
return $"{hostServerIP}UOS CDN/IPhone/{buildVersion}";
else if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.WebGL)
return $"{hostServerIP}UOS CDN/WebGL/{buildVersion}";
else
return $"{hostServerIP}UOS CDN/PC/{buildVersion}";
#else
if (Application.platform == RuntimePlatform.Android)
return $"{hostServerIP}UOS CDN/Android/{buildVersion}";
else if (Application.platform == RuntimePlatform.IPhonePlayer)
return $"{hostServerIP}UOS CDN/IPhone/{buildVersion}";
else if (Application.platform == RuntimePlatform.WebGLPlayer)
return $"{hostServerIP}UOS CDN/WebGL/{buildVersion}";
else
return $"{hostServerIP}UOS CDN/PC/{buildVersion}";
#endif
}4.2.关闭在URL末尾添加时间戳
Assets/Samples/Space Shooter/GameScript/Runtime/PatchLogic/FsmNode/FsmRequestPackageVersion.cs
重要: 修改方法 UpdatePackageVersion() , 关闭在URL末尾添加时间戳。
var operation = package.RequestPackageVersionAsync(false);4.3.修改Boost的运行模式
修改Boost的运行模式为 Host Play Mode :
4.运行 Boost 场景
