Skip to content

ECS Framework API v2.2.13


ECS Framework API / Core

Class: Core

Defined in: packages/core/src/Core.ts:52

游戏引擎核心类

职责:

  • 提供全局服务(Timer、Performance、Pool等)
  • 管理场景生命周期(内置SceneManager)
  • 管理全局管理器的生命周期
  • 提供统一的游戏循环更新入口

Example

typescript
// 初始化并设置场景
Core.create({ debug: true });
Core.setScene(new GameScene());

// 游戏循环(自动更新全局服务和场景)
function gameLoop(deltaTime: number) {
    Core.update(deltaTime);
}

// 使用定时器
Core.schedule(1.0, false, null, (timer) => {
    console.log("1秒后执行");
});

// 切换场景
Core.loadScene(new MenuScene());  // 延迟切换
Core.setScene(new GameScene());   // 立即切换

// 获取当前场景
const currentScene = Core.scene;

Properties

paused

static paused: boolean = false

Defined in: packages/core/src/Core.ts:58

游戏暂停状态

当设置为true时,游戏循环将暂停执行。


entitySystemsEnabled

static entitySystemsEnabled: boolean

Defined in: packages/core/src/Core.ts:77

实体系统启用状态

控制是否启用ECS实体系统功能。


debug

readonly debug: boolean

Defined in: packages/core/src/Core.ts:84

调试模式标志

在调试模式下会启用额外的性能监控和错误检查。


_timerManager

_timerManager: TimerManager

Defined in: packages/core/src/Core.ts:98

定时器管理器

负责管理所有的游戏定时器。


_performanceMonitor

_performanceMonitor: PerformanceMonitor

Defined in: packages/core/src/Core.ts:105

性能监控器

监控游戏性能并提供优化建议。


_poolManager

_poolManager: PoolManager

Defined in: packages/core/src/Core.ts:112

对象池管理器

管理所有对象池的生命周期。


_debugManager?

optional _debugManager: DebugManager

Defined in: packages/core/src/Core.ts:119

调试管理器

负责收集和发送调试数据。

Accessors

Instance

Get Signature

get static Instance(): null | Core

Defined in: packages/core/src/Core.ts:226

获取核心实例

Returns

null | Core

全局核心实例


services

Get Signature

get static services(): ServiceContainer

Defined in: packages/core/src/Core.ts:247

获取服务容器

用于注册和解析自定义服务。

Throws

如果Core实例未创建

Example
typescript
// 注册自定义服务
Core.services.registerSingleton(MyService);

// 解析服务
const myService = Core.services.resolve(MyService);
Returns

ServiceContainer

服务容器实例


worldManager

Get Signature

get static worldManager(): WorldManager

Defined in: packages/core/src/Core.ts:271

获取World管理器

用于管理多个独立的World实例(高级用户)。

Throws

如果Core实例未创建

Example
typescript
// 创建多个游戏房间
const wm = Core.worldManager;
const room1 = wm.createWorld('room_001');
room1.createScene('game', new GameScene());
room1.start();
Returns

WorldManager

WorldManager实例


scene

Get Signature

get static scene(): null | IScene

Defined in: packages/core/src/Core.ts:344

获取当前场景

Returns

null | IScene

当前场景,如果没有场景则返回null


ecsAPI

Get Signature

get static ecsAPI(): null | ECSFluentAPI

Defined in: packages/core/src/Core.ts:370

获取ECS流式API

Example
typescript
// 使用流式API创建实体
const player = Core.ecsAPI?.createEntity('Player')
    .addComponent(Position, 100, 100)
    .addComponent(Velocity, 50, 0);

// 查询实体
const enemies = Core.ecsAPI?.query(Enemy, Transform);

// 发射事件
Core.ecsAPI?.emit('game:start', { level: 1 });
Returns

null | ECSFluentAPI

ECS API实例,如果当前没有场景则返回null


isDebugEnabled

Get Signature

get static isDebugEnabled(): boolean

Defined in: packages/core/src/Core.ts:532

检查调试是否启用

Returns

boolean

调试状态

Methods

create()

static create(config): Core

Defined in: packages/core/src/Core.ts:302

创建Core实例

如果实例已存在,则返回现有实例。

Parameters

config

Core配置,也可以直接传入boolean表示debug模式(向后兼容)

boolean | ICoreConfig

Returns

Core

Core实例

Example

typescript
// 方式1:使用配置对象
Core.create({
    debug: true,
    enableEntitySystems: true,
    debugConfig: {
        enabled: true,
        websocketUrl: 'ws://localhost:9229'
    }
});

// 方式2:简单模式(向后兼容)
Core.create(true);  // debug = true

