diff --git a/packages/core/src/ECS/Systems/EntitySystem.ts b/packages/core/src/ECS/Systems/EntitySystem.ts index 95667593..2db8b906 100644 --- a/packages/core/src/ECS/Systems/EntitySystem.ts +++ b/packages/core/src/ECS/Systems/EntitySystem.ts @@ -51,7 +51,7 @@ export abstract class EntitySystem implements ISystemBase { private _matcher: Matcher; private _eventListeners: EventListenerRecord[]; private _scene: Scene | null; - protected logger = createLogger('EntitySystem'); + protected logger: ReturnType; /** @@ -136,6 +136,9 @@ export abstract class EntitySystem implements ISystemBase { this._entityIdMapVersion = -1; this._entityIdMapSize = 0; + // 初始化logger + this.logger = createLogger(this.getLoggerName()); + this._entityCache = { frame: null, @@ -773,6 +776,14 @@ export abstract class EntitySystem implements ISystemBase { this.onDestroy(); } + /** + * 获取Logger名称 + * 子类可以重写此方法来自定义logger名称 + */ + protected getLoggerName(): string { + return 'EntitySystem'; + } + /** * 用户销毁回调 * diff --git a/packages/core/src/ECS/Systems/WorkerEntitySystem.ts b/packages/core/src/ECS/Systems/WorkerEntitySystem.ts index abdca6d4..addb749d 100644 --- a/packages/core/src/ECS/Systems/WorkerEntitySystem.ts +++ b/packages/core/src/ECS/Systems/WorkerEntitySystem.ts @@ -199,8 +199,6 @@ export abstract class WorkerEntitySystem extends EntitySystem constructor(matcher?: Matcher, config: WorkerSystemConfig = {}) { super(matcher); - this.logger = createLogger('WorkerEntitySystem'); - // 验证和调整 worker 数量,确保不超过系统最大值 const requestedWorkerCount = config.workerCount ?? this.getMaxSystemWorkerCount(); const maxSystemWorkerCount = this.getMaxSystemWorkerCount(); @@ -827,6 +825,10 @@ export abstract class WorkerEntitySystem extends EntitySystem this.workerPool = null; } } + + protected override getLoggerName(): string { + return 'WorkerEntitySystem'; + } } /** diff --git a/packages/network-client/src/systems/ClientSyncSystem.ts b/packages/network-client/src/systems/ClientSyncSystem.ts index b7e5454c..67fd4c0a 100644 --- a/packages/network-client/src/systems/ClientSyncSystem.ts +++ b/packages/network-client/src/systems/ClientSyncSystem.ts @@ -87,7 +87,6 @@ interface ClientSyncStats { * 负责接收和应用服务端同步数据,处理本地预测和插值 */ export class ClientSyncSystem extends EntitySystem { - private logger = createLogger('ClientSyncSystem'); private config: ClientSyncSystemConfig; private syncVarManager: SyncVarManager; private serializer: SyncVarSerializer; @@ -304,11 +303,16 @@ export class ClientSyncSystem extends EntitySystem { /** * 销毁系统 */ - public destroy(): void { + public override destroy(): void { this.remoteEntities.clear(); this.predictions.clear(); this.interpolations.clear(); this.localEntityMap.clear(); + super.destroy(); + } + + protected override getLoggerName(): string { + return 'ClientSyncSystem'; } /** diff --git a/packages/network-server/src/systems/SyncVarSystem.ts b/packages/network-server/src/systems/SyncVarSystem.ts index 34df3360..c3306244 100644 --- a/packages/network-server/src/systems/SyncVarSystem.ts +++ b/packages/network-server/src/systems/SyncVarSystem.ts @@ -69,7 +69,6 @@ interface SyncSystemStats { * 负责收集所有SyncVar变化并向客户端同步 */ export class SyncVarSystem extends EntitySystem { - private logger = createLogger('SyncVarSystem'); private config: SyncVarSystemConfig; private syncVarManager: SyncVarManager; private serializer: SyncVarSerializer; @@ -239,10 +238,15 @@ export class SyncVarSystem extends EntitySystem { /** * 销毁系统 */ - public destroy(): void { + public override destroy(): void { this.stopSyncTimer(); this.clientStates.clear(); this.pendingBatches.length = 0; + super.destroy(); + } + + protected override getLoggerName(): string { + return 'SyncVarSystem'; } /**