Skip to content

ECS Framework API v2.1.50


ECS Framework API / Entity

Class: Entity

Defined in: ECS/Entity.ts:58

游戏实体类

ECS架构中的实体(Entity),作为组件的容器。 实体本身不包含游戏逻辑,所有功能都通过组件来实现。 支持父子关系,可以构建实体层次结构。

Example

typescript
// 创建实体
const entity = new Entity("Player", 1);

// 添加组件
const healthComponent = entity.addComponent(new HealthComponent(100));

// 获取组件
const health = entity.getComponent(HealthComponent);

// 添加位置组件
entity.addComponent(new PositionComponent(100, 200));

// 添加子实体
const weapon = new Entity("Weapon", 2);
entity.addChild(weapon);

Constructors

Constructor

new Entity(name, id): Entity

Defined in: ECS/Entity.ts:169

构造函数

Parameters

name

string

实体名称

id

number

实体唯一标识符

Returns

Entity

Properties

entityComparer

static entityComparer: EntityComparer

Defined in: ECS/Entity.ts:67

实体比较器实例


eventBus

static eventBus: null | EventBus = null

Defined in: ECS/Entity.ts:73

全局事件总线实例 用于发射组件相关事件


name

name: string

Defined in: ECS/Entity.ts:91

实体名称


id

readonly id: number

Defined in: ECS/Entity.ts:96

实体唯一标识符


components

readonly components: Component[] = []

Defined in: ECS/Entity.ts:101

组件集合


scene

scene: null | IScene = null

Defined in: ECS/Entity.ts:106

所属场景引用


updateInterval

updateInterval: number = 1

Defined in: ECS/Entity.ts:111

更新间隔


_isDestroyed

_isDestroyed: boolean = false

Defined in: ECS/Entity.ts:116

销毁状态标志

Accessors

isDestroyed

Get Signature

get isDestroyed(): boolean

Defined in: ECS/Entity.ts:178

获取销毁状态

Returns

boolean

如果实体已被销毁则返回true


parent

Get Signature

get parent(): null | Entity

Defined in: ECS/Entity.ts:186

获取父实体

Returns

null | Entity

父实体,如果没有父实体则返回null


children

Get Signature

get children(): readonly Entity[]

Defined in: ECS/Entity.ts:195

获取子实体数组的只读副本

Returns

readonly Entity[]

子实体数组的副本


childCount

Get Signature

get childCount(): number

Defined in: ECS/Entity.ts:204

获取子实体数量

Returns

number

子实体的数量


active

Get Signature

get active(): boolean

Defined in: ECS/Entity.ts:213

获取活跃状态

Returns

boolean

如果实体处于活跃状态则返回true

Set Signature

set active(value): void

Defined in: ECS/Entity.ts:224

设置活跃状态

设置实体的活跃状态,会影响子实体的有效活跃状态。

Parameters
value

boolean

新的活跃状态

Returns

void


activeInHierarchy

Get Signature

get activeInHierarchy(): boolean

Defined in: ECS/Entity.ts:238

获取实体的有效活跃状态

考虑父实体的活跃状态,只有当实体本身和所有父实体都处于活跃状态时才返回true。

Returns

boolean

有效的活跃状态


tag

Get Signature

get tag(): number

Defined in: ECS/Entity.ts:249

获取实体标签

Returns

number

实体的数字标签

Set Signature

set tag(value): void

Defined in: ECS/Entity.ts:258

设置实体标签

Parameters
value

number

新的标签值

Returns

void


enabled

Get Signature

get enabled(): boolean

Defined in: ECS/Entity.ts:267

获取启用状态

Returns

boolean

如果实体已启用则返回true

Set Signature

set enabled(value): void

Defined in: ECS/Entity.ts:276

设置启用状态

Parameters
value

boolean

新的启用状态

Returns

void


updateOrder

Get Signature

get updateOrder(): number

Defined in: ECS/Entity.ts:285

获取更新顺序

Returns

number

实体的更新顺序值

Set Signature

set updateOrder(value): void

Defined in: ECS/Entity.ts:294

设置更新顺序

Parameters
value

number

新的更新顺序值

Returns

void


componentMask

Get Signature

get componentMask(): BitMask64Data

Defined in: ECS/Entity.ts:303

获取组件位掩码

Returns

BitMask64Data

实体的组件位掩码

Methods

createComponent()

createComponent<T>(componentType, ...args): T

Defined in: ECS/Entity.ts:314

创建并添加组件

Type Parameters

T

T extends Component

Parameters

componentType

ComponentType<T>

组件类型

args

...any[]

组件构造函数参数

Returns

T

创建的组件实例


addComponent()

addComponent<T>(component): T

Defined in: ECS/Entity.ts:358

添加组件到实体

Type Parameters

T

T extends Component

Parameters

component

T

要添加的组件实例

Returns

T

添加的组件实例

Throws

如果组件类型已存在


getComponent()

getComponent<T>(type): null | T

Defined in: ECS/Entity.ts:398

获取指定类型的组件

Type Parameters

T

T extends Component

Parameters

type

ComponentType<T>

组件类型

Returns

null | T

组件实例或null


hasComponent()

hasComponent<T>(type): boolean

Defined in: ECS/Entity.ts:449

检查实体是否有指定类型的组件

