Skip to content

Home > @esengine/ecs-framework-monorepo > DirtyTrackingSystem

DirtyTrackingSystem class

脏标记追踪系统

提供高效的组件和实体变更追踪,避免不必要的计算和更新。 支持细粒度的脏标记和批量处理机制。

Signature:

typescript
export declare class DirtyTrackingSystem

Example

typescript
const dirtySystem = new DirtyTrackingSystem();

// 标记实体的位置组件已修改
dirtySystem.markDirty(entity, DirtyFlag.TRANSFORM_CHANGED, [PositionComponent]);

// 监听位置变化
dirtySystem.addListener({
    flags: DirtyFlag.TRANSFORM_CHANGED,
    callback: (data) => {
        logger.debug('Entity position changed:', data.entity.name);
    }
});

// 处理所有脏标记
dirtySystem.processDirtyEntities();

Methods

Method

Modifiers

Description

addListener(listener)

添加脏标记监听器

beginFrame()

开始新的帧

clear()

清空所有脏标记和统计信息

clearDirty(entity, flags)

清除实体的脏标记

configureBatchProcessing(batchSize, maxProcessingTime)

配置批量处理参数

endFrame()

结束当前帧

getDirtyEntities(flags)

获取所有脏实体

getStats()

获取统计信息

isDirty(entity, flags)

检查实体是否有指定的脏标记

markDirty(entity, flags, modifiedComponents)

标记实体为脏状态

processDirtyEntities()

批量处理脏实体

使用时间分片的方式处理脏实体,避免单帧卡顿

removeListener(callback)

移除脏标记监听器

基于 MIT 许可证发布