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