isystem-burst-compile

Implement Unity ECS systems as unmanaged ISystem structs with Burst-compiled entry points.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It solves performance loss from managed dispatch when your ECS simulation code could be compiled and executed as native Burst code instead.

Core Features & Use Cases

  • Unmanaged ISystem design: Implement systems as public partial struct ... : ISystem to avoid class-based dispatch and keep state value-type friendly.
  • Burst-compiled entry points: Use [BurstCompile] on OnCreate, OnUpdate, and OnDestroy to compile the hot paths.
  • Burst-safe ECS access: Use ref SystemState and Burst-compatible SystemAPI.Query patterns while keeping every field and call Burst-safe.

Use it when you’re writing high-frequency simulation (movement, physics-style updates, gameplay state stepping) that doesn’t require managed types like string, List<T>, MonoBehaviour references, or Unity managed APIs.

Quick Start

Use the pattern for a new ECS simulation system by creating an ISystem as an unmanaged partial struct, marking its lifecycle methods with [BurstCompile], and moving all ECS access through ref SystemState plus Burst-safe SystemAPI.Query iteration.

Frequently Asked Questions about isystem-burst-compile

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

FAQPage Schema
How do I eliminate managed dispatch overhead in Unity ECS simulation systems?

To eliminate managed dispatch overhead in Unity ECS, implement systems as unmanaged ISystem structs with Burst-compiled entry points. This ensures high-frequency simulation logic uses only unmanaged components and avoids managed Unity APIs.

How do I make Unity DOTS ISystem structs Burst-compatible?

Make Unity DOTS ISystem structs Burst-compatible by using Burst-safe fields, accessing ECS queries through ref SystemState, and applying SystemAPI.Query patterns while avoiding managed types like string, List<T>, or MonoBehaviour references.

When should I use ISystem over SystemBase for Unity ECS performance?

Use ISystem for Unity ECS performance when writing high-frequency simulation logic such as movement, physics-style updates, or gameplay state stepping that doesn't require managed types or managed Unity APIs.

What managed types and Unity APIs prevent Burst compilation in ECS systems?

Managed types like string, List<T>, MonoBehaviour references, and managed Unity APIs prevent Burst compilation in ECS systems. Accessing these managed component patterns breaks Burst-safe execution paths and reverts to managed dispatch overhead.

Can I use BurstCompile on all ISystem lifecycle methods in Unity DOTS?

Yes, you can use BurstCompile on all ISystem lifecycle methods in Unity DOTS. Mark OnCreate, OnUpdate, and OnDestroy with BurstCompile to compile the hot paths and ensure native code generation for unmanaged ECS simulation systems.

What are the limitations of Burst-compiled ISystem structs in Unity ECS?

Burst-compiled ISystem structs in Unity ECS are limited to unmanaged, managed-free components and cannot use managed Unity APIs. Every field, call, and ECS query must remain Burst-safe, restricting use to native simulation logic without managed type access.