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:
67
docs/api/components/component/component.md
Normal file
67
docs/api/components/component/component.md
Normal 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) - 变换组件
|
||||
13
docs/api/components/component/get-game-object.md
Normal file
13
docs/api/components/component/get-game-object.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Component::GetGameObject
|
||||
|
||||
获取所属的 GameObject。
|
||||
|
||||
```cpp
|
||||
GameObject* GetGameObject() const;
|
||||
```
|
||||
|
||||
**返回:** `GameObject*` - 所属游戏对象指针,如果组件未附加到游戏对象则返回 nullptr
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Component 总览](component.md)
|
||||
13
docs/api/components/component/get-name.md
Normal file
13
docs/api/components/component/get-name.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Component::GetName
|
||||
|
||||
获取组件名称。
|
||||
|
||||
```cpp
|
||||
virtual std::string GetName() const = 0;
|
||||
```
|
||||
|
||||
**返回:** `std::string` - 组件名称
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Component 总览](component.md)
|
||||
14
docs/api/components/component/get-scene.md
Normal file
14
docs/api/components/component/get-scene.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Component::GetScene
|
||||
|
||||
获取所属的场景。
|
||||
|
||||
```cpp
|
||||
Scene* GetScene() const;
|
||||
```
|
||||
|
||||
**返回:** `Scene*` - 所属场景指针,如果组件未附加到游戏对象则返回 nullptr
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Component 总览](component.md)
|
||||
- [Scene](../scene/scene/scene.md)
|
||||
14
docs/api/components/component/is-enabled.md
Normal file
14
docs/api/components/component/is-enabled.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Component::IsEnabled
|
||||
|
||||
检查组件是否启用。
|
||||
|
||||
```cpp
|
||||
bool IsEnabled() const;
|
||||
```
|
||||
|
||||
**返回:** `bool` - 如果组件启用则返回 true
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Component 总览](component.md)
|
||||
- [SetEnabled](set-enabled.md)
|
||||
17
docs/api/components/component/set-enabled.md
Normal file
17
docs/api/components/component/set-enabled.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Component::SetEnabled
|
||||
|
||||
设置组件启用状态。
|
||||
|
||||
```cpp
|
||||
void SetEnabled(bool enabled);
|
||||
```
|
||||
|
||||
当启用状态发生变化时,会自动调用 OnEnable 或 OnDisable 回调。
|
||||
|
||||
**参数:**
|
||||
- `enabled` - true 为启用,false 为禁用
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Component 总览](component.md)
|
||||
- [IsEnabled](is-enabled.md)
|
||||
16
docs/api/components/component/transform.md
Normal file
16
docs/api/components/component/transform.md
Normal 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)
|
||||
Reference in New Issue
Block a user