Skip to content

ECS Framework API v2.2.13


ECS Framework API / WorldManager

Class: WorldManager

Defined in: packages/core/src/ECS/WorldManager.ts:65

World管理器 - 管理所有World实例

WorldManager负责管理多个独立的World实例。 每个World都是独立的ECS环境,可以包含多个Scene。

适用场景:

  • MMO游戏的多房间管理
  • 服务器端的多游戏实例
  • 需要完全隔离的多个游戏环境

Example

typescript
// 创建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

IWorldManagerConfig

Methods

createWorld()

createWorld(worldName, config?): World

Defined in: packages/core/src/ECS/WorldManager.ts:95

创建新World

Parameters

worldName

string

config?

IWorldConfig

Returns

World


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

typescript
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

Implementation of

IService.dispose

Released under the MIT License.