MCPcopy Create free account
hub / github.com/esengine/esengine / DebugManager

Class DebugManager

packages/core/src/Utils/Debug/DebugManager.ts:28–1034  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26@Injectable()
27@Updatable()
28export 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

Callers

nothing calls this directly

Calls 2

InjectPropertyFunction · 0.90
bindMethod · 0.45

Tested by

no test coverage detected