ECS Framework API / Component
Abstract Class: Component
Defined in: packages/core/src/ECS/Component.ts:33
游戏组件基类
ECS架构中的组件(Component)应该是纯数据容器。 所有游戏逻辑应该在 EntitySystem 中实现,而不是在组件内部。
Examples
推荐做法:纯数据组件
class HealthComponent extends Component {
public health: number = 100;
public maxHealth: number = 100;
}推荐做法:在 System 中处理逻辑
class HealthSystem extends EntitySystem {
process(entities: Entity[]): void {
for (const entity of entities) {
const health = entity.getComponent(HealthComponent);
if (health && health.health <= 0) {
entity.destroy();
}
}
}
}Implements
Constructors
Constructor
new Component():
Component
Defined in: packages/core/src/ECS/Component.ts:60
创建组件实例
自动分配唯一ID给组件。
Returns
Component
Properties
id
readonlyid:number
Defined in: packages/core/src/ECS/Component.ts:46
组件唯一标识符
在整个游戏生命周期中唯一的数字ID。
Implementation of
entityId
entityId:
null|number=null
Defined in: packages/core/src/ECS/Component.ts:53
所属实体ID
存储实体ID而非引用,避免循环引用,符合ECS数据导向设计。
Implementation of
Methods
onAddedToEntity()
onAddedToEntity():
void
Defined in: packages/core/src/ECS/Component.ts:73
组件添加到实体时的回调
当组件被添加到实体时调用,可以在此方法中进行初始化操作。
Returns
void
Remarks
这是一个生命周期钩子,用于组件的初始化逻辑。 虽然保留此方法,但建议将复杂的初始化逻辑放在 System 中处理。
Implementation of
onRemovedFromEntity()
onRemovedFromEntity():
void
Defined in: packages/core/src/ECS/Component.ts:84
组件从实体移除时的回调
当组件从实体中移除时调用,可以在此方法中进行清理操作。
Returns
void
Remarks
这是一个生命周期钩子,用于组件的清理逻辑。 虽然保留此方法,但建议将复杂的清理逻辑放在 System 中处理。