Quick answer: Pixel Perfect snaps to integer pixel coordinates and works only for axis-aligned UI. Rotated elements snap to integer rotated positions producing distortion. Disable Pixel Perfect on canvases that animate rotation.
Here is how to fix Unity UI rotated elements (spinners, animated badges, gauge needles) that look crisp at 0 degrees but blur or jaggies when rotated. Pixel Perfect on the Canvas is great for static, axis-aligned UI but fights any rotation.
The Symptom
An icon at 0 rotation is sharp. Animating its rotation causes visible distortion: edges step-jaggy, text inside rotates with broken anti-aliasing, the whole element wobbles in pixel space.
What Causes This
Pixel Perfect snapping. Snaps each vertex to integer pixels. Rotated rectangle vertices snap to nearest pixels, but the rotation makes adjacent vertices snap inconsistently — the shape distorts.
Low source texture resolution. Without enough source detail, rotation reveals aliasing.
Bilinear vs Point filtering. Point filtering looks crisp axis-aligned but jagged rotated; bilinear is the right pick for rotated UI.
The Fix
Step 1: Disable Pixel Perfect on rotating canvases. If the entire canvas needs to support rotation, uncheck Pixel Perfect on the Canvas component. UI is no longer snapped to integer pixels but rotates smoothly.
Step 2: Or split into static and rotating canvases. Static UI (HUD bar, score) on one canvas with Pixel Perfect on. Rotating UI (spinner, indicator) on another canvas with Pixel Perfect off. Both render together; each gets its appropriate snapping.
Step 3: Use higher-resolution source textures. Author at 2x or 4x intended display size. Bilinear sampling produces smooth edges when rotated.
Step 4: Set sprite filter to Bilinear. In the Texture import settings, set Filter Mode to Bilinear. Point looks crisp at 1:1 but jagged when rotated.
Step 5: Anti-aliased UI shaders. For shape-heavy UI (rounded buttons, drop shadows), use SDF-based shaders that anti-alias regardless of rotation. TextMeshPro labels are SDF; consider Sprite Shape SDF for graphic elements.
When To Keep Pixel Perfect
For pixel-art games where the entire UI snaps to a grid and never rotates, Pixel Perfect on Constant Pixel Size canvas is the right choice. Reserve disabling for canvases that genuinely need rotation.
“Pixel Perfect for axis-aligned. Disable for rotating. Two canvases if you need both behaviors in one scene.”
Related Issues
For UI Mask issues, see UI Mask Children. For TMP baseline shift, see TMP Baseline.
Pixel Perfect off for rotating UI. Bilinear filter. Higher source res. Smooth rotation.