场景移除时, 清理系统

This commit is contained in:
SNDA\niujiaqun.nathan
2025-09-24 18:14:22 +08:00
parent 60566e8d78
commit d8ea324018
3 changed files with 18 additions and 1 deletions

View File

@@ -338,7 +338,14 @@ export class Scene implements IScene {
public removeEntityProcessor(processor: EntitySystem) {
this.entityProcessors.remove(processor);
processor.reset();
processor.scene = null;
}
/**
* 从场景中删除系统removeEntityProcessor的别名
* @param system 系统
*/
public removeSystem(system: EntitySystem) {
this.removeEntityProcessor(system);
}
/**

View File

@@ -162,6 +162,7 @@ export abstract class EntitySystem implements ISystemBase {
* 当系统从场景中移除时调用,重置初始化状态以便重新添加时能正确初始化。
*/
public reset(): void {
this.scene = null;
this._initialized = false;
this._trackedEntities.clear();

View File

@@ -65,6 +65,15 @@ export class EntityProcessorList {
*/
public end(): void {
// 清理处理器
for (const processor of this._processors) {
try {
processor.update();
} catch (error) {
EntityProcessorList._logger.error(`Error in processor ${getSystemInstanceTypeName(processor)}:`, error);
}
}
this._isDirty = false;
this._processors.length = 0;
}
/**