Files
XCEngine/docs/api/scene/scene/scene.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

91 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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) - 游戏对象