using System.Collections; using AibisDream.Framework; using AibisDream.SaveSystem; using AibisDream.UI; using UnityEngine; namespace AibisDream { /// 负责 Persistence 场景中的应用级初始化,不参与游戏会话流程。 [DefaultExecutionOrder(-100)] public sealed class ApplicationBootstrapper : MonoBehaviour { private const float MainMenuFadeDuration = 0.5f; private IEnumerator Start() { SettingLoader.Init(); SnapshotRegistry.EnsureInitialized(); var transitionPanel = UIManager.Instance.GetPanel(); UIManager.Instance.ShowPanel(); transitionPanel?.ApplyScreenCovered(true); yield return LocalizationKit.WaitUntilReady(); EnumEventSystem.Global.Send(GameLifecycleEvent.ApplicationReady); yield return LocalizationKit.WaitForUIRefresh(); if (transitionPanel != null) { yield return transitionPanel.FadeOutAsync(MainMenuFadeDuration); } } } }