部署指南
部署指的是把打包后输出的资产放到 Web 服务器或 CDN 上。
本地测试
在 Windows 主机的编辑器下,可以参考以下流程,使用 hfs 快速完成资产部署:
- 下载和安装 hfs,可以去 hfs 的官网下载:https://www.rejetto.com/hfs/?f=dl
- 启动 hfs 并把打包后资产的输出目录(默认为 Bundles)添加到 hfs 中。如下图:
- 把 Downloader 的下载地址改成 hfs 中指向 Bundles 的地址。例如:http://127.0.0.1/Bundles/。
如果是在 Mac 主机的编辑器下,也可以去 AppStore 下载 Personal Web Server,然后把 Bundles 目录添加到服务器上。
当然,也可以按自己的喜好使用其他 Web 服务器做测试,不过,xasset 的下载器有断点续传机制,这需要你所采用的 Web 服务器提供对应的支持。
正式环境
就正式环境而言,xasset 的版本管理机制和一些传统的方案不同,传统方案的目录结构通常是这样的:
app
└─android
├─v1.0.0
└─v1.0.1
而对于使用 xasset 的项目来说,因为每个资产的文件名都带版本信息,所以不再需要分版本存放资产,例如:
app
└─android
这样打包后也仅需提交修改过的内容,在代码中,可以这样获取打包后修改的内容:
[InitializeOnLoad]
public static class BuildBundlesProcessor
{
static BuildBundlesProcessor()
{
BuildScript.preprocessBuildBundles += PreprocessBuildBundles;
BuildScript.postprocessBuildBundles += PostprocessBuildBundles;
Settings.GetDefaultSettings().Initialize();
}
private static void PreprocessBuildBundles(BuildTask obj)
{
// 打包前回调
Debug.LogFormat("Prepare build bundles for {0}", obj.name);
}
private static void PostprocessBuildBundles(BuildTask obj)
{
// 打包后回调,Settings.GetBuildPath 用来获取修改过的文件在工程的相对路径,changes 默认返回的是文件名。
Debug.LogFormat("Post build bundles for {0} with files: {1}", obj.name, string.Join("\n", obj.changes.ConvertAll(Settings.GetBuildPath)));
}
}
另外,除了修改的内容外,最后,还有个 versions.json 需要处理。如果是使用多个打包配置打包,在最后一个打包任务执行完后,应该把这个配置更新到 Web 服务器上,该文件是唯一的文件名不带文件内容版本信息的文件,搞到 Web 服务器之后,需要针对 versions.json 刷新下缓存。
提示
versions.json 其实可以直接通过游戏服或控制服下发,这样,不同的客户端访问不同的服务器的时候,可以让服务器轻松控制客户以什么版本的资产运行。