Type Parameters

T

T extends Component

Parameters

type

ComponentType<T>

组件类型

Returns

boolean

如果有该组件则返回true


getOrCreateComponent()

getOrCreateComponent<T>(type, ...args): T

Defined in: ECS/Entity.ts:465

获取或创建指定类型的组件

Type Parameters

T

T extends Component

Parameters

type

ComponentType<T>

组件类型

args

...any[]

组件构造函数参数(仅在创建时使用)

Returns

T

组件实例


removeComponent()

removeComponent(component): void

Defined in: ECS/Entity.ts:481

移除指定的组件

Parameters

component

Component

要移除的组件实例

Returns

void


removeComponentByType()

removeComponentByType<T>(type): null | T

Defined in: ECS/Entity.ts:544

移除指定类型的组件

Type Parameters

T

T extends Component

Parameters

type

ComponentType<T>

组件类型

Returns

null | T

被移除的组件实例或null


removeAllComponents()

removeAllComponents(): void

Defined in: ECS/Entity.ts:556

移除所有组件

Returns

void


addComponents()

addComponents<T>(components): T[]

Defined in: ECS/Entity.ts:587

批量添加组件

Type Parameters

T

T extends Component

Parameters

components

T[]

要添加的组件数组

Returns

T[]

添加的组件数组


removeComponentsByTypes()

removeComponentsByTypes<T>(componentTypes): (null | T)[]

Defined in: ECS/Entity.ts:607

批量移除组件类型

Type Parameters

T

T extends Component

Parameters

componentTypes

ComponentType<T>[]

要移除的组件类型数组

Returns

(null | T)[]

被移除的组件数组


getComponents()

getComponents<T>(type): T[]

Defined in: ECS/Entity.ts:625

获取所有指定类型的组件

Type Parameters

T

T extends Component

Parameters

type

ComponentType<T>

组件类型

Returns

T[]

组件实例数组


addChild()

addChild(child): Entity

Defined in: ECS/Entity.ts:643

添加子实体

Parameters

child

Entity

要添加的子实体

Returns

Entity

添加的子实体


removeChild()

removeChild(child): boolean

Defined in: ECS/Entity.ts:673

移除子实体

Parameters

child

Entity

要移除的子实体

Returns

boolean

是否成功移除


removeAllChildren()

removeAllChildren(): void

Defined in: ECS/Entity.ts:688

移除所有子实体

Returns

void


findChild()

findChild(name, recursive): null | Entity

Defined in: ECS/Entity.ts:703

根据名称查找子实体

Parameters

name

string

子实体名称

recursive

boolean = false

是否递归查找

Returns

null | Entity

找到的子实体或null


findChildrenByTag()

findChildrenByTag(tag, recursive): Entity[]

Defined in: ECS/Entity.ts:729

根据标签查找子实体

Parameters

tag

number

标签

recursive

boolean = false

是否递归查找

Returns

Entity[]

找到的子实体数组


getRoot()

getRoot(): Entity

Defined in: ECS/Entity.ts:752

获取根实体

Returns

Entity

层次结构的根实体


isAncestorOf()

isAncestorOf(entity): boolean

Defined in: ECS/Entity.ts:766

检查是否是指定实体的祖先

Parameters

entity

Entity

要检查的实体

Returns

boolean

如果是祖先则返回true


isDescendantOf()

isDescendantOf(entity): boolean

Defined in: ECS/Entity.ts:783

检查是否是指定实体的后代

Parameters

entity

Entity

要检查的实体

Returns

boolean

如果是后代则返回true


getDepth()

getDepth(): number

Defined in: ECS/Entity.ts:792

获取层次深度

Returns

number

在层次结构中的深度(根实体为0)


forEachChild()

forEachChild(callback, recursive): void

Defined in: ECS/Entity.ts:808

遍历所有子实体(深度优先)

Parameters

callback

(child, index) => void

对每个子实体执行的回调函数

recursive

boolean = false

是否递归遍历

Returns

void


update()

update(): void

Defined in: ECS/Entity.ts:841

更新实体

调用所有组件的更新方法,并更新子实体。

Returns

void


destroy()

destroy(): void

Defined in: ECS/Entity.ts:862

销毁实体

移除所有组件、子实体并标记为已销毁。

Returns

void


compareTo()

compareTo(other): number

Defined in: ECS/Entity.ts:897

比较实体

Parameters

other

Entity

另一个实体

Returns

number

比较结果


toString()

toString(): string

Defined in: ECS/Entity.ts:906

获取实体的字符串表示

Returns

string

实体的字符串描述


getDebugInfo()

getDebugInfo(): object

Defined in: ECS/Entity.ts:915

获取实体的调试信息(包含组件缓存信息)

Returns

object

包含实体详细信息的对象

name

name: string

id

id: number

enabled

enabled: boolean

active

active: boolean

activeInHierarchy

activeInHierarchy: boolean

destroyed

destroyed: boolean

componentCount

componentCount: number

componentTypes

componentTypes: string[]

componentMask

componentMask: string

parentId

parentId: null | number

childCount

childCount: number

childIds

childIds: number[]

depth

depth: number

indexMappingSize

indexMappingSize: number

denseIndexMappingSize

denseIndexMappingSize: number

Released under the MIT License.