ECS Framework API / World
Class: World
Defined in: packages/core/src/ECS/World.ts:100
World类 - ECS世界管理器
World是Scene的容器,每个World可以管理多个Scene。 World拥有独立的服务容器,用于管理World级别的全局服务。
服务容器层级:
- Core.services: 应用程序全局服务
- World.services: World级别服务(每个World独立)
- Scene.services: Scene级别服务(每个Scene独立)
这种设计允许创建独立的游戏世界,如:
- 游戏房间(每个房间一个World)
- 不同的游戏模式
- 独立的模拟环境
Example
// 创建游戏房间的World
const roomWorld = new World({ name: 'Room_001' });
// 注册World级别的服务
roomWorld.services.registerSingleton(RoomManager);
// 在World中创建Scene
const gameScene = roomWorld.createScene('game', new Scene());
const uiScene = roomWorld.createScene('ui', new Scene());
// 在Scene中使用World级别的服务
const roomManager = roomWorld.services.resolve(RoomManager);
// 更新整个World
roomWorld.update(deltaTime);Constructors
Constructor
new World(
config):World
Defined in: packages/core/src/ECS/World.ts:110
Parameters
config
IWorldConfig = {}
Returns
World
Properties
name
readonlyname:string
Defined in: packages/core/src/ECS/World.ts:101
Accessors
services
Get Signature
get services():
ServiceContainer
Defined in: packages/core/src/ECS/World.ts:130
World级别的服务容器 用于管理World范围内的全局服务
Returns
isActive
Get Signature
get isActive():
boolean
Defined in: packages/core/src/ECS/World.ts:536
检查World是否激活
Returns
boolean
sceneCount
Get Signature
get sceneCount():
number
Defined in: packages/core/src/ECS/World.ts:543
获取Scene数量
Returns
number
createdAt
Get Signature
get createdAt():
number
Defined in: packages/core/src/ECS/World.ts:550
获取创建时间
Returns
number
Methods
createScene()
createScene<
T>(sceneName,sceneInstance?):T
Defined in: packages/core/src/ECS/World.ts:139
创建并添加Scene到World
Type Parameters
T
T extends IScene
Parameters
sceneName
string
sceneInstance?
T
Returns
T
removeScene()
removeScene(
sceneName):boolean
Defined in: packages/core/src/ECS/World.ts:181
移除Scene
Parameters
sceneName
string
Returns
boolean
getScene()
getScene<
T>(sceneName):null|T
Defined in: packages/core/src/ECS/World.ts:203
获取Scene
Type Parameters
T
T extends IScene
Parameters
sceneName
string
Returns
null | T
getSceneIds()
getSceneIds():
string[]
Defined in: packages/core/src/ECS/World.ts:210
获取所有Scene ID
Returns
string[]
getAllScenes()
getAllScenes():
IScene[]
Defined in: packages/core/src/ECS/World.ts:217
获取所有Scene
Returns
IScene[]
removeAllScenes()
removeAllScenes():
void
Defined in: packages/core/src/ECS/World.ts:224
移除所有Scene
Returns
void
setSceneActive()
setSceneActive(
sceneName,active):void
Defined in: packages/core/src/ECS/World.ts:235
设置Scene激活状态
Parameters
sceneName
string
active
boolean
Returns
void
isSceneActive()
isSceneActive(
sceneName):boolean
Defined in: packages/core/src/ECS/World.ts:259
检查Scene是否激活
Parameters
sceneName
string
Returns
boolean
getActiveSceneCount()
getActiveSceneCount():
number
Defined in: packages/core/src/ECS/World.ts:266
获取活跃Scene数量
Returns
number
addGlobalSystem()
addGlobalSystem<
T>(system):T
Defined in: packages/core/src/ECS/World.ts:276
添加全局System 全局System会在所有激活Scene之前更新
Type Parameters
T
T extends IGlobalSystem
Parameters
system
T
Returns
T
removeGlobalSystem()
removeGlobalSystem(
system):boolean
Defined in: packages/core/src/ECS/World.ts:293
移除全局System
Parameters
system
IGlobalSystem
Returns
boolean
getGlobalSystem()
getGlobalSystem<
T>(type):null|T
Defined in: packages/core/src/ECS/World.ts:311
获取全局System
Type Parameters
T
T extends IGlobalSystem
Parameters
type
(...args) => T
Returns
null | T
start()
start():
void
Defined in: packages/core/src/ECS/World.ts:325
启动World
Returns
void
stop()
stop():
void
Defined in: packages/core/src/ECS/World.ts:345
停止World
Returns
void
updateGlobalSystems()
updateGlobalSystems():
void
Defined in: packages/core/src/ECS/World.ts:370
更新World中的全局System 注意:此方法由Core.update()调用,不应直接调用
Returns
void
updateScenes()
updateScenes():
void
Defined in: packages/core/src/ECS/World.ts:387
更新World中的所有激活Scene 注意:此方法由Core.update()调用,不应直接调用
Returns
void
destroy()
destroy():
void
Defined in: packages/core/src/ECS/World.ts:409
销毁World
Returns
void
getStatus()
getStatus():
object
Defined in: packages/core/src/ECS/World.ts:443
获取World状态
Returns
object
name
name:
string
isActive
isActive:
boolean
sceneCount
sceneCount:
number
activeSceneCount
activeSceneCount:
number
globalSystemCount
globalSystemCount:
number
createdAt
createdAt:
number
config
config:
object
config.name?
optionalname:string
World名称
config.debug?
optionaldebug:boolean
是否启用调试模式
config.maxScenes?
optionalmaxScenes:number
最大Scene数量限制
config.autoCleanup?
optionalautoCleanup:boolean
是否自动清理空Scene
scenes
scenes:
object[]
getStats()
getStats():
object
Defined in: packages/core/src/ECS/World.ts:463
获取World统计信息
Returns
object
totalEntities
totalEntities:
number=0
totalSystems
totalSystems:
number
memoryUsage
memoryUsage:
number=0
performance
performance:
object
performance.averageUpdateTime
averageUpdateTime:
number=0
performance.maxUpdateTime
maxUpdateTime:
number=0