Files

48 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

2026-07-08 19:53:15 +08:00
## 标题界面(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