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.