Skip to content

ECS Framework API v2.1.50


ECS Framework API / EntitySystem

Abstract Class: EntitySystem

Defined in: ECS/Systems/EntitySystem.ts:45

实体系统的基类

用于处理一组符合特定条件的实体。系统是ECS架构中的逻辑处理单元, 负责对拥有特定组件组合的实体执行业务逻辑。

Example

typescript
class MovementSystem extends EntitySystem {
    constructor() {
        super(Transform, Velocity);
    }

    protected process(entities: readonly Entity[]): void {
        for (const entity of entities) {
            const transform = entity.getComponent(Transform);
            const velocity = entity.getComponent(Velocity);
            transform.position.add(velocity.value);
        }
    }
}

Extended by

Implements

Constructors

Constructor

new EntitySystem(matcher?): EntitySystem

Defined in: ECS/Systems/EntitySystem.ts:125

Parameters

matcher?

Matcher

Returns

EntitySystem

Properties

logger

protected logger: ILogger

Defined in: ECS/Systems/EntitySystem.ts:54

Accessors

entities

Get Signature

get entities(): readonly Entity[]

Defined in: ECS/Systems/EntitySystem.ts:79

获取系统处理的实体列表

Returns

readonly Entity[]


updateOrder

Get Signature

get updateOrder(): number

Defined in: ECS/Systems/EntitySystem.ts:96

获取系统的更新时序

Returns

number

Set Signature

set updateOrder(value): void

Defined in: ECS/Systems/EntitySystem.ts:100

更新顺序/优先级

Parameters
value

number

Returns

void

更新顺序/优先级

Implementation of

ISystemBase.updateOrder


enabled

Get Signature

get enabled(): boolean

Defined in: ECS/Systems/EntitySystem.ts:107

获取系统的启用状态

Returns

boolean

Set Signature

set enabled(value): void

Defined in: ECS/Systems/EntitySystem.ts:114

设置系统的启用状态

Parameters
value

boolean

Returns

void

系统启用状态

Implementation of

ISystemBase.enabled


systemName

Get Signature

get systemName(): string

Defined in: ECS/Systems/EntitySystem.ts:121

获取系统名称

Returns

string

系统名称

Implementation of

ISystemBase.systemName


scene

Get Signature

get scene(): null | Scene

Defined in: ECS/Systems/EntitySystem.ts:164

这个系统所属的场景

Returns

null | Scene

Set Signature

set scene(value): void

Defined in: ECS/Systems/EntitySystem.ts:168

Parameters
value

null | Scene

Returns

void


matcher

Get Signature

get matcher(): Matcher

Defined in: ECS/Systems/EntitySystem.ts:175

获取实体匹配器

Returns

Matcher

Methods

setUpdateOrder()

setUpdateOrder(order): void

Defined in: ECS/Systems/EntitySystem.ts:183

设置更新时序

Parameters

order

number

更新时序

Returns

void


initialize()

initialize(): void

Defined in: ECS/Systems/EntitySystem.ts:195

系统初始化(框架调用)

在系统创建时调用。框架内部使用,用户不应直接调用。

Returns

void

Implementation of

ISystemBase.initialize


onInitialize()

protected onInitialize(): void

Defined in: ECS/Systems/EntitySystem.ts:219

系统初始化回调

子类可以重写此方法进行初始化操作。

Returns

void


clearEntityCache()

clearEntityCache(): void

Defined in: ECS/Systems/EntitySystem.ts:227

清除实体缓存(内部使用) 当Scene中的实体发生变化时调用

Returns

void


reset()

reset(): void

Defined in: ECS/Systems/EntitySystem.ts:236

重置系统状态

当系统从场景中移除时调用,重置初始化状态以便重新添加时能正确初始化。

Returns

void


update()

update(): void

Defined in: ECS/Systems/EntitySystem.ts:508

更新系统

Returns

void

Implementation of

ISystemBase.update


lateUpdate()

lateUpdate(): void

Defined in: ECS/Systems/EntitySystem.ts:531

后期更新系统

Returns

void

