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.