Unity 2D Lighting Not Working - 2D Renderer Pipeline Fix

Problem: In Unity 2D projects, lights do not appear or the scene stays fully bright or fully dark. You added Light 2D (or 2D lights) but nothing changes in the Game view. You may see a completely flat look with no shadows or highlights, or the 2D Renderer / URP 2D pipeline seems to ignore your lights. Common searches include "Unity 2D lighting not working," "2D lights not showing," and "URP 2D no shadows."

Root Cause: Unity 2D lighting requires the 2D Renderer (or URP 2D Renderer) to be in use and correctly assigned. Lights only affect sprites and layers that are set up for 2D lighting (correct sorting layers, blend styles, and optional normal maps). If the project uses the built-in 2D renderer or URP without a 2D Renderer asset, or if the camera or renderer is misconfigured, 2D lights will not render. Other causes include Global Light 2D set to 0 intensity, lights on the wrong layers, or sprites not set to receive light.

This guide walks you through the most common fixes so you can get 2D lighting and shadows working again.

Quick Fix Checklist

Before diving into steps, verify:

  1. Your project uses a 2D Renderer (built-in or URP 2D Renderer) and it is assigned to the Renderer used by your camera (e.g. in URP Asset or Graphics settings).
  2. You have at least one Light 2D (e.g. Freeform, Point, or Global) in the scene and it is enabled.
  3. For Global Light 2D, Intensity is greater than 0 (e.g. 1 for normal daylight).
  4. Your sprites or Sprite Renderers are on Sorting Layers that the 2D lights affect, and Material / Blend Style is set so they can be lit (e.g. not "Additive" only if you expect shadows).
  5. The Camera is using the pipeline that has the 2D Renderer (e.g. URP with a 2D Renderer in the list).

If any of these are wrong, fix them first and retest.

Solution 1: Use and Assign the 2D Renderer (URP)

Symptom: You use URP but 2D lights have no effect; the scene looks flat.

Step 1: Ensure your project has a 2D Renderer asset. In the Project window, look for a URP Renderer of type 2D Renderer (e.g. "Universal Renderer 2D" or "URP 2D Renderer"). If you do not have one, create it: Right-click in Project > Create > Rendering > URP Renderer 2D (or URP > 2D Renderer depending on Unity version).

Step 2: Open your URP Asset (Universal Render Pipeline Asset). In the Inspector, find Renderer List (or Renderer). Add your 2D Renderer to the list. For a 2D-only game, you can have only the 2D Renderer; for a mixed 2D/3D project, ensure the 2D Renderer is in the list and that the correct renderer is used for the camera that draws your 2D scene.

Step 3: In Edit > Project Settings > Graphics, ensure the Scriptable Render Pipeline Settings field points to your URP Asset. In Quality, the active quality level should also use that URP Asset.

Verification: Enter Play mode. Add a Light 2D (e.g. GameObject > Light > 2D > Freeform Light 2D or Point Light 2D). The scene should react to the light (brightness or shadows). If it still does not, continue to Solution 2.

Pro tip: If you use the built-in pipeline instead of URP, 2D lighting uses the built-in 2D Renderer. Ensure Edit > Project Settings > Graphics does not assign a URP Asset if you intend to use built-in 2D; otherwise the wrong pipeline may be active.

Solution 2: Enable and Configure Light 2D

Symptom: You have a Light 2D in the scene but the scene does not get darker or brighter.

Step 1: Select the Light 2D GameObject. In the Inspector, confirm the Light 2D component is enabled (checkbox on). Disabled lights do not contribute.

Step 2: For Global Light 2D: Set Intensity to a non-zero value (e.g. 1 for default daylight). If Intensity is 0, the global light contributes nothing. For Point Light 2D or Freeform Light 2D, set Intensity and Inner/Outer Radius (or shape) so the light actually covers your sprites.

Step 3: Check Blend Style (e.g. Additive, Multiply). For a dark scene with lit areas, you usually want a mix: e.g. Global Light 2D with positive intensity for ambient, and Point/Freeform lights with Additive or Multiply so they brighten or darken the right areas. If all lights are Multiply with low intensity, the scene can go nearly black.

Verification: Tweak Intensity and move the light in the Scene view. The Game view should update. If not, the renderer or sprite setup may be wrong (Solutions 1 and 3).

Solution 3: Sprites and Layers Receiving Light

