Files
XCEngine/docs/api/scene/scene/scene.md

3.1 KiB
Raw Blame History

Scene

命名空间: XCEngine::Components

类型: class

头文件: XCEngine/Scene/Scene.h

描述: 场景类,管理场景中的所有 GameObject 和层级结构。

概述

Scene 是 XCEngine 中的场景类,代表一个独立的游戏空间(如主菜单、游戏关卡、过场动画等)。每个 Scene 包含一个 GameObject 层级树通过根对象Root GameObjects组织。Scene 负责创建和销毁 GameObject提供查找功能支持场景保存/加载,并发布 GameObject 创建和销毁事件。

类型别名

别名 类型 描述
GameObjectID uint64_t 游戏对象唯一标识符类型
INVALID_GAMEOBJECT_ID static constexpr GameObjectID 无效 ID 常量,值为 0

公共方法

基础信息

方法 描述
GetName 获取场景名称
SetName 设置场景名称
IsActive 检查场景是否激活
SetActive 设置场景激活状态

GameObject 管理

方法 描述
CreateGameObject 创建游戏对象
DestroyGameObject 销毁游戏对象

查找

方法 描述
Find 按名称查找 GameObject
FindByID 按 ID 查找 GameObject
FindGameObjectWithTag 按标签查找 GameObject
FindObjectOfType<T>() 模板方法,查找指定类型的组件(无独立文档)
FindObjectsOfType<T>() 模板方法,查找所有指定类型的组件(无独立文档)
GetRootGameObjects 获取所有根对象

生命周期

方法 描述
Update 每帧更新场景
FixedUpdate 固定频率更新
LateUpdate 晚更新
Load 从文件加载场景
Save 保存场景到文件
SerializeToString 序列化为字符串
DeserializeFromString 从字符串反序列化

事件

方法 描述
OnGameObjectCreated GameObject 创建事件
OnGameObjectDestroyed GameObject 销毁事件

使用示例

#include <XCEngine/Scene/Scene.h>
#include <XCEngine/Components/GameObject.h>

using namespace XCEngine::Components;

void SceneExample(Scene* scene) {
    GameObject* player = scene->CreateGameObject("Player");
    GameObject* enemy = scene->CreateGameObject("Enemy");
    
    scene->SetActive(true);
    
    GameObject* found = scene->Find("Player");
    auto cameras = scene->FindObjectsOfType<TransformComponent>();
}

相关文档