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
readonlysceneData:Map<string,any>
Defined in: packages/core/src/ECS/IScene.ts:42
场景自定义数据
用于存储场景级别的配置和状态数据,例如:
- 天气状态
- 时间设置
- 游戏难度
- 音频配置
- 关卡检查点
Example
scene.sceneData.set('weather', 'rainy');
scene.sceneData.set('timeOfDay', 14.5);
scene.sceneData.set('checkpoint', { x: 100, y: 200 });entities
readonlyentities:EntityList
Defined in: packages/core/src/ECS/IScene.ts:47
场景中的实体集合
identifierPool
readonlyidentifierPool:IdentifierPool
Defined in: packages/core/src/ECS/IScene.ts:52
标识符池
componentStorageManager
readonlycomponentStorageManager:ComponentStorageManager
Defined in: packages/core/src/ECS/IScene.ts:57
组件存储管理器
querySystem
readonlyquerySystem:QuerySystem
Defined in: packages/core/src/ECS/IScene.ts:62
查询系统
eventSystem
readonlyeventSystem:TypeSafeEventSystem
Defined in: packages/core/src/ECS/IScene.ts:67
事件系统
referenceTracker
readonlyreferenceTracker:ReferenceTracker
Defined in: packages/core/src/ECS/IScene.ts:72
引用追踪器
services
readonlyservices:ServiceContainer
Defined in: packages/core/src/ECS/IScene.ts:79
服务容器
场景级别的依赖注入容器,用于管理服务的生命周期。
systems
readonlysystems: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
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
deferCacheClear?
boolean
Returns
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
Returns
removeEntityProcessor()
removeEntityProcessor(
processor):void
Defined in: packages/core/src/ECS/IScene.ts:159
移除实体处理器
Parameters
processor
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
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
Returns
addSystem()
addSystem(
system):EntitySystem
Defined in: packages/core/src/ECS/IScene.ts:219
添加系统到场景
Parameters
system
Returns
removeSystem()
removeSystem(
system):void
Defined in: packages/core/src/ECS/IScene.ts:224
从场景中删除系统
Parameters
system
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?
Returns
string | Uint8Array<ArrayBufferLike>
deserialize()
deserialize(
saveData,options?):void
Defined in: packages/core/src/ECS/IScene.ts:265
反序列化场景
Parameters
saveData
string | Uint8Array<ArrayBufferLike>
options?
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
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