- components: 修复英文标题为中文,添加缺失组件文档 - 新增 camera-component, light-component, audio-source-component, audio-listener-component 类总览 - 修复 get-position.md 格式 - 更新 components.md 模块总览 - scene: 修复方法文档格式,新增缺失方法 - 修复 find.md, create-game-object.md 英文标题 - 新增 FindByID, SerializeToString, DeserializeFromString 方法文档 - 更新 scene.md 类总览方法列表
2.0 KiB
2.0 KiB
SceneManager
命名空间: XCEngine::Components
类型: class (singleton)
头文件: XCEngine/Scene/SceneManager.h
描述: 场景管理器单例,管理所有场景和活动场景。
概述
SceneManager 是 XCEngine 中的场景管理器单例,负责管理所有加载的场景、场景切换(同步/异步)、设置活动场景,以及发布场景加载/卸载事件。它是场景系统的入口点,提供场景创建、加载、卸载和切换的接口。
单例访问
| 方法 | 描述 |
|---|---|
static SceneManager& Get() |
获取场景管理器单例实例 |
公共方法
场景管理
| 方法 | 描述 |
|---|---|
CreateScene |
创建新场景 |
LoadScene |
同步加载场景 |
LoadSceneAsync |
异步加载场景 |
UnloadScene |
卸载场景 |
活动场景
| 方法 | 描述 |
|---|---|
SetActiveScene |
设置活动场景 |
GetActiveScene |
获取当前活动场景 |
查找
| 方法 | 描述 |
|---|---|
GetScene |
按名称获取场景 |
GetAllScenes |
获取所有场景 |
事件
| 方法 | 描述 |
|---|---|
OnSceneLoaded |
场景加载完成事件 |
OnSceneUnloaded |
场景卸载完成事件 |
OnActiveSceneChanged |
活动场景变更事件 |
使用示例
#include <XCEngine/Scene/SceneManager.h>
using namespace XCEngine::Components;
void SceneManagerExample() {
Scene* scene = SceneManager::Get().CreateScene("GameLevel");
SceneManager::Get().SetActiveScene(scene);
SceneManager::Get().LoadSceneAsync("levels/menu.json", [](Scene* loadedScene) {
printf("Scene loaded: %s\n", loadedScene->GetName().c_str());
});
}
相关文档
- Scene 模块总览 - Scene 模块总览
- Scene - 场景类