3.1 KiB
3.1 KiB
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>();
}
相关文档
- Scene 模块总览 - Scene 模块总览
- SceneManager - 场景管理器
- GameObject - 游戏对象