Bring in MaleExplorer assets/shaders, model tooling and Hunyuan updates, plus boot/YooAsset Art package support. Co-authored-by: Cursor <cursoragent@cursor.com>
77 lines
2.1 KiB
C#
77 lines
2.1 KiB
C#
using AOT.Boot;
|
|
using AOT.HotUpdate;
|
|
using AOT.Patch;
|
|
using AOT.UI;
|
|
using UnityEngine;
|
|
|
|
namespace AOT.Boot
|
|
{
|
|
/// <summary>
|
|
/// 壳层启动入口:版本检查 → 资源补丁 → HybridCLR/热更入口。
|
|
/// </summary>
|
|
public sealed class BootDriver : MonoBehaviour
|
|
{
|
|
[SerializeField] BootSettings settings = new BootSettings();
|
|
|
|
BootPatchView _view;
|
|
|
|
void Awake()
|
|
{
|
|
Application.targetFrameRate = 60;
|
|
Screen.sleepTimeout = SleepTimeout.NeverSleep;
|
|
DontDestroyOnLoad(gameObject);
|
|
|
|
if (Screen.orientation != ScreenOrientation.Portrait)
|
|
Screen.orientation = ScreenOrientation.Portrait;
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
_view = BootPatchView.Create();
|
|
StartCoroutine(Bootstrap());
|
|
}
|
|
|
|
System.Collections.IEnumerator Bootstrap()
|
|
{
|
|
BootContext ctx = null;
|
|
string error = null;
|
|
|
|
var runner = new PatchRunner(this, settings, _view);
|
|
yield return runner.Run((c, e) =>
|
|
{
|
|
ctx = c;
|
|
error = e;
|
|
});
|
|
|
|
if (!string.IsNullOrEmpty(error) || ctx == null)
|
|
{
|
|
_view?.SetError(error ?? "启动失败");
|
|
Debug.LogError($"[Boot] {error}");
|
|
yield break;
|
|
}
|
|
|
|
_view?.SetStatus("加载热更代码…");
|
|
_view?.SetProgress(0.97f);
|
|
|
|
string loadError = null;
|
|
yield return HotUpdateLoader.LoadAndStart(ctx, settings, e => loadError = e);
|
|
|
|
if (!string.IsNullOrEmpty(loadError))
|
|
{
|
|
_view?.SetError(loadError);
|
|
Debug.LogError($"[Boot] {loadError}");
|
|
yield break;
|
|
}
|
|
|
|
_view?.SetProgress(1f);
|
|
_view?.SetStatus("热更已启动");
|
|
Debug.Log($"[Boot] OK app={ctx.AppVersion} res={ctx.ResVersion} cdn={ctx.CdnRoot}");
|
|
|
|
// 让热更侧完成首帧生成后再撤掉全屏启动遮罩
|
|
yield return null;
|
|
yield return null;
|
|
_view?.Hide();
|
|
}
|
|
}
|
|
}
|