ecs-fundamentals-isystem-default

Enforce ISystem as the default for Unity Entities 1.x runtime systems.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Avoids performance and correctness traps in Unity DOTS Entities 1.x by ensuring runtime systems default to ISystem (Burst-friendly, unmanaged) and only use SystemBase when managed work is truly required.

Core Features & Use Cases

  • Default-to-ISystem rule: Guides authors and reviewers to prefer ISystem for runtime hot-path systems to reduce GC pressure and preserve Burst compatibility.
  • Managed work bridge pattern: Shows how to split managed-only setup into an adjacent SystemBase “bridge” that produces unmanaged data for an ISystem hot path.
  • Burst-fallback failure prevention: Flags the [BurstDiscard] silent-fallback trap and other managed-call patterns that can make “it compiles” still run in non-Burst C#.

Quick Start

Use the skill to review your ECS runtime system and decide whether to keep it as an ISystem or refactor it into a SystemBase bridge for any required managed access.

Frequently Asked Questions about ecs-fundamentals-isystem-default

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

FAQPage Schema
Why does my Unity DOTS ECS system allocate GC memory even when it is Burst compiled?

Your Unity DOTS ECS system allocates GC memory because managed references or a reachable [BurstDiscard] attribute in OnUpdate forces a silent fallback to non-Burst C#. Defaulting to ISystem prevents these managed allocations and preserves Burst compilation.

When should I use ISystem instead of SystemBase in Unity Entities 1.x?

Use ISystem instead of SystemBase in Unity Entities 1.x for runtime hot-path ECS systems to reduce GC pressure and maintain Burst compatibility. Reserve SystemBase only for systems requiring unavoidable managed work.

How do I handle managed references in a Burst-ready Unity DOTS system?

Handle managed references in a Burst-ready Unity DOTS system by implementing a bridge-system pattern. Split managed-only setup into an adjacent SystemBase that produces unmanaged data for your ISystem hot path to consume.

What is the [BurstDiscard] silent-fallback trap in Unity ECS?

The [BurstDiscard] silent-fallback trap in Unity ECS occurs when a managed call is reachable from OnUpdate, causing the system to compile but run in non-Burst C#. Enforce ISystem and isolate managed code to prevent this performance regression.

How do I refactor an ECS system that mixes managed work into a Burst-compatible ISystem?

Refactor an ECS system with managed work into a Burst-compatible ISystem by extracting managed operations into an adjacent SystemBase bridge. This bridge processes managed setup and outputs unmanaged data for the ISystem hot path.

Can I use SystemBase for performance-critical Unity DOTS systems without causing GC allocation?

You cannot use SystemBase for performance-critical Unity DOTS systems without causing GC allocation because SystemBase is a managed class. ISystem is unmanaged and Burst-friendly, making it the required default for zero-GC hot paths.