Files
Echo/Assets/_Project/Docs/TitleMenu_Technical_Reference.md
2026-07-08 20:42:51 +08:00

48 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 标题界面(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