Skip to content

ECS Framework API v2.2.13


ECS Framework API / Component

Abstract Class: Component

Defined in: packages/core/src/ECS/Component.ts:33

游戏组件基类

ECS架构中的组件(Component)应该是纯数据容器。 所有游戏逻辑应该在 EntitySystem 中实现,而不是在组件内部。

Examples

推荐做法:纯数据组件

typescript
class HealthComponent extends Component {
    public health: number = 100;
    public maxHealth: number = 100;
}

推荐做法:在 System 中处理逻辑

typescript
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

readonly id: number

Defined in: packages/core/src/ECS/Component.ts:46

组件唯一标识符

在整个游戏生命周期中唯一的数字ID。

Implementation of

IComponent.id


entityId

entityId: null | number = null

Defined in: packages/core/src/ECS/Component.ts:53

所属实体ID

存储实体ID而非引用,避免循环引用,符合ECS数据导向设计。

Implementation of

IComponent.entityId

Methods

onAddedToEntity()

onAddedToEntity(): void

Defined in: packages/core/src/ECS/Component.ts:73

组件添加到实体时的回调

当组件被添加到实体时调用,可以在此方法中进行初始化操作。

Returns

void

Remarks

这是一个生命周期钩子,用于组件的初始化逻辑。 虽然保留此方法,但建议将复杂的初始化逻辑放在 System 中处理。

Implementation of

IComponent.onAddedToEntity


onRemovedFromEntity()

onRemovedFromEntity(): void

Defined in: packages/core/src/ECS/Component.ts:84

组件从实体移除时的回调

当组件从实体中移除时调用,可以在此方法中进行清理操作。

Returns

void

Remarks

这是一个生命周期钩子,用于组件的清理逻辑。 虽然保留此方法,但建议将复杂的清理逻辑放在 System 中处理。

Implementation of

IComponent.onRemovedFromEntity

Released under the MIT License.