feat: add play mode pause resume and step controls

This commit is contained in:
2026-04-02 19:56:07 +08:00
parent fb15d60be9
commit 1f29dfd611
11 changed files with 270 additions and 3 deletions

View File

@@ -20,6 +20,22 @@
- `Play / Paused` 下允许对 runtime scene 进行对象级编辑与 `Undo / Redo`
- runtime scene 的对象改动默认不再污染场景文档 dirty 状态
### 阶段 C 当前收口
- 已补全 `Pause / Resume / Step` 的完整请求与状态切换
- `Run` 菜单现在区分 `Play/Stop``Pause/Resume``Step`
- `Error Pause` 已接入正式 Pause 请求通道
- `Paused` 下维持 runtime world不回退到 editor scene
- `Step` 现在只在 `Paused` 下有效,并保持 `Paused` 状态不变
## 本轮验证
- 已重新执行 `cmake -S . -B build`
- 已通过 `cmake --build build --config Debug --target scene_tests`
- 已通过 `cmake --build build --config Debug --target editor_tests -- /m:1 /v:minimal`
- 已通过聚焦测试:
`ctest --test-dir build -C Debug --output-on-failure -j1 -R "RuntimeLoopTest|PlaySessionControllerTest|EditorActionRoutingTest.*PlayMode|EditorActionRoutingTest.*MainMenuRouterRequestsPlayPauseResumeAndStepEvents"`
## 当前语义
- `editor tick` 负责托管运行时会话
@@ -30,6 +46,6 @@
## 下一阶段建议
- 补全 `Pause / Resume / Step` 的完整状态机
- 明确 `Paused` 下的 `Undo / Redo / Gizmo / Inspector` 交互语义
- `Error Pause` 完整并入正式状态机
- 明确 `Paused` 下的 `Undo / Redo / Gizmo / Inspector` 更细粒度交互边界
- 将 GameView 输入正式接入 runtime input 通道
- 继续补 `Simulate` 与更完整的 Time 语义