Skip to content

ECS Framework API v2.2.13


ECS Framework API / IScene

Interface: IScene

Defined in: packages/core/src/ECS/IScene.ts:19

场景接口定义

定义场景应该实现的核心功能和属性,使用接口而非继承提供更灵活的实现方式。

Properties

name

name: string

Defined in: packages/core/src/ECS/IScene.ts:23

场景名称


sceneData

readonly sceneData: Map<string, any>

Defined in: packages/core/src/ECS/IScene.ts:42

场景自定义数据

用于存储场景级别的配置和状态数据,例如:

  • 天气状态
  • 时间设置
  • 游戏难度
  • 音频配置
  • 关卡检查点

Example

typescript
scene.sceneData.set('weather', 'rainy');
scene.sceneData.set('timeOfDay', 14.5);
scene.sceneData.set('checkpoint', { x: 100, y: 200 });

entities

readonly entities: EntityList

Defined in: packages/core/src/ECS/IScene.ts:47

场景中的实体集合


identifierPool

readonly identifierPool: IdentifierPool

Defined in: packages/core/src/ECS/IScene.ts:52

标识符池


componentStorageManager

readonly componentStorageManager: ComponentStorageManager

Defined in: packages/core/src/ECS/IScene.ts:57

组件存储管理器


querySystem

readonly querySystem: QuerySystem

Defined in: packages/core/src/ECS/IScene.ts:62

查询系统


eventSystem

readonly eventSystem: TypeSafeEventSystem

Defined in: packages/core/src/ECS/IScene.ts:67

事件系统


referenceTracker

readonly referenceTracker: ReferenceTracker

Defined in: packages/core/src/ECS/IScene.ts:72

引用追踪器


services

readonly services: ServiceContainer

Defined in: packages/core/src/ECS/IScene.ts:79

服务容器

场景级别的依赖注入容器,用于管理服务的生命周期。


systems

readonly systems: EntitySystem[]

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

获取系统列表

Methods

initialize()

initialize(): void

Defined in: packages/core/src/ECS/IScene.ts:89

初始化场景

Returns

void


onStart()

onStart(): void

Defined in: packages/core/src/ECS/IScene.ts:94

场景开始运行时的回调

Returns

void


unload()

unload(): void

Defined in: packages/core/src/ECS/IScene.ts:99

场景卸载时的回调

Returns

void


begin()

begin(): void

Defined in: packages/core/src/ECS/IScene.ts:104

开始场景

Returns

void


end()

end(): void

Defined in: packages/core/src/ECS/IScene.ts:109

结束场景

Returns

void


update()

update(): void

Defined in: packages/core/src/ECS/IScene.ts:114

更新场景

Returns

void


createEntity()

createEntity(name): Entity

Defined in: packages/core/src/ECS/IScene.ts:119

创建实体

Parameters

name

string

Returns

Entity


clearSystemEntityCaches()

clearSystemEntityCaches(): void

Defined in: packages/core/src/ECS/IScene.ts:124

清除所有EntitySystem的实体缓存

Returns

void


addEntity()

addEntity(entity, deferCacheClear?): Entity

Defined in: packages/core/src/ECS/IScene.ts:129

添加实体

Parameters

entity

Entity

deferCacheClear?

boolean

Returns

Entity


createEntities()

createEntities(count, namePrefix?): Entity[]

Defined in: packages/core/src/ECS/IScene.ts:134

批量创建实体

Parameters

count

number

namePrefix?

string

Returns

Entity[]


destroyAllEntities()

destroyAllEntities(): void

Defined in: packages/core/src/ECS/IScene.ts:139

销毁所有实体

Returns

void


findEntity()

findEntity(name): null | Entity

Defined in: packages/core/src/ECS/IScene.ts:144

查找实体

Parameters

name

string

Returns

null | Entity


findEntitiesByTag()

findEntitiesByTag(tag): Entity[]

Defined in: packages/core/src/ECS/IScene.ts:149

根据标签查找实体

Parameters

tag

number

Returns

Entity[]


addEntityProcessor()

addEntityProcessor(processor): EntitySystem

Defined in: packages/core/src/ECS/IScene.ts:154

添加实体处理器

Parameters

processor

EntitySystem

Returns

EntitySystem


removeEntityProcessor()

removeEntityProcessor(processor): void

Defined in: packages/core/src/ECS/IScene.ts:159

移除实体处理器

Parameters

processor

EntitySystem

Returns

void


getEntityProcessor()

getEntityProcessor<T>(type): null | T

Defined in: packages/core/src/ECS/IScene.ts:164

获取实体处理器

Type Parameters

T

T extends EntitySystem

Parameters

type

(...args) => T

Returns

null | T


findEntityById()

findEntityById(id): null | Entity

Defined in: packages/core/src/ECS/IScene.ts:169

根据ID查找实体

Parameters

id

number

Returns

null | Entity


getEntityByName()

