wave5-write-group-custom-transform

Override LocalToWorld transform writing for selected ECS entities via a custom system.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The Skill bypasses Unity’s standard transform write behavior for selected entities so you can compute LocalToWorld with your own ECS logic, without Unity overwriting your results each frame.

Core Features & Use Cases

  • Write-group override for LocalToWorld: Registers a custom component in the LocalToWorld write group so only your pipeline computes LocalToWorld for those entities.
  • ManualOverride baker workflow: Uses TransformUsageFlags.ManualOverride to prevent the standard transform system from treating the entity as fully owned by Unity.
  • TransformSystemGroup-safe scheduling: Places the custom system in TransformSystemGroup and updates after ParentSystem to keep parent hierarchy data consistent.

Use cases include non-standard transform representations (2D/procedural/billboard/skeletal-like data), specialized spatial math, and developer-owned transform pipelines for subsets of entities.

Quick Start

Tell your AI to generate the three-part setup: add a [WriteGroup(typeof(LocalToWorld))] component, ensure the authoring/baker uses TransformUsageFlags.ManualOverride, and implement an ISystem that runs after ParentSystem to write LocalToWorld for entities with the custom component.

Frequently Asked Questions about wave5-write-group-custom-transform

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

FAQPage Schema
How do I override LocalToWorld transforms in Unity ECS without Unity overwriting the values?

To override LocalToWorld transforms in Unity ECS, you register a custom component using `[WriteGroup(typeof(LocalToWorld))]` and bake entities with `TransformUsageFlags.ManualOverride` so your own system computes the matrix without Unity's standard pipeline interfering.

Why does my custom ECS transform system produce stale or corrupted LocalToWorld results?

Custom ECS transform systems produce stale LocalToWorld results when scheduled before parent hierarchy updates. You must place your custom system inside the `TransformSystemGroup` and schedule it to update after `ParentSystem` to ensure hierarchy data is consistent.

When do I need ManualOverride for Unity ECS transform baking?

You need `TransformUsageFlags.ManualOverride` during baking when applying non-standard math to subsets of ECS entities. It prevents the standard transform system from fully owning the entity, allowing a developer-authored system to compute LocalToWorld for specialized spatial representations.

Can I compute LocalToWorld for only a subset of ECS entities while keeping standard transforms for the rest?

Yes, you can compute LocalToWorld for a subset of ECS entities by applying the write-group component and ManualOverride baking only to those specific entities, leaving the rest of the hierarchy to Unity's standard transform pipeline.

What's the best way to implement 2D or billboard transforms in Unity DOTS?

The best way to implement 2D or billboard transforms in Unity DOTS is bypassing the standard LocalToWorld write behavior via a write-group override, allowing a developer-owned system to apply specialized spatial math for non-standard transform representations.

Does replacing the ECS transform pipeline break parent hierarchy ordering?

Replacing the ECS transform pipeline does not break parent hierarchy ordering if your custom system is scheduled correctly within the `TransformSystemGroup` after `ParentSystem`, preserving the necessary parent hierarchy data consistency for yourManualOverride entities.