wave5-chunk-did-change-incremental-update

Gate Unity DOTS IJobChunk execution with chunk.DidChange() and LastSystemVersion.

6|Updated Apr 2, 2026
One-click install
npx skills add https://github.com/dyCuong03/unity-agent-team --skill wave5-chunk-did-change-incremental-update
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: wave5-chunk-did-change-incremental-update
Source: https://github.com/dyCuong03/unity-agent-team/tree/main/.claude/skills/unity-dots/wave5-chunk-did-change-incremental-update
Command: npx skills add https://github.com/dyCuong03/unity-agent-team --skill wave5-chunk-did-change-incremental-update

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you avoid wasting CPU time by preventing Unity DOTS IJobChunk systems from recomputing derived data for chunks that have not changed since the last frame.

Core Features & Use Cases

  • Chunk-level incremental execution with chunk.DidChange(): Skip work when no relevant input component data changed for a given chunk.
  • Correct change-version wiring via LastSystemVersion: Use state.LastSystemVersion so DidChange reflects real system-to-system versioning.
  • Multi-input propagation logic: Combine multiple DidChange checks (e.g., parent and child transforms) to ensure only correct recomputations occur.
  • Use Case: Recomputing expensive derived values like world-space bounds or LocalToWorld-related outputs while most entities remain static across frames.

Quick Start

Use chunk.DidChange(ref YourInputHandle, LastSystemVersion) inside your IJobChunk Execute method and immediately return when it reports no change.

Frequently Asked Questions about wave5-chunk-did-change-incremental-update

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I skip unnecessary recomputation in Unity DOTS IJobChunk systems?

Use chunk.DidChange() inside your IJobChunk Execute method to gate per-chunk execution, returning early when no relevant input component data changed since the last frame to skip unnecessary recomputation.

Why does chunk.DidChange always return true in my Unity ECS system?

chunk.DidChange always returning true usually means you are not passing a fresh LastSystemVersion. You must pass state.LastSystemVersion so DidChange reflects real system-to-system change versioning.

How do I handle incremental updates in IJobChunk when multiple components change?

For multiple input components, combine multiple DidChange checks (e.g., parent and child transforms) to propagate change logic correctly, ensuring only chunks with actual modifications trigger recomputations.

Can I use chunk.DidChange for mostly-static Unity DOTS worlds?

Yes, chunk-level incremental execution is ideal for mostly-static worlds where most entities remain unchanged across frames, preventing wasted CPU time on expensive derived values like world-space bounds.

What is chunk-level incremental execution in Unity ECS?

Chunk-level incremental execution is a performance optimization that gates per-chunk processing using chunk.DidChange(), skipping work for entire chunks whose input component data has not changed since the last system version.

What are the limitations of using chunk.DidChange for performance optimization?

DidChange operates at chunk granularity, meaning any single component change forces recomputation for the entire chunk, and it requires correct component handles and a fresh LastSystemVersion to function properly.