What problem does it solve?
Prevents inefficient or invalid ECS component designs by ensuring per-entity data is stored as blittable, unmanaged value types that Burst/ECS can lay out contiguously and access cache-coherently.
Core Features & Use Cases
- Blittable-only value component guidance: Uses a public struct implementing IComponentData with strictly blittable fields (numbers, float3, bool, enums, and nested blittable structs).
- Managed-field avoidance: Directs how to avoid strings, UnityEngine.Object, List<T>, and other managed references that break Burst compatibility and undermine chunk layout guarantees.
- Correct read/write semantics for jobs: Recommends using read-only access patterns (e.g., in, RefRO<T>) to avoid unnecessary job dependency serialization and improve parallelism.
- Performance heuristics: Highlights how struct size impacts entities-per-chunk and cache miss rate, and recommends splitting unrelated concerns into separate components.
Quick Start
Use an unmanaged public struct implementing IComponentData with only blittable fields, and access read-only data via RefRO (or in) while keeping write data on RefRW in your queries.