- 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
91 lines
2.8 KiB
Markdown
91 lines
2.8 KiB
Markdown
# 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`](get-name.md) | 获取场景名称 |
|
||
| [`SetName`](set-name.md) | 设置场景名称 |
|
||
| [`IsActive`](is-active.md) | 检查场景是否激活 |
|
||
| [`SetActive`](set-active.md) | 设置场景激活状态 |
|
||
|
||
### GameObject 管理
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| [`CreateGameObject`](create-game-object.md) | 创建游戏对象 |
|
||
| [`DestroyGameObject`](destroy-game-object.md) | 销毁游戏对象 |
|
||
|
||
### 查找
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| [`Find`](find.md) | 按名称查找 GameObject |
|
||
| [`FindGameObjectWithTag`](find-game-object-with-tag.md) | 按标签查找 GameObject |
|
||
| [`FindObjectOfType`](find-object-of-type.md) | 查找指定类型的组件 |
|
||
| [`FindObjectsOfType`](find-objects-of-type.md) | 查找所有指定类型的组件 |
|
||
| [`GetRootGameObjects`](get-root-game-objects.md) | 获取所有根对象 |
|
||
|
||
### 生命周期
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| [`Update`](update.md) | 每帧更新场景 |
|
||
| [`FixedUpdate`](fixed-update.md) | 固定频率更新 |
|
||
| [`LateUpdate`](late-update.md) | 晚更新 |
|
||
| [`Load`](load.md) | 加载场景 |
|
||
| [`Save`](save.md) | 保存场景 |
|
||
|
||
### 事件
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| [`OnGameObjectCreated`](on-game-object-created.md) | GameObject 创建事件 |
|
||
| [`OnGameObjectDestroyed`](on-game-object-destroyed.md) | GameObject 销毁事件 |
|
||
|
||
## 使用示例
|
||
|
||
```cpp
|
||
#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.md) - Scene 模块总览
|
||
- [SceneManager](scene-manager/scene-manager.md) - 场景管理器
|
||
- [GameObject](../components/game-object/game-object.md) - 游戏对象
|