## 标题界面(TitleMenu)技术说明 目标:TitleScene 显示“开始/重新开始/继续/设置/退出”,并在进入 Title 时预加载下一个场景;加载期间按钮置灰并显示“正在加载”。 ### 一、脚本清单 - 标题菜单控制器:[TitleMenuController.cs](file:///e:/Unity/Unity%20Program/Test_2022/Assets/_Project/Scripts/UI/Title/TitleMenuController.cs) - 设置面板:[SettingsController.cs](file:///e:/Unity/Unity%20Program/Test_2022/Assets/_Project/Scripts/UI/Settings/SettingsController.cs) - 异步加载参考结构:[StartupSceneLoader.cs](file:///e:/Unity/Unity%20Program/Test_2022/Assets/_Project/Scripts/Core/SceneLoading/StartupSceneLoader.cs) ### 二、存档判断规则 - 存档文件:`Application.persistentDataPath/savegame.json` - 有存档: - 显示 Continue 按钮 - Start 按钮文案变为“重新开始” - 无存档: - 隐藏 Continue 按钮 - Start 文案为“开始游戏” ### 三、异步预加载逻辑 - 进入 Title 后立刻执行: - `SceneManager.LoadSceneAsync(nextSceneBuildIndex)` - `allowSceneActivation = false` - 在 `progress < 0.9`(Unity 预加载阶段)之前: - Start/Continue(如存在): - `SetText("正在加载")` - `Interactable(false)` - 达到 0.9 后: - 恢复按钮可交互并恢复文案(同时遵循“存档显示逻辑”) ### 四、按钮行为 - Start/重新开始: - 若有存档:先删除 `savegame.json` - 然后激活已预加载场景(`allowSceneActivation = true`) - Continue: - 仅有存档时可见/可用 - 激活已预加载场景 - 设置: - `settingsController.OpenAtIndex(0)` - 退出: - `Application.Quit()` ### 五、场景接入步骤(Inspector) 1) 在 TitleScene 放置 `TitleMenuController` 并拖入: - 4 个 Reach Button 的 `ButtonManager`(StartOrRestart/Continue/Settings/Quit) - SettingsRoot 上的 `SettingsController`(建议手动拖,避免 Find) 2) 设置 `nextSceneBuildIndex` 为游戏主场景的 BuildIndex