wave5-post-transform-matrix-non-uniform-scale

Apply non-uniform scale to DOTS entities via PostTransformMatrix in IJobChunk pipelines.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Non-uniform scaling in Unity DOTS can be silently lost or incorrectly applied when your transform math only accounts for standard TRS (translation/rotation/scale), leading to wrong LocalToWorld results and visually incorrect entities.

Core Features & Use Cases

  • PostTransformMatrix-based non-uniform scaling: Apply a per-entity PostTransformMatrix multiplied into LocalToWorld after the standard TRS computation to preserve non-uniform scale.
  • Baker/runtime-ready pattern: Add PostTransformMatrix during authoring via a Baker and then correctly combine it in a custom IJobChunk that writes LocalToWorld.
  • Hot-path correctness and performance: Use chunk.Has() once per chunk (not per entity) and ensure the correct multiplication order math.mul(trs, postTransform).

Quick Start

Apply PostTransformMatrix in your custom LocalToWorld writing system by multiplying standardTRS with postTransformMatrix.Value using the correct multiplication order and guarding absent components with a chunk-level Has() check.

Frequently Asked Questions about wave5-post-transform-matrix-non-uniform-scale

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

FAQPage Schema
How do I apply non-uniform scale to entities in Unity DOTS?

To apply non-uniform scale in Unity DOTS, compute LocalToWorld from standard TRS and multiply it by a PostTransformMatrix using math.mul(trs, postTransform) to preserve the scaling.

Why does non-uniform scaling get lost in my Unity DOTS transform system?

Non-uniform scaling gets lost when transform math only accounts for standard TRS. You must multiply a PostTransformMatrix into the LocalToWorld matrix after standard TRS computation to prevent incorrect results.

What is the correct multiplication order for PostTransformMatrix in IJobChunk?

The correct multiplication order for PostTransformMatrix in IJobChunk is math.mul(trs, postTransform), ensuring the PostTransformMatrix is applied after the standard TRS computation to the LocalToWorld matrix.

How do I check for PostTransformMatrix efficiently in a DOTS chunk job?

Check for PostTransformMatrix efficiently in a DOTS chunk job using chunk.Has() once per chunk rather than per entity, ensuring hot-path correctness and performance during native array access.

Can I use PostTransformMatrix for non-uniform scaling during Baker authoring?

Yes, you can add a PostTransformMatrix during authoring via a Baker and then correctly combine it in a custom IJobChunk that writes LocalToWorld to achieve per-entity non-uniform scaling.

What is the best way to handle per-entity scaling in Unity DOTS without losing performance?

The best way to handle per-entity scaling in Unity DOTS is using a custom IJobChunk with chunk-level Has() checks and math.mul(trs, postTransform) to apply PostTransformMatrix-based non-uniform scaling efficiently.