Files
esengine/extensions/cocos/cocos-ecs/assets/scripts/ecs/ECSManager.ts

104 lines
2.8 KiB
TypeScript
Raw Normal View History

import { Core } from '@esengine/ecs-framework';
import { Component, _decorator } from 'cc';
import { GameScene } from './scenes/GameScene';
const { ccclass, property } = _decorator;
/**
* ECS管理器 - Cocos Creator组件
* ECS框架
*
* 使
* 1. Cocos Creator场景中创建一个空节点
* 2. ECSManager组件添加到该节点
* 3. ECS框架
*/
@ccclass('ECSManager')
export class ECSManager extends Component {
@property({
tooltip: '是否启用调试模式(建议开发阶段开启)'
})
public debugMode: boolean = true;
private isInitialized: boolean = false;
/**
* ECS
*/
start() {
this.initializeECS();
}
/**
* ECS框架
*/
private initializeECS(): void {
if (this.isInitialized) return;
// ECS框架初始化开始
try {
// 1. 创建Core实例启用调试功能
if (this.debugMode) {
Core.create({
debug: true,
enableEntitySystems: true,
debugConfig: {
enabled: true,
websocketUrl: 'ws://localhost:8080',
autoReconnect: true,
debugFrameRate: 30,
channels: {
entities: true,
systems: true,
performance: true,
components: true,
scenes: true
}
}
});
console.log('✅ ECS调试模式已启用');
} else {
Core.create({
debug: false,
enableEntitySystems: true
});
console.log(' ECS调试模式已禁用');
}
// 2. 创建游戏场景
const gameScene = new GameScene();
// 3. 设置为当前场景会自动调用scene.begin()
Core.setScene(gameScene);
this.isInitialized = true;
// ECS框架初始化完成
} catch (error) {
console.error('ECS框架初始化失败:', error);
}
}
/**
* ECS框架
*/
update(deltaTime: number) {
if (this.isInitialized) {
// 更新ECS核心系统
Core.update(deltaTime);
}
}
/**
* ECS
*/
onDestroy() {
if (this.isInitialized) {
// ECS框架清理
this.isInitialized = false;
}
}
}