ECS Framework API / Core
Class: Core
Defined in: packages/core/src/Core.ts:52
游戏引擎核心类
职责:
- 提供全局服务(Timer、Performance、Pool等)
- 管理场景生命周期(内置SceneManager)
- 管理全局管理器的生命周期
- 提供统一的游戏循环更新入口
Example
// 初始化并设置场景
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
staticpaused:boolean=false
Defined in: packages/core/src/Core.ts:58
游戏暂停状态
当设置为true时,游戏循环将暂停执行。
entitySystemsEnabled
staticentitySystemsEnabled:boolean
Defined in: packages/core/src/Core.ts:77
实体系统启用状态
控制是否启用ECS实体系统功能。
debug
readonlydebug: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
staticInstance():null|Core
Defined in: packages/core/src/Core.ts:226
获取核心实例
Returns
null | Core
全局核心实例
services
Get Signature
get
staticservices():ServiceContainer
Defined in: packages/core/src/Core.ts:247
获取服务容器
用于注册和解析自定义服务。
Throws
如果Core实例未创建
Example
// 注册自定义服务
Core.services.registerSingleton(MyService);
// 解析服务
const myService = Core.services.resolve(MyService);Returns
服务容器实例
worldManager
Get Signature
get
staticworldManager():WorldManager
Defined in: packages/core/src/Core.ts:271
获取World管理器
用于管理多个独立的World实例(高级用户)。
Throws
如果Core实例未创建
Example
// 创建多个游戏房间
const wm = Core.worldManager;
const room1 = wm.createWorld('room_001');
room1.createScene('game', new GameScene());
room1.start();Returns
WorldManager实例
scene
Get Signature
get
staticscene():null|IScene
Defined in: packages/core/src/Core.ts:344
获取当前场景
Returns
null | IScene
当前场景,如果没有场景则返回null
ecsAPI
Get Signature
get
staticecsAPI():null|ECSFluentAPI
Defined in: packages/core/src/Core.ts:370
获取ECS流式API
Example
// 使用流式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
staticisDebugEnabled():boolean
Defined in: packages/core/src/Core.ts:532
检查调试是否启用
Returns
boolean
调试状态
Methods
create()
staticcreate(config):Core
Defined in: packages/core/src/Core.ts:302
创建Core实例
如果实例已存在,则返回现有实例。
Parameters
config
Core配置,也可以直接传入boolean表示debug模式(向后兼容)
boolean | ICoreConfig
Returns
Core
Core实例
Example
// 方式1:使用配置对象
Core.create({
debug: true,
enableEntitySystems: true,
debugConfig: {
enabled: true,
websocketUrl: 'ws://localhost:9229'
}
});
// 方式2:简单模式(向后兼容)
Core.create(true); // debug = truesetScene()
staticsetScene<T>(scene):T
Defined in: packages/core/src/Core.ts:330
设置当前场景
Type Parameters
T
T extends IScene
Parameters
scene
T
要设置的场景
Returns
T
设置的场景实例
Example
Core.create({ debug: true });
// 创建并设置场景
const gameScene = new GameScene();
Core.setScene(gameScene);loadScene()
staticloadScene<T>(scene):void
Defined in: packages/core/src/Core.ts:388
延迟加载场景(下一帧切换)
Type Parameters
T
T extends IScene
Parameters
scene
T
要加载的场景
Returns
void
Example
// 延迟切换场景(在下一帧生效)
Core.loadScene(new MenuScene());update()
staticupdate(deltaTime):void
Defined in: packages/core/src/Core.ts:423
更新游戏逻辑
此方法应该在游戏引擎的更新循环中调用。 会自动更新全局服务和当前场景。
Parameters
deltaTime
number
外部引擎提供的帧时间间隔(秒)
Returns
void
Example
// 初始化
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()
staticschedule<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
// 一次性定时器
Core.schedule(1.0, false, null, (timer) => {
console.log("1秒后执行一次");
});
// 重复定时器
Core.schedule(0.5, true, null, (timer) => {
console.log("每0.5秒执行一次");
});enableDebug()
staticenableDebug(config):void
Defined in: packages/core/src/Core.ts:473
启用调试功能
Parameters
config
调试配置
Returns
void
disableDebug()
staticdisableDebug():void
Defined in: packages/core/src/Core.ts:500
禁用调试功能
Returns
void
getDebugData()
staticgetDebugData():unknown
Defined in: packages/core/src/Core.ts:519
获取调试数据
Returns
unknown
当前调试数据,如果调试未启用则返回null
installPlugin()
staticinstallPlugin(plugin):Promise<void>
Defined in: packages/core/src/Core.ts:550
安装插件
Parameters
plugin
插件实例
Returns
Promise<void>
Throws
如果Core实例未创建或插件安装失败
Example
Core.create({ debug: true });
// 安装插件
await Core.installPlugin(new MyPlugin());uninstallPlugin()
staticuninstallPlugin(name):Promise<void>
Defined in: packages/core/src/Core.ts:569
卸载插件
Parameters
name
string
插件名称
Returns
Promise<void>
Throws
如果Core实例未创建或插件卸载失败
Example
await Core.uninstallPlugin('my-plugin');getPlugin()
staticgetPlugin(name):undefined|IPlugin
Defined in: packages/core/src/Core.ts:591
获取插件实例
Parameters
name
string
插件名称
Returns
undefined | IPlugin
插件实例,如果未安装则返回undefined
Example
const myPlugin = Core.getPlugin('my-plugin');
if (myPlugin) {
console.log(myPlugin.version);
}isPluginInstalled()
staticisPluginInstalled(name):boolean
Defined in: packages/core/src/Core.ts:612
检查插件是否已安装
Parameters
name
string
插件名称
Returns
boolean
是否已安装
Example
if (Core.isPluginInstalled('my-plugin')) {
console.log('Plugin is installed');
}initialize()
protectedinitialize():void
Defined in: packages/core/src/Core.ts:625
初始化核心系统
执行核心系统的初始化逻辑。
Returns
void
destroy()
staticdestroy():void
Defined in: packages/core/src/Core.ts:676
销毁Core实例
清理所有资源,通常在应用程序关闭时调用。
Returns
void