This commit is contained in:
YHH
2025-09-26 09:38:57 +08:00
3 changed files with 18 additions and 1 deletions

View File

@@ -343,7 +343,14 @@ export class Scene implements IScene {
public removeEntityProcessor(processor: EntitySystem) { public removeEntityProcessor(processor: EntitySystem) {
this.entityProcessors.remove(processor); this.entityProcessors.remove(processor);
processor.reset(); 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 { public reset(): void {
this.scene = null;
this._initialized = false; this._initialized = false;
this._trackedEntities.clear(); this._trackedEntities.clear();

View File

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