Scene 构造函数注入 PerformanceMonitor

This commit is contained in:
YHH
2025-10-10 22:08:10 +08:00
parent b13132b259
commit 1af2cf5f99
3 changed files with 76 additions and 3 deletions

View File

@@ -165,4 +165,12 @@ export interface ISceneConfig {
* 场景名称
*/
name?: string;
/**
* 性能监控器实例(可选)
*
* 如果不提供Scene会自动从Core.services获取全局PerformanceMonitor。
* 提供此参数可以实现场景级别的独立性能监控。
*/
performanceMonitor?: any;
}

View File

@@ -89,6 +89,13 @@ export class Scene implements IScene {
*/
private readonly logger: ReturnType<typeof createLogger>;
/**
* 性能监控器
*
* 用于监控场景和系统的性能。可以在构造函数中注入如果不提供则从Core获取。
*/
private readonly _performanceMonitor: PerformanceMonitor;
/**
* 场景是否已开始运行
*/
@@ -167,6 +174,12 @@ export class Scene implements IScene {
this._services = new ServiceContainer();
this.logger = createLogger('Scene');
if (config?.performanceMonitor) {
this._performanceMonitor = config.performanceMonitor;
} else {
this._performanceMonitor = Core.services.resolve(PerformanceMonitor);
}
if (config?.name) {
this.name = config.name;
}
@@ -547,8 +560,7 @@ export class Scene implements IScene {
system.scene = this;
const perfMonitor = Core.services.resolve(PerformanceMonitor);
system.setPerformanceMonitor(perfMonitor);
system.setPerformanceMonitor(this._performanceMonitor);
const metadata = getSystemMetadata(constructor);
if (metadata?.updateOrder !== undefined) {