Symptom: Lights work on some objects but not on others, or only the background is lit.

Step 1: Select a Sprite (or GameObject with Sprite Renderer). In the Inspector, check Sorting Layer and Order in Layer. 2D lights affect sprites based on layer and the 2D Renderer's light layers. Ensure the sprite is on a layer that your lights are set to affect (in the Light 2D component, Target Layers or similar mask).

Step 2: For Sprite Renderer, check Material. For 2D lighting you typically use a material that supports lighting (e.g. Sprites-Default or a URP 2D Lit sprite material). If the material is an unlit or custom shader that ignores lights, the sprite will not react. Swap to a 2D Lit material and retest.

Step 3: If you use Normal Map for better lighting (optional), ensure the sprite's material has a normal map assigned and the 2D Renderer supports normals. For a quick test, you can skip normals and only verify that a default lit sprite reacts to Light 2D.

Verification: Put a Point Light 2D next to one sprite and move it. The sprite should brighten or cast/receive shadow depending on blend style and renderer settings. If only some sprites react, their layer or material is the difference.

Solution 4: Global Light 2D and Ambient

Symptom: The whole scene is too dark or too bright and you cannot balance it.

Step 1: Add or select Global Light 2D (GameObject > Light > 2D > Global Light 2D). This acts like ambient light for the whole scene. Set Intensity to around 1 for a neutral daylight look. Below 1 darkens the scene; above 1 brightens it.

Step 2: If you use Point Light 2D or Freeform Light 2D with Additive blend, they add light on top of the global light. If the scene is still too dark, increase Global Light 2D Intensity or add more fill lights. If the scene is washed out, lower Global Light 2D or reduce individual light intensities.

Step 3: In Edit > Project Settings > Graphics (or URP Asset), check for any Default 2D Light or Ambient override that might force a flat look. Ensure 2D lighting is not disabled at the project level.

Verification: Adjust Global Light 2D Intensity and see the whole scene respond. Then add a Point Light 2D and confirm local lighting appears on top.

Solution 5: Camera and Renderer Assignment

Symptom: 2D lighting works in one scene but not another, or only in Editor and not in build.

Step 1: Ensure the Camera that renders your 2D view is using the correct Render Path. In URP, the camera uses the renderer from the URP Asset's Renderer List. If you have multiple renderers (e.g. 3D and 2D), the camera may be using the 3D renderer. For a 2D game, use a single 2D Renderer or ensure the active renderer for that camera is the 2D one.

Step 2: In Build Settings, ensure the scene is included. If the scene is not in the build and is loaded additively, the same URP Asset and 2D Renderer must be in use. Check Edit > Project Settings > Graphics and Quality for the build; they should match the setup that works in the Editor.

Step 3: If 2D lighting works in Editor but not in build, check URP Asset > Shader Stripping or Graphics > Shader Stripping. Aggressive stripping can remove 2D light shader variants. Try a development build with stripping relaxed to confirm; then tighten for release.

Verification: Build and run. 2D lights should behave the same as in Editor. If not, compare Project Settings and URP Asset between Editor and build.

Alternative Fixes and Edge Cases

  • Mixed 2D and 3D: If you render 2D and 3D in the same scene, use a single URP Asset with both a 3D and 2D Renderer if supported, or render 2D and 3D with separate cameras and combine. Ensure the 2D camera uses the 2D Renderer.
  • Sprite Light Kit or third-party 2D lighting: If you use an asset that replaces Unity's built-in 2D lights, follow that asset's documentation; the pipeline may differ.
  • Light 2D not in package: If Light 2D does not appear under GameObject > Light > 2D, install the 2D and Universal RP packages from the Package Manager. Light 2D is part of the 2D rendering package in URP.

Prevention Tips

  1. When starting a new 2D URP project, add a URP 2D Renderer to the URP Asset and assign it so 2D lighting works from the start.
  2. Use Global Light 2D with Intensity 1 as a base and add Point or Freeform lights for mood; this avoids a fully black or flat scene.
  3. Keep Sprite Renderer materials set to 2D Lit (or equivalent) so new sprites automatically receive light unless you need an unlit effect.
  4. Before release, test a development and a release build to catch shader stripping or quality setting differences.

Related Problems and Links

Bookmark this fix for quick reference when working with Unity 2D lighting. If this solved your issue, share it with other developers who hit the same problem.