What problem does it solve?
It solves the need to process ECS entities with maximum control at the chunk level, where you must handle chunk change filtering, enabled masks, and deterministic access patterns safely and efficiently.
Core Features & Use Cases
- Chunk-level change filtering: Use chunk.DidChange(ref typeHandle, lastSystemVersion) to skip unchanged chunks and reduce work in sparse-update scenarios.
- Enabled mask handling: Correctly respect IEnableableComponent by considering useEnabledMask and chunkEnabledMask when entities may be disabled.
- High-throughput data access: Drive performance-critical pipelines by using direct component access patterns (e.g., GetNativeArray or required data pointers) and managing explicit sort keys/state dependencies.
- Use case: Updating LocalTransform using Velocity only when Velocity changed, while ensuring the job schedules correctly with state.Dependency to avoid races.
Quick Start
Schedule a Burst-compiled IJobChunk that checks chunk.DidChange for your read components, then iterate the chunk arrays (or use required pointers) to apply your updates and return the chained state.Dependency.