unity-2d-lighting

v2026.09.24

Unity 2D lighting — URP 2D Renderer, Light 2D types (Point/Freeform/Sprite/ Parametric/Global), Shadow Casters 2D, Sprite Mask, Renderer2DData, normal mapped sprites, blend styles. USE WHEN: setting up the URP 2D Renderer, lighting a 2D scene, adding 2D shadows, using Sprite Mask for stencil-like effects, normal-mapped sprites. DO NOT USE FOR: 3D lighting (use `unity-rendering`); UI lighting concepts (UI doesn't normally use Light 2D); 2D animation (use `unity-2d-animation`).

GitHub
Install command
npx skhub add claude-dev-suite/unity-2d-lighting
Markdown
SKILL.md

Unity 2D Lighting

URP 2D Renderer setup

1. Project Settings > Graphics → URP Pipeline asset assigned.
2. Create Renderer2DData asset → assign to URP asset's Renderer List.
3. Camera component → Render Type = Base; Renderer = the 2D renderer.

Without the 2D Renderer assigned, Light 2D components do nothing.

Light 2D types

TypeWhat
Global LightAmbient color + intensity for the entire scene (replaces clear-color lighting)
FreeformPolygon-shaped light (room interior, lava pool)
PointCircular falloff (torch, glow)
SpriteLight shape derived from a sprite (any artist-defined falloff)
ParametricN-sided polygon (legacy; prefer Freeform)

Common setup: one Global Light per scene (low intensity for darkness) + per-object Lights to highlight key elements.

Blend Styles

Renderer2DData defines up to 4 blend styles. Each has:

SettingEffect
Blend Mode (Multiply / Additive)Multiply darkens unlit areas (standard); Additive brightens
Render Texture Scale0.5 = half-res light buffer (perf win, slight blur)
Use Depth/StencilRequired for Shadow Casters
Mask ChannelMaps Sprite Renderer's Mask Interaction to specific channels

Default blend style 0 ("Default") is enough for most projects. Add more only if you need separate light groups (e.g. "Underwater" with blue cast).

Shadow Casters 2D

On a sprite that should cast shadows:
  Add ShadowCaster2D component → Self Shadows = OFF (default), Casts Shadows = ON.
  Mesh: Use Renderer Silhouette (auto from sprite) or Custom Shape.

On the Light 2D:
  Shadow Intensity > 0 → enables shadows from casters.

Composite Shadow Casters 2D group multiple casters with same parent transform — important for moving multi-part characters.

Sprite Mask

Stencil-like masking — show a sprite only where another sprite is visible.

Sprite Mask GameObject (with SpriteMask component) defines the mask shape.
Sprite Renderer → Mask Interaction =
  None                          (default)
  Visible Inside Mask           (clipped to mask shape)
  Visible Outside Mask          (cut hole)

Use cases: 2D fog of war reveal, light cone visibility, transition wipes.

Normal-mapped sprites

For dynamic 2D lighting that respects sprite geometry:

  1. Author normal map (Sprite Lamp, NormalPainter, or Aseprite normal export).
  2. Set the secondary texture on the sprite: Sprite Editor → Secondary Textures → name _NormalMap, drag normal texture.
  3. Material → use the Sprite-Lit-Default shader (URP); plug _NormalMap if needed.
  4. Light 2D → Use Normal Map = ON.

Sprites pop with bumpy 3D-looking lighting from 2D Lights. Heavy on fillrate — use sparingly.

Anti-patterns

Anti-patternFix
Adding Light 2D without 2D RendererConfigure Renderer2DData asset on the URP renderer list
Many overlapping point lights with Shadow Intensity 1Lower res for shadow buffer; combine via blend styles
Self Shadows ON by defaultOFF unless deliberately needed (causes z-fighting on sprites)
Sprite Mask without Mask Interaction set on targetSet Mask Interaction on every sprite that should be clipped
Normal maps on every spriteOnly on hero/lit-emphasis sprites — fillrate cost

Production checklist

  • Renderer2DData assigned + camera using 2D renderer
  • Global Light per scene set deliberately (not default)
  • Shadow Casters 2D placed on geometry that should cast
  • Composite Shadow Caster on multi-part characters
  • Blend styles configured if multiple light groups
  • Sprite Masks tested in build (not just editor)
  • Normal mapping budgeted (fillrate measured)
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/gamedev/unity-2d-lighting

Default branch

main

Latest commit

9496306

Tree SHA

fe4e2f1