Land Explorer in HomeCamp with boot loading, journal UI, and CDN publish tooling.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
udx
2026-11-04 16:18:01 +08:00
co-authored by Cursor
parent 9eec364f30
commit 80678ec499
405 changed files with 48053 additions and 420302 deletions
@@ -25,7 +25,7 @@ namespace AOT.Patch
public IEnumerator Run(Action<BootContext, string> onDone)
{
_view?.SetStatus("检查版本…");
_view?.SetStatus("正在检查更新…");
_view?.SetProgress(0.05f);
VersionInfo version = null;
@@ -55,11 +55,11 @@ namespace AOT.Patch
cdnRoot = _settings.DefaultCdnRoot,
packages = new[] { _settings.PackageName },
};
_view?.SetStatus($"版本回退本地 ({versionError})");
Debug.LogWarning($"[Boot] Local version fallback: {versionError}");
}
else
{
_view?.SetStatus($"远程版本 资源 {version.resVersion} 热更 {version.packVersion}");
Debug.Log($"[Boot] Remote art={version.resVersion} pack={version.packVersion}");
}
if (VersionInfo.CompareVersion(_settings.AppVersion, version.appVersionMin) < 0)
@@ -85,14 +85,14 @@ namespace AOT.Patch
#if UNITY_EDITOR
if (_settings.EditorDirectHotUpdate)
{
_view?.SetStatus("编辑器直通热更(跳过资源补丁)");
_view?.SetStatus("正在准备冒险…");
_view?.SetProgress(0.9f);
onDone?.Invoke(ctx, null);
yield break;
}
#endif
_view?.SetStatus("初始化资源系统…");
_view?.SetStatus("正在准备资源…");
_view?.SetProgress(0.15f);
if (!YooAssets.IsInitialized)
@@ -125,15 +125,15 @@ namespace AOT.Patch
yield break;
}
_view?.SetProgress(0.5f);
_view?.SetStatus("下载资源…");
_view?.SetProgress(0.4f);
_view?.SetStatus("正在下载资源…");
var downloader = package.CreateResourceDownloader(new ResourceDownloaderOptions(10, 3));
if (downloader.TotalDownloadCount > 0)
{
downloader.DownloadProgressChanged += info =>
{
_view?.SetProgress(0.5f + info.Progress * 0.4f);
_view?.SetStatus($"下载 {info.CurrentDownloadCount}/{info.TotalDownloadCount}");
_view?.SetProgress(0.4f + info.Progress * 0.15f);
_view?.SetStatus($"正在下载资源… {info.CurrentDownloadCount}/{info.TotalDownloadCount}");
};
downloader.StartDownload();
yield return downloader;
@@ -155,7 +155,7 @@ namespace AOT.Patch
var companionRoot = cdnRoot.TrimEnd('/');
var slash = companionRoot.LastIndexOf('/');
companionRoot = companionRoot.Substring(0, slash + 1) + packageName;
_view?.SetStatus($"初始化资源包 {packageName}…");
_view?.SetStatus("正在准备营地…");
if (companion.InitializeStatus != EOperationStatus.Succeeded)
{
var companionInit = CreateInitializeOperation(companion, playMode, companionRoot);
@@ -181,7 +181,12 @@ namespace AOT.Patch
var companionDownload = companion.CreateResourceDownloader(new ResourceDownloaderOptions(10, 3));
if (companionDownload.TotalDownloadCount > 0)
{
_view?.SetStatus($"下载资源包 {packageName}…");
_view?.SetStatus("正在下载营地资源…");
companionDownload.DownloadProgressChanged += info =>
{
_view?.SetProgress(.55f + info.Progress * .35f);
_view?.SetStatus($"正在下载资源… {info.CurrentDownloadCount}/{info.TotalDownloadCount}");
};
companionDownload.StartDownload();
yield return companionDownload;
if (companionDownload.Status != EOperationStatus.Succeeded)
@@ -209,7 +214,7 @@ namespace AOT.Patch
var packageVersion = pinnedVersion;
if (string.IsNullOrEmpty(packageVersion))
{
_view?.SetStatus($"请求{label}版本…");
_view?.SetStatus("正在检查资源…");
var versionOp = package.RequestPackageVersionAsync();
yield return versionOp;
if (versionOp.Status != EOperationStatus.Succeeded)
@@ -220,7 +225,7 @@ namespace AOT.Patch
packageVersion = versionOp.PackageVersion;
}
_view?.SetStatus($"更新{label}清单 {packageVersion}");
_view?.SetStatus("正在检查资源…");
var manifestOp = package.LoadPackageManifestAsync(new LoadPackageManifestOptions(packageVersion, 60));
yield return manifestOp;
if (manifestOp.Status != EOperationStatus.Succeeded)