Ship the WeChat hot-update catalogs and the camp, TideWhale T2, UI atlas, and animation-lab work.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -51,6 +51,7 @@ namespace AOT.Patch
|
||||
appVersionMin = _settings.AppVersion,
|
||||
appVersionMax = _settings.AppVersion,
|
||||
resVersion = "local",
|
||||
packVersion = "local",
|
||||
cdnRoot = _settings.DefaultCdnRoot,
|
||||
packages = new[] { _settings.PackageName },
|
||||
};
|
||||
@@ -58,7 +59,7 @@ namespace AOT.Patch
|
||||
}
|
||||
else
|
||||
{
|
||||
_view?.SetStatus($"远程版本 {version.resVersion}");
|
||||
_view?.SetStatus($"远程版本 资源 {version.resVersion} 热更 {version.packVersion}");
|
||||
}
|
||||
|
||||
if (VersionInfo.CompareVersion(_settings.AppVersion, version.appVersionMin) < 0)
|
||||
@@ -72,6 +73,7 @@ namespace AOT.Patch
|
||||
{
|
||||
AppVersion = _settings.AppVersion,
|
||||
ResVersion = version.resVersion,
|
||||
PackVersion = version.packVersion,
|
||||
CdnRoot = cdnRoot,
|
||||
PackageName = _settings.PackageName,
|
||||
HttpBase = _settings.HttpBase,
|
||||
@@ -115,26 +117,15 @@ namespace AOT.Patch
|
||||
yield break;
|
||||
}
|
||||
|
||||
_view?.SetStatus("请求资源版本…");
|
||||
_view?.SetProgress(0.35f);
|
||||
var versionOp = package.RequestPackageVersionAsync();
|
||||
yield return versionOp;
|
||||
if (versionOp.Status != EOperationStatus.Succeeded)
|
||||
yield return EnsureManifest(package, version.packVersion, "热更");
|
||||
if (_stepError != null)
|
||||
{
|
||||
onDone?.Invoke(null, $"请求 PackageVersion 失败: {versionOp.Error}");
|
||||
onDone?.Invoke(null, _stepError);
|
||||
yield break;
|
||||
}
|
||||
|
||||
_view?.SetStatus($"更新清单 {versionOp.PackageVersion}");
|
||||
_view?.SetProgress(0.5f);
|
||||
var manifestOp = package.LoadPackageManifestAsync(new LoadPackageManifestOptions(versionOp.PackageVersion, 60));
|
||||
yield return manifestOp;
|
||||
if (manifestOp.Status != EOperationStatus.Succeeded)
|
||||
{
|
||||
onDone?.Invoke(null, $"更新清单失败: {manifestOp.Error}");
|
||||
yield break;
|
||||
}
|
||||
|
||||
_view?.SetStatus("下载资源…");
|
||||
var downloader = package.CreateResourceDownloader(new ResourceDownloaderOptions(10, 3));
|
||||
if (downloader.TotalDownloadCount > 0)
|
||||
@@ -180,18 +171,11 @@ namespace AOT.Patch
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
var companionVersion = companion.RequestPackageVersionAsync();
|
||||
yield return companionVersion;
|
||||
if (companionVersion.Status != EOperationStatus.Succeeded)
|
||||
var pinned = packageName == "Art" ? version.resVersion : null;
|
||||
yield return EnsureManifest(companion, pinned, packageName);
|
||||
if (_stepError != null)
|
||||
{
|
||||
onDone?.Invoke(null, $"资源包 {packageName} 请求版本失败: {companionVersion.Error}");
|
||||
yield break;
|
||||
}
|
||||
var companionManifest = companion.LoadPackageManifestAsync(new LoadPackageManifestOptions(companionVersion.PackageVersion, 60));
|
||||
yield return companionManifest;
|
||||
if (companionManifest.Status != EOperationStatus.Succeeded)
|
||||
{
|
||||
onDone?.Invoke(null, $"资源包 {packageName} 更新清单失败: {companionManifest.Error}");
|
||||
onDone?.Invoke(null, _stepError);
|
||||
yield break;
|
||||
}
|
||||
var companionDownload = companion.CreateResourceDownloader(new ResourceDownloaderOptions(10, 3));
|
||||
@@ -213,6 +197,36 @@ namespace AOT.Patch
|
||||
onDone?.Invoke(ctx, null);
|
||||
}
|
||||
|
||||
string _stepError;
|
||||
|
||||
/// <summary>
|
||||
/// pinnedVersion 来自 version.json:热更用 packVersion,Art 用 resVersion。
|
||||
/// 为空时再回退到包目录里的 .version 文件。
|
||||
/// </summary>
|
||||
IEnumerator EnsureManifest(ResourcePackage package, string pinnedVersion, string label)
|
||||
{
|
||||
_stepError = null;
|
||||
var packageVersion = pinnedVersion;
|
||||
if (string.IsNullOrEmpty(packageVersion))
|
||||
{
|
||||
_view?.SetStatus($"请求{label}版本…");
|
||||
var versionOp = package.RequestPackageVersionAsync();
|
||||
yield return versionOp;
|
||||
if (versionOp.Status != EOperationStatus.Succeeded)
|
||||
{
|
||||
_stepError = $"请求{label}版本失败: {versionOp.Error}";
|
||||
yield break;
|
||||
}
|
||||
packageVersion = versionOp.PackageVersion;
|
||||
}
|
||||
|
||||
_view?.SetStatus($"更新{label}清单 {packageVersion}");
|
||||
var manifestOp = package.LoadPackageManifestAsync(new LoadPackageManifestOptions(packageVersion, 60));
|
||||
yield return manifestOp;
|
||||
if (manifestOp.Status != EOperationStatus.Succeeded)
|
||||
_stepError = $"更新{label}清单失败: {manifestOp.Error}";
|
||||
}
|
||||
|
||||
bool CanContinueWithoutVersion()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
|
||||
Reference in New Issue
Block a user