getEntityByName(name): null | Entity

Defined in: packages/core/src/ECS/IScene.ts:174

根据名称查找实体

Parameters

name

string

Returns

null | Entity


getEntitiesByTag()

getEntitiesByTag(tag): Entity[]

Defined in: packages/core/src/ECS/IScene.ts:179

根据标签查找实体

Parameters

tag

number

Returns

Entity[]


destroyEntities()

destroyEntities(entities): void

Defined in: packages/core/src/ECS/IScene.ts:184

批量销毁实体

Parameters

entities

Entity[]

Returns

void


queryAll()

queryAll(...componentTypes): object

Defined in: packages/core/src/ECS/IScene.ts:189

查询拥有所有指定组件的实体

Parameters

componentTypes

...any[]

Returns

object

entities

entities: readonly Entity[]


queryAny()

queryAny(...componentTypes): object

Defined in: packages/core/src/ECS/IScene.ts:194

查询拥有任意一个指定组件的实体

Parameters

componentTypes

...any[]

Returns

object

entities

entities: readonly Entity[]


queryNone()

queryNone(...componentTypes): object

Defined in: packages/core/src/ECS/IScene.ts:199

查询不包含指定组件的实体

Parameters

componentTypes

...any[]

Returns

object

entities

entities: readonly Entity[]


query()

query(): TypedQueryBuilder

Defined in: packages/core/src/ECS/IScene.ts:204

创建类型安全的查询构建器

Returns

TypedQueryBuilder


getSystem()

getSystem<T>(systemType): null | T

Defined in: packages/core/src/ECS/IScene.ts:209

通过类型获取System实例

Type Parameters

T

T extends EntitySystem

Parameters

systemType

ServiceType<T>

Returns

null | T


registerSystems()

registerSystems(systemTypes): EntitySystem[]

Defined in: packages/core/src/ECS/IScene.ts:214

批量注册EntitySystem到场景

Parameters

systemTypes

ServiceType<EntitySystem>[]

Returns

EntitySystem[]


addSystem()

addSystem(system): EntitySystem

Defined in: packages/core/src/ECS/IScene.ts:219

添加系统到场景

Parameters

system

EntitySystem

Returns

EntitySystem


removeSystem()

removeSystem(system): void

Defined in: packages/core/src/ECS/IScene.ts:224

从场景中删除系统

Parameters

system

EntitySystem

Returns

void


getStats()

getStats(): object

Defined in: packages/core/src/ECS/IScene.ts:229

获取场景统计信息

Returns

object

entityCount

entityCount: number

processorCount

processorCount: number

componentStorageStats

componentStorageStats: Map<string, any>


getDebugInfo()

getDebugInfo(): object

Defined in: packages/core/src/ECS/IScene.ts:238

获取场景的调试信息

Returns

object

name

name: string

entityCount

entityCount: number

processorCount

processorCount: number

isRunning

isRunning: boolean

entities

entities: object[]

processors

processors: object[]

componentStats

componentStats: Map<string, any>


serialize()

serialize(options?): string | Uint8Array<ArrayBufferLike>

Defined in: packages/core/src/ECS/IScene.ts:260

序列化场景

Parameters

options?

SceneSerializationOptions

Returns

string | Uint8Array<ArrayBufferLike>


deserialize()

deserialize(saveData, options?): void

Defined in: packages/core/src/ECS/IScene.ts:265

反序列化场景

Parameters

saveData

string | Uint8Array<ArrayBufferLike>

options?

SceneDeserializationOptions

Returns

void


createIncrementalSnapshot()

createIncrementalSnapshot(options?): void

Defined in: packages/core/src/ECS/IScene.ts:270

创建增量序列化的基础快照

Parameters

options?

IncrementalSerializationOptions

Returns

void


serializeIncremental()

serializeIncremental(options?): IncrementalSnapshot

Defined in: packages/core/src/ECS/IScene.ts:275

增量序列化场景

Parameters

options?

IncrementalSerializationOptions

Returns

IncrementalSnapshot


applyIncremental()

applyIncremental(incremental, componentRegistry?): void

Defined in: packages/core/src/ECS/IScene.ts:280

应用增量变更到场景

Parameters

incremental

string | Uint8Array<ArrayBufferLike> | IncrementalSnapshot

componentRegistry?

Map<string, any>

Returns

void


updateIncrementalSnapshot()

updateIncrementalSnapshot(options?): void

Defined in: packages/core/src/ECS/IScene.ts:288

更新增量快照基准

Parameters

options?

IncrementalSerializationOptions

Returns

void


clearIncrementalSnapshot()

clearIncrementalSnapshot(): void

Defined in: packages/core/src/ECS/IScene.ts:293

清除增量快照

Returns

void


hasIncrementalSnapshot()

hasIncrementalSnapshot(): boolean

Defined in: packages/core/src/ECS/IScene.ts:298

检查是否有增量快照

Returns

boolean

Released under the MIT License.