Skip to content

ECS Framework API v2.1.50


ECS Framework API / ComponentStorage

Class: ComponentStorage<T>

Defined in: ECS/Core/ComponentStorage.ts:16

高性能组件存储器

Type Parameters

T

T extends Component

Constructors

Constructor

new ComponentStorage<T>(componentType): ComponentStorage<T>

Defined in: ECS/Core/ComponentStorage.ts:22

Parameters

componentType

ComponentType<T>

Returns

ComponentStorage<T>

Accessors

size

Get Signature

get size(): number

Defined in: ECS/Core/ComponentStorage.ts:135

获取组件数量

Returns

number


type

Get Signature

get type(): ComponentType<T>

Defined in: ECS/Core/ComponentStorage.ts:142

获取组件类型

Returns

ComponentType<T>

Methods

addComponent()

addComponent(entityId, component): void

Defined in: ECS/Core/ComponentStorage.ts:36

添加组件

Parameters

entityId

number

实体ID

component

T

组件实例

Returns

void


getComponent()

getComponent(entityId): null | T

Defined in: ECS/Core/ComponentStorage.ts:54

获取组件

Parameters

entityId

number

实体ID

Returns

null | T

组件实例或null


hasComponent()

hasComponent(entityId): boolean

Defined in: ECS/Core/ComponentStorage.ts:64

检查实体是否有此组件

Parameters

entityId

number

实体ID

Returns

boolean

是否有组件


removeComponent()

removeComponent(entityId): null | T

Defined in: ECS/Core/ComponentStorage.ts:73

移除组件

Parameters

entityId

number

实体ID

Returns

null | T

被移除的组件或null


forEach()

forEach(callback): void

Defined in: ECS/Core/ComponentStorage.ts:106

高效遍历所有组件

Parameters

callback

(component, entityId, index) => void

回调函数

Returns

void


getDenseArray()

getDenseArray(): object

Defined in: ECS/Core/ComponentStorage.ts:116

获取所有组件

Returns

object

组件数组

components

components: T[]

entityIds

entityIds: number[]


clear()

clear(): void

Defined in: ECS/Core/ComponentStorage.ts:126

清空所有组件

Returns

void


getStats()

getStats(): object

Defined in: ECS/Core/ComponentStorage.ts:150

获取存储统计信息

Returns

object

totalSlots

totalSlots: number

usedSlots

usedSlots: number

freeSlots

freeSlots: number

fragmentation

fragmentation: number

Released under the MIT License.