ECS Framework API / WorldManager
Class: WorldManager
Defined in: packages/core/src/ECS/WorldManager.ts:65
World管理器 - 管理所有World实例
WorldManager负责管理多个独立的World实例。 每个World都是独立的ECS环境,可以包含多个Scene。
适用场景:
- MMO游戏的多房间管理
- 服务器端的多游戏实例
- 需要完全隔离的多个游戏环境
Example
// 创建WorldManager实例
const worldManager = new WorldManager({
maxWorlds: 100,
autoCleanup: true
});
// 创建游戏房间World
const room1 = worldManager.createWorld('room_001', {
name: 'GameRoom_001',
maxScenes: 5
});
room1.setActive(true);
// 游戏循环
function gameLoop(deltaTime: number) {
Core.update(deltaTime);
worldManager.updateAll(); // 更新所有活跃World
}Implements
Constructors
Constructor
new WorldManager(
config):WorldManager
Defined in: packages/core/src/ECS/WorldManager.ts:71
Parameters
config
IWorldManagerConfig = {}
Returns
WorldManager
Accessors
worldCount
Get Signature
get worldCount():
number
Defined in: packages/core/src/ECS/WorldManager.ts:431
获取World总数
Returns
number
activeWorldCount
Get Signature
get activeWorldCount():
number
Defined in: packages/core/src/ECS/WorldManager.ts:438
获取激活World数量
Returns
number
isRunning
Get Signature
get isRunning():
boolean
Defined in: packages/core/src/ECS/WorldManager.ts:449
检查是否正在运行
Returns
boolean
config
Get Signature
get config():
IWorldManagerConfig
Defined in: packages/core/src/ECS/WorldManager.ts:456
获取配置
Returns
Methods
createWorld()
createWorld(
worldName,config?):World
Defined in: packages/core/src/ECS/WorldManager.ts:95
创建新World
Parameters
worldName
string
config?
Returns
removeWorld()
removeWorld(
worldName):boolean
Defined in: packages/core/src/ECS/WorldManager.ts:125
移除World
Parameters
worldName
string
Returns
boolean
getWorld()
getWorld(
worldName):null|World
Defined in: packages/core/src/ECS/WorldManager.ts:142
获取World
Parameters
worldName
string
Returns
null | World
getWorldIds()
getWorldIds():
string[]
Defined in: packages/core/src/ECS/WorldManager.ts:149
获取所有World ID
Returns
string[]
getAllWorlds()
getAllWorlds():
World[]
Defined in: packages/core/src/ECS/WorldManager.ts:156
获取所有World
Returns
World[]
setWorldActive()
setWorldActive(
worldName,active):void
Defined in: packages/core/src/ECS/WorldManager.ts:163
设置World激活状态
Parameters
worldName
string
active
boolean
Returns
void
isWorldActive()
isWorldActive(
worldName):boolean
Defined in: packages/core/src/ECS/WorldManager.ts:182
检查World是否激活
Parameters
worldName
string
Returns
boolean
updateAll()
updateAll():
void
Defined in: packages/core/src/ECS/WorldManager.ts:203
更新所有活跃的World
应该在每帧的游戏循环中调用。 会自动更新所有活跃World的全局系统和场景。
Returns
void
Example
function gameLoop(deltaTime: number) {
Core.update(deltaTime); // 更新全局服务
worldManager.updateAll(); // 更新所有World
}getActiveWorlds()
getActiveWorlds():
World[]
Defined in: packages/core/src/ECS/WorldManager.ts:234
获取所有激活的World
Returns
World[]
startAll()
startAll():
void
Defined in: packages/core/src/ECS/WorldManager.ts:247
启动所有World
Returns
void
stopAll()
stopAll():
void
Defined in: packages/core/src/ECS/WorldManager.ts:260
停止所有World
Returns
void
findWorlds()
findWorlds(
predicate):World[]
Defined in: packages/core/src/ECS/WorldManager.ts:273
查找满足条件的World
Parameters
predicate
(world) => boolean
Returns
World[]
findWorldByName()
findWorldByName(
name):null|World
Defined in: packages/core/src/ECS/WorldManager.ts:286
根据名称查找World
Parameters
name
string
Returns
null | World
getStats()
getStats():
object
Defined in: packages/core/src/ECS/WorldManager.ts:300
获取WorldManager统计信息
Returns
object
totalWorlds
totalWorlds:
number
activeWorlds
activeWorlds:
number
totalScenes
totalScenes:
number=0
totalEntities
totalEntities:
number=0
totalSystems
totalSystems:
number=0
memoryUsage
memoryUsage:
number=0
isRunning
isRunning:
boolean
config
config:
object
config.maxWorlds
maxWorlds:
number
最大World数量
config.autoCleanup
autoCleanup:
boolean
是否自动清理空World
config.cleanupFrameInterval
cleanupFrameInterval:
number
清理间隔(帧数)
config.debug
debug:
boolean
是否启用调试模式
worlds
worlds:
any[]
getDetailedStatus()
getDetailedStatus():
object
Defined in: packages/core/src/ECS/WorldManager.ts:334
获取详细状态信息
Returns
object
totalWorlds
totalWorlds:
number
activeWorlds
activeWorlds:
number
totalScenes
totalScenes:
number=0
totalEntities
totalEntities:
number=0
totalSystems
totalSystems:
number=0
memoryUsage
memoryUsage:
number=0
isRunning
isRunning:
boolean
config
config:
object
config.maxWorlds
maxWorlds:
number
最大World数量
config.autoCleanup
autoCleanup:
boolean
是否自动清理空World
config.cleanupFrameInterval
cleanupFrameInterval:
number
清理间隔(帧数)
config.debug
debug:
boolean
是否启用调试模式
worlds
worlds:
object[]
cleanup()
cleanup():
number
Defined in: packages/core/src/ECS/WorldManager.ts:350
清理空World
Returns
number
destroy()
destroy():
void
Defined in: packages/core/src/ECS/WorldManager.ts:373
销毁WorldManager
Returns
void
dispose()
dispose():
void
Defined in: packages/core/src/ECS/WorldManager.ts:395
实现 IService 接口的 dispose 方法 调用 destroy 方法进行清理
Returns
void