Implementation of

ISystemBase.lateUpdate


onBegin()

protected onBegin(): void

Defined in: ECS/Systems/EntitySystem.ts:557

在系统处理开始前调用

子类可以重写此方法进行预处理操作。

Returns

void


process()

protected process(entities): void

Defined in: ECS/Systems/EntitySystem.ts:568

处理实体列表

系统的核心逻辑,子类必须实现此方法来定义具体的处理逻辑。

Parameters

entities

readonly Entity[]

要处理的实体列表

Returns

void


lateProcess()

protected lateProcess(_entities): void

Defined in: ECS/Systems/EntitySystem.ts:579

后期处理实体列表

在主要处理逻辑之后执行,子类可以重写此方法。

Parameters

_entities

readonly Entity[]

Returns

void


onEnd()

protected onEnd(): void

Defined in: ECS/Systems/EntitySystem.ts:588

系统处理完毕后调用

子类可以重写此方法进行后处理操作。

Returns

void


onCheckProcessing()

protected onCheckProcessing(): boolean

Defined in: ECS/Systems/EntitySystem.ts:600

检查系统是否需要处理

在启用系统时有用,但仅偶尔需要处理。 这只影响处理,不影响事件或订阅列表。

Returns

boolean

如果系统应该处理,则为true,如果不处理则为false


getPerformanceData()

getPerformanceData(): undefined | PerformanceData

Defined in: ECS/Systems/EntitySystem.ts:609

获取系统的性能数据

Returns

undefined | PerformanceData

性能数据或undefined


getPerformanceStats()

getPerformanceStats(): undefined | PerformanceStats

Defined in: ECS/Systems/EntitySystem.ts:618

获取系统的性能统计

Returns

undefined | PerformanceStats

性能统计或undefined


resetPerformanceData()

resetPerformanceData(): void

Defined in: ECS/Systems/EntitySystem.ts:625

重置系统的性能数据

Returns

void


toString()

toString(): string

Defined in: ECS/Systems/EntitySystem.ts:634

获取系统信息的字符串表示

Returns

string

系统信息字符串


onAdded()

protected onAdded(entity): void

Defined in: ECS/Systems/EntitySystem.ts:680

当实体被添加到系统时调用

子类可以重写此方法来处理实体添加事件。

Parameters

entity

Entity

被添加的实体

Returns

void


onRemoved()

protected onRemoved(entity): void

Defined in: ECS/Systems/EntitySystem.ts:691

当实体从系统中移除时调用

子类可以重写此方法来处理实体移除事件。

Parameters

entity

Entity

被移除的实体

Returns

void


addEventListener()

protected addEventListener<T>(eventType, handler, config?): void

Defined in: ECS/Systems/EntitySystem.ts:705

添加事件监听器

推荐使用此方法而不是直接调用eventSystem.on(), 这样可以确保系统移除时自动清理监听器,避免内存泄漏。

Type Parameters

T

T = any

Parameters

eventType

string

事件类型

handler

EventHandler<T>

事件处理函数

config?

EventListenerConfig

监听器配置

Returns

void


removeEventListener()

protected removeEventListener<T>(eventType, handler): void

Defined in: ECS/Systems/EntitySystem.ts:734

移除特定的事件监听器

Type Parameters

T

T = any

Parameters

eventType

string

事件类型

handler

EventHandler<T>

事件处理函数

Returns

void


destroy()

destroy(): void

Defined in: ECS/Systems/EntitySystem.ts:773

框架内部销毁方法 由框架调用,处理系统的完整销毁流程

Returns

void


getLoggerName()

protected getLoggerName(): string

Defined in: ECS/Systems/EntitySystem.ts:783

获取Logger名称 子类可以重写此方法来自定义logger名称

Returns

string


onDestroy()

protected onDestroy(): void

Defined in: ECS/Systems/EntitySystem.ts:793

用户销毁回调

当系统从场景中移除时调用,子类可以重写此方法进行清理操作。 注意:事件监听器会被框架自动清理,无需手动处理。

Returns

void

Released under the MIT License.