docs: rebuild Scene API content

This commit is contained in:
2026-03-26 19:34:24 +08:00
parent dc252502ac
commit 5ca5ca1f19
40 changed files with 752 additions and 658 deletions

View File

@@ -1,44 +1,41 @@
# SceneManager::UnloadScene
卸载资源或释放缓存
该方法在 `XCEngine/Scene/SceneManager.h` 中提供了 2 个重载,当前页面统一汇总这些公开声明。
## 重载 1: 声明
卸载一个已登记场景
```cpp
void UnloadScene(Scene* scene);
```
**参数:**
- `scene` - 参数语义详见头文件声明。
**返回:** `void` - 无返回值。
## 重载 2: 声明
```cpp
void UnloadScene(const std::string& sceneName);
```
**参数:**
- `sceneName` - 参数语义详见头文件声明。
## 行为说明
**返回:** `void` - 无返回值。
当前有两个重载:
**示例:**
- 指针重载:
1. `scene == nullptr` 时直接返回。
2. 如果它正好是 `m_activeScene`,先把活动场景清空。
3.`m_scenes` 里线性查找匹配指针。
4. 找到后触发 [OnSceneUnloaded](OnSceneUnloaded.md),然后擦除。
5. 如果活动场景为空且仍有剩余场景,选择 `m_scenes.begin()` 作为新的活动场景,并触发 [OnActiveSceneChanged](OnActiveSceneChanged.md)。
- 字符串重载:先按 key 查找,再转到指针重载。
```cpp
#include <XCEngine/Scene/SceneManager.h>
## 参数
void Example() {
XCEngine::Components::SceneManager object;
// 根据上下文补齐参数后调用 SceneManager::UnloadScene(...)。
(void)object;
}
```
- `scene` - 待卸载场景指针。
- `sceneName` - 待卸载场景 key。
## 返回值
- 无。
## 当前实现限制
- 后备活动场景来自 `unordered_map` 首元素,选择顺序不稳定。
- 如果卸载的是最后一个活动场景,当前不会额外发出“活动场景变为 `nullptr`”的切换事件。
- 指针重载内部需要线性扫描 map 找到匹配场景。
## 相关文档
- [返回类总览](SceneManager.md)
- [返回模块目录](../Scene.md)
- [返回类总览](SceneManager.md)
- [OnSceneUnloaded](OnSceneUnloaded.md)
- [OnActiveSceneChanged](OnActiveSceneChanged.md)