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
This commit is contained in:
2026-03-22 03:33:55 +08:00
parent d83ed56177
commit a9d5a68dd6
105 changed files with 3003 additions and 7 deletions

View File

@@ -0,0 +1,67 @@
# Component
**命名空间**: `XCEngine::Components`
**类型**: `class (abstract)`
**头文件**: `XCEngine/Components/Component.h`
**描述**: ECS 组件基类,定义所有组件的公共接口和生命周期。
## 概述
Component 是 XCEngine ECS 架构中的组件基类,所有具体组件(如 TransformComponent、AudioSourceComponent都继承自此类。它定义了组件的通用生命周期方法Awake、Start、Update、OnEnable、OnDisable、OnDestroy以及获取所属 GameObject 和场景的接口。组件通过友元类 GameObject 自动管理其所属游戏对象。
## 公共方法
| 方法 | 描述 |
|------|------|
| [`GetName`](get-name.md) | 获取组件名称(纯虚函数) |
| [`GetGameObject`](get-game-object.md) | 获取所属 GameObject |
| [`transform`](transform.md) | 获取变换组件引用 |
| [`GetScene`](get-scene.md) | 获取所属场景 |
| [`IsEnabled`](is-enabled.md) | 检查组件是否启用 |
| [`SetEnabled`](set-enabled.md) | 设置组件启用状态 |
## 虚方法(生命周期)
| 方法 | 描述 |
|------|------|
| `virtual void Awake()` | 组件创建后首次启用时调用 |
| `virtual void Start()` | 在首次更新前调用 |
| `virtual void Update(float deltaTime)` | 每帧更新 |
| `virtual void FixedUpdate()` | 固定频率更新(物理) |
| `virtual void LateUpdate(float deltaTime)` | 晚于 Update 更新 |
| `virtual void OnEnable()` | 启用时调用 |
| `virtual void OnDisable()` | 禁用时调用 |
| `virtual void OnDestroy()` | 销毁时调用 |
## 使用示例
```cpp
#include <XCEngine/Components/Component.h>
#include <XCEngine/Components/GameObject.h>
using namespace XCEngine::Components;
class MyComponent : public Component {
public:
void Awake() override {
printf("Awake: %s\n", GetName().c_str());
}
void Update(float deltaTime) override {
// 每帧逻辑
}
std::string GetName() const override {
return "MyComponent";
}
};
```
## 相关文档
- [Components 模块总览](../components.md) - Components 模块总览
- [GameObject](game-object/game-object.md) - 游戏对象
- [TransformComponent](transform-component/transform-component.md) - 变换组件

View File

@@ -0,0 +1,13 @@
# Component::GetGameObject
获取所属的 GameObject。
```cpp
GameObject* GetGameObject() const;
```
**返回:** `GameObject*` - 所属游戏对象指针,如果组件未附加到游戏对象则返回 nullptr
## 相关文档
- [Component 总览](component.md)

View File

@@ -0,0 +1,13 @@
# Component::GetName
获取组件名称。
```cpp
virtual std::string GetName() const = 0;
```
**返回:** `std::string` - 组件名称
## 相关文档
- [Component 总览](component.md)

View File

@@ -0,0 +1,14 @@
# Component::GetScene
获取所属的场景。
```cpp
Scene* GetScene() const;
```
**返回:** `Scene*` - 所属场景指针,如果组件未附加到游戏对象则返回 nullptr
## 相关文档
- [Component 总览](component.md)
- [Scene](../scene/scene/scene.md)

View File

@@ -0,0 +1,14 @@
# Component::IsEnabled
检查组件是否启用。
```cpp
bool IsEnabled() const;
```
**返回:** `bool` - 如果组件启用则返回 true
## 相关文档
- [Component 总览](component.md)
- [SetEnabled](set-enabled.md)

View File

@@ -0,0 +1,17 @@
# Component::SetEnabled
设置组件启用状态。
```cpp
void SetEnabled(bool enabled);
```
当启用状态发生变化时,会自动调用 OnEnable 或 OnDisable 回调。
**参数:**
- `enabled` - true 为启用false 为禁用
## 相关文档
- [Component 总览](component.md)
- [IsEnabled](is-enabled.md)

View File

@@ -0,0 +1,16 @@
# Component::transform
获取变换组件引用。
```cpp
TransformComponent& transform() const;
```
**返回:** `TransformComponent&` - 所属 GameObject 的变换组件引用
**注意:** 如果组件未附加到 GameObject 或 GameObject 没有 TransformComponent可能导致未定义行为。
## 相关文档
- [Component 总览](component.md)
- [TransformComponent](transform-component/transform-component.md)