icomponentdata-value-component

Ensure Unity DOTS IComponentData structs use blittable unmanaged value types.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

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.

Frequently Asked Questions about icomponentdata-value-component

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

FAQPage Schema
How do I design cache-friendly ECS components in Unity DOTS?▼

Cache-friendly ECS components require unmanaged public structs implementing IComponentData with strictly blittable fields, enabling ECS to pack per-entity state contiguously for cache-coherent memory access.

What makes an IComponentData struct Burst-compatible?▼

An IComponentData struct is Burst-compatible when it contains only blittable fields like numbers and float3, completely avoiding managed references such as strings, UnityEngine.Object, or List<T> that break chunk layout guarantees.

Why does my Unity DOTS job have unnecessary dependency serialization?▼

Unnecessary job dependency serialization often occurs when using write access patterns instead of read-only semantics like RefRO, which prevents false write dependencies and improves query parallelism.

When should I split concerns into separate ECS components?▼

Split concerns into separate ECS components when struct size negatively impacts entities-per-chunk and cache miss rates, ensuring optimal performance for large-scale entity simulations.

Can I use managed references in Unity ECS chunk data?▼

Managed references cannot be used in Unity ECS chunk data because they undermine chunk layout guarantees and break Burst compatibility, requiring strict unmanaged blittable value types instead.