setScene()

static setScene<T>(scene): T

Defined in: packages/core/src/Core.ts:330

设置当前场景

Type Parameters

T

T extends IScene

Parameters

scene

T

要设置的场景

Returns

T

设置的场景实例

Example

typescript
Core.create({ debug: true });

// 创建并设置场景
const gameScene = new GameScene();
Core.setScene(gameScene);

loadScene()

static loadScene<T>(scene): void

Defined in: packages/core/src/Core.ts:388

延迟加载场景(下一帧切换)

Type Parameters

T

T extends IScene

Parameters

scene

T

要加载的场景

Returns

void

Example

typescript
// 延迟切换场景(在下一帧生效)
Core.loadScene(new MenuScene());

update()

static update(deltaTime): void

Defined in: packages/core/src/Core.ts:423

更新游戏逻辑

此方法应该在游戏引擎的更新循环中调用。 会自动更新全局服务和当前场景。

Parameters

deltaTime

number

外部引擎提供的帧时间间隔(秒)

Returns

void

Example

typescript
// 初始化
Core.create({ debug: true });
Core.setScene(new GameScene());

// Laya引擎集成
Laya.timer.frameLoop(1, this, () => {
    const deltaTime = Laya.timer.delta / 1000;
    Core.update(deltaTime);  // 自动更新全局服务和场景
});

// Cocos Creator集成
update(deltaTime: number) {
    Core.update(deltaTime);  // 自动更新全局服务和场景
}

schedule()

static schedule<TContext>(timeInSeconds, repeats, context?, onTime?): Timer<TContext>

Defined in: packages/core/src/Core.ts:458

调度定时器

创建一个定时器,在指定时间后执行回调函数。

Type Parameters

TContext

TContext = unknown

Parameters

timeInSeconds

number

延迟时间(秒)

repeats

boolean = false

是否重复执行,默认为false

context?

TContext

回调函数的上下文,默认为null

onTime?

(timer) => void

定时器触发时的回调函数

Returns

Timer<TContext>

创建的定时器实例

Throws

如果Core实例未创建或onTime回调未提供

Example

typescript
// 一次性定时器
Core.schedule(1.0, false, null, (timer) => {
    console.log("1秒后执行一次");
});

// 重复定时器
Core.schedule(0.5, true, null, (timer) => {
    console.log("每0.5秒执行一次");
});

enableDebug()

static enableDebug(config): void

Defined in: packages/core/src/Core.ts:473

启用调试功能

Parameters

config

IECSDebugConfig

调试配置

Returns

void


disableDebug()

static disableDebug(): void

Defined in: packages/core/src/Core.ts:500

禁用调试功能

Returns

void


getDebugData()

static getDebugData(): unknown

Defined in: packages/core/src/Core.ts:519

获取调试数据

Returns

unknown

当前调试数据,如果调试未启用则返回null


installPlugin()

static installPlugin(plugin): Promise<void>

Defined in: packages/core/src/Core.ts:550

安装插件

Parameters

plugin

IPlugin

插件实例

Returns

Promise<void>

Throws

如果Core实例未创建或插件安装失败

Example

typescript
Core.create({ debug: true });

// 安装插件
await Core.installPlugin(new MyPlugin());

uninstallPlugin()

static uninstallPlugin(name): Promise<void>

Defined in: packages/core/src/Core.ts:569

卸载插件

Parameters

name

string

插件名称

Returns

Promise<void>

Throws

如果Core实例未创建或插件卸载失败

Example

typescript
await Core.uninstallPlugin('my-plugin');

getPlugin()

static getPlugin(name): undefined | IPlugin

Defined in: packages/core/src/Core.ts:591

获取插件实例

Parameters

name

string

插件名称

Returns

undefined | IPlugin

插件实例,如果未安装则返回undefined

Example

typescript
const myPlugin = Core.getPlugin('my-plugin');
if (myPlugin) {
    console.log(myPlugin.version);
}

isPluginInstalled()

static isPluginInstalled(name): boolean

Defined in: packages/core/src/Core.ts:612

检查插件是否已安装

Parameters

name

string

插件名称

Returns

boolean

是否已安装

Example

typescript
if (Core.isPluginInstalled('my-plugin')) {
    console.log('Plugin is installed');
}

initialize()

protected initialize(): void

Defined in: packages/core/src/Core.ts:625

初始化核心系统

执行核心系统的初始化逻辑。

Returns

void


destroy()

static destroy(): void

Defined in: packages/core/src/Core.ts:676

销毁Core实例

清理所有资源,通常在应用程序关闭时调用。

Returns

void

Released under the MIT License.