- components: 修复英文标题为中文,添加缺失组件文档 - 新增 camera-component, light-component, audio-source-component, audio-listener-component 类总览 - 修复 get-position.md 格式 - 更新 components.md 模块总览 - scene: 修复方法文档格式,新增缺失方法 - 修复 find.md, create-game-object.md 英文标题 - 新增 FindByID, SerializeToString, DeserializeFromString 方法文档 - 更新 scene.md 类总览方法列表
2.2 KiB
2.2 KiB
Component
命名空间: XCEngine::Components
类型: class (abstract)
头文件: XCEngine/Components/Component.h
描述: ECS 组件基类,定义所有组件的公共接口和生命周期。
概述
Component 是 XCEngine ECS 架构中的组件基类,所有具体组件(如 TransformComponent、AudioSourceComponent)都继承自此类。它定义了组件的通用生命周期方法(Awake、Start、Update、OnEnable、OnDisable、OnDestroy)以及获取所属 GameObject 和场景的接口。组件通过友元类 GameObject 自动管理其所属游戏对象。
公共方法
| 方法 | 描述 |
|---|---|
GetName |
获取组件名称(纯虚函数) |
GetGameObject |
获取所属 GameObject |
transform |
获取变换组件引用 |
GetScene |
获取所属场景 |
IsEnabled |
检查组件是否启用 |
SetEnabled |
设置组件启用状态 |
虚方法(生命周期)
| 方法 | 描述 |
|---|---|
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() |
销毁时调用 |
使用示例
#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 模块总览
- GameObject - 游戏对象
- TransformComponent - 变换组件