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
@@ -12,6 +12,7 @@ namespace AOT.Boot
public sealed class BootDriver : MonoBehaviour
{
[SerializeField] BootSettings settings = new BootSettings();
[SerializeField] BootPatchView loadingPrefab;
BootPatchView _view;
@@ -27,7 +28,7 @@ namespace AOT.Boot
void Start()
{
_view = BootPatchView.Create();
_view = BootPatchView.Create(loadingPrefab);
StartCoroutine(Bootstrap());
}
@@ -50,7 +51,7 @@ namespace AOT.Boot
yield break;
}
_view?.SetStatus("加载热更代码…");
_view?.SetStatus("正在准备冒险…");
_view?.SetProgress(0.97f);
string loadError = null;
@@ -63,12 +64,11 @@ namespace AOT.Boot
yield break;
}
_view?.SetProgress(1f);
_view?.SetStatus("热更已启动");
Debug.Log($"[Boot] OK app={ctx.AppVersion} res={ctx.ResVersion} pack={ctx.PackVersion} cdn={ctx.CdnRoot}");
// Prefabs/atlases load asynchronously; two frames are not a readiness guarantee.
_view?.SetStatus("加载主界面…");
_view?.SetStatus("正在布置营地…");
_view?.SetProgress(.98f);
float uiDeadline = Time.realtimeSinceStartup + 120f;
while (!ctx.MainUiReady && string.IsNullOrEmpty(ctx.MainUiError) && Time.realtimeSinceStartup < uiDeadline)
yield return null;
@@ -80,6 +80,8 @@ namespace AOT.Boot
yield break;
}
yield return null;
_view?.SetStatus("准备就绪,即将出发");
_view?.SetProgress(1f);
_view?.Hide();
}
}