Files
XCEngine/docs/api/XCEngine/Scene/SceneManager/SetActiveScene.md

37 lines
992 B
Markdown
Raw Normal View History

2026-03-26 16:45:24 +08:00
# SceneManager::SetActiveScene
2026-03-26 19:34:24 +08:00
设置活动场景。
2026-03-26 16:45:24 +08:00
```cpp
void SetActiveScene(Scene* scene);
2026-03-26 19:34:24 +08:00
void SetActiveScene(const std::string& sceneName);
2026-03-26 16:45:24 +08:00
```
2026-03-26 19:34:24 +08:00
## 行为说明
2026-03-26 16:45:24 +08:00
2026-03-26 19:34:24 +08:00
当前有两个重载:
2026-03-26 16:45:24 +08:00
2026-03-26 19:34:24 +08:00
- 指针重载会在 `m_activeScene != scene` 时直接写入 `m_activeScene = scene`,然后触发 [OnActiveSceneChanged](OnActiveSceneChanged.md)。
- 字符串重载会先在 `m_scenes` 中查找 key找到后再调用指针重载。
2026-03-26 16:45:24 +08:00
2026-03-26 19:34:24 +08:00
## 参数
2026-03-26 16:45:24 +08:00
2026-03-26 19:34:24 +08:00
- `scene` - 目标活动场景指针。
- `sceneName` - 目标场景 key。
2026-03-26 16:45:24 +08:00
2026-03-26 19:34:24 +08:00
## 返回值
2026-03-26 16:45:24 +08:00
2026-03-26 19:34:24 +08:00
- 无。
2026-03-26 16:45:24 +08:00
2026-03-26 19:34:24 +08:00
## 当前实现限制
2026-03-26 16:45:24 +08:00
2026-03-26 19:34:24 +08:00
- 指针重载不会校验 `scene` 是否真的来自 `SceneManager` 当前持有的场景集合。
- 当前不会同步 `Scene::SetActive()`
- 如果传入的指针就是当前活动场景,不会触发事件。
- 传入 `nullptr` 时,如果当前活动场景非空,会把活动场景清空并触发切换事件。
2026-03-26 16:45:24 +08:00
## 相关文档
2026-03-26 19:34:24 +08:00
- [返回类型总览](SceneManager.md)
- [GetActiveScene](GetActiveScene.md)