Files
XCEngine/docs/api/scene/scene-manager/scene-manager.md
ssdfasd a9d5a68dd6 docs: Add Component, GameObject, TransformComponent and Scene API documentation
- Add Component class documentation with lifecycle methods
- Add GameObject class documentation with component system
- Add TransformComponent documentation with transform methods
- Add Scene class documentation with GameObject management
- Add SceneManager singleton documentation with scene loading
- Update components.md overview with all component classes
- Update main.md navigation with Scene module
2026-03-22 03:33:55 +08:00

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());
    });
}

相关文档