| 26 | @Injectable() |
| 27 | @Updatable() |
| 28 | export class DebugManager implements IService, IUpdatable { |
| 29 | private config!: IECSDebugConfig; |
| 30 | private webSocketManager!: WebSocketManager; |
| 31 | private entityCollector!: EntityDataCollector; |
| 32 | private systemCollector!: SystemDataCollector; |
| 33 | private performanceCollector!: PerformanceDataCollector; |
| 34 | private componentCollector!: ComponentDataCollector; |
| 35 | private sceneCollector!: SceneDataCollector; |
| 36 | private advancedProfilerCollector!: AdvancedProfilerCollector; |
| 37 | |
| 38 | @InjectProperty(SceneManager) |
| 39 | private sceneManager!: SceneManager; |
| 40 | |
| 41 | @InjectProperty(PerformanceMonitor) |
| 42 | private performanceMonitor!: PerformanceMonitor; |
| 43 | |
| 44 | @InjectProperty(DebugConfigService) |
| 45 | private configService!: DebugConfigService; |
| 46 | |
| 47 | private frameCounter: number = 0; |
| 48 | private lastSendTime: number = 0; |
| 49 | private sendInterval: number = 0; |
| 50 | private isRunning: boolean = false; |
| 51 | private originalConsole = { |
| 52 | log: console.log.bind(console), |
| 53 | debug: console.debug.bind(console), |
| 54 | info: console.info.bind(console), |
| 55 | warn: console.warn.bind(console), |
| 56 | error: console.error.bind(console) |
| 57 | }; |
| 58 | |
| 59 | public onInitialize(): void { |
| 60 | this.config = this.configService.getConfig(); |
| 61 | |
| 62 | // 初始化数据收集器 |
| 63 | this.entityCollector = new EntityDataCollector(); |
| 64 | this.systemCollector = new SystemDataCollector(); |
| 65 | this.performanceCollector = new PerformanceDataCollector(); |
| 66 | this.componentCollector = new ComponentDataCollector(); |
| 67 | this.sceneCollector = new SceneDataCollector(); |
| 68 | this.advancedProfilerCollector = new AdvancedProfilerCollector(); |
| 69 | |
| 70 | // 启用高级性能分析器 |
| 71 | ProfilerSDK.setEnabled(true); |
| 72 | |
| 73 | // 初始化WebSocket管理器 |
| 74 | this.webSocketManager = new WebSocketManager( |
| 75 | this.config.websocketUrl, |
| 76 | this.config.autoReconnect !== false |
| 77 | ); |
| 78 | |
| 79 | // 设置消息处理回调 |
| 80 | this.webSocketManager.setMessageHandler(this.handleMessage.bind(this)); |
| 81 | |
| 82 | // 计算发送间隔(基于帧率) |
| 83 | const debugFrameRate = this.config.debugFrameRate || 30; |
| 84 | this.sendInterval = 1000 / debugFrameRate; |
| 85 |
nothing calls this directly
no test coverage detected