2.0 KiB
2.0 KiB
标题界面(TitleMenu)技术说明
目标:TitleScene 显示“开始/重新开始/继续/设置/退出”,并在进入 Title 时预加载下一个场景;加载期间按钮置灰并显示“正在加载”。
一、脚本清单
- 标题菜单控制器:TitleMenuController.cs
- 设置面板:SettingsController.cs
- 异步加载参考结构: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)
- Start/Continue(如存在):
- 达到 0.9 后:
- 恢复按钮可交互并恢复文案(同时遵循“存档显示逻辑”)
四、按钮行为
- Start/重新开始:
- 若有存档:先删除
savegame.json - 然后激活已预加载场景(
allowSceneActivation = true)
- 若有存档:先删除
- Continue:
- 仅有存档时可见/可用
- 激活已预加载场景
- 设置:
settingsController.OpenAtIndex(0)
- 退出:
Application.Quit()
五、场景接入步骤(Inspector)
- 在 TitleScene 放置
TitleMenuController并拖入:
- 4 个 Reach Button 的
ButtonManager(StartOrRestart/Continue/Settings/Quit) - SettingsRoot 上的
SettingsController(建议手动拖,避免 Find)
- 设置
nextSceneBuildIndex为游戏主场景的 BuildIndex