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.