Unity URP Shadows Not Rendering - Lighting Fix

Problem: In Unity's Universal Render Pipeline (URP), shadows from directional lights, spot lights, or point lights do not appear. The scene renders but objects have no shadows beneath them, or shadows are missing in Game view or in builds. You may also see "shadows not casting" or "URP no shadows" in searches.

Root Cause: URP shadows can fail to render for several reasons: shadow distance is too short, the URP Renderer asset has shadows disabled, the Light component has Cast Shadows set to Off, mesh Renderer has Cast Shadows disabled, or quality/asset settings are overriding shadow rendering. Most cases are configuration issues in the URP asset, lights, or renderers.

This guide walks you through the most common fixes so you can get URP shadows rendering again.

Quick Fix Checklist

Before diving into steps, verify:

  1. Your project uses URP (Universal Render Pipeline) and the correct URP Renderer is assigned in your pipeline asset.
  2. The Light (Directional, Spot, or Point) has Cast Shadows set to On (Soft or Hard).
  3. Shadow distance in the URP Asset or Quality settings is greater than the distance from the camera to your objects.
  4. Mesh Renderers (or Sprite Renderers in 2D URP) that should cast shadows have Cast Shadows enabled.
  5. You are not in a context where shadows are stripped (e.g. a shader variant that disables shadows, or a build with shadow stripping).

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

Solution 1: Enable Cast Shadows on the Light

Symptom: Light illuminates the scene but no shadows are visible.

Step 1: Select the Light GameObject (Directional Light, Spot Light, or Point Light).

Step 2: In the Inspector, find the Rendering section (or Shadow section depending on Unity version). Set Cast Shadows to Soft Shadows or Hard Shadows. If it is set to Off, shadows will not render.

Step 3: For Directional lights, ensure Shadow Resolution is not 0 and Cascade Count is at least 1 (e.g. one or four cascades). Lower resolutions can make shadows very blurry but they should still appear.

Verification: Enter Play mode and look at the Game view. Shadows should appear under and around objects. If they still do not, continue to Solution 2.

Pro tip: In URP, only one directional light can cast shadows by default. If you use multiple directional lights, only the main one will cast shadows unless you change the URP Renderer or use additional passes.

Solution 2: Increase Shadow Distance (URP Asset)

Symptom: Shadows appear close to the camera but disappear farther away, or no shadows at all.

Step 1: Locate your URP Asset (Project window: often in Settings or Resources; the asset type is "Universal Render Pipeline Asset").

Step 2: Select the URP Asset. In the Inspector, find Lighting (or Quality / Rendering). Look for Shadow Distance (or Max Shadow Distance). This value is the maximum distance from the camera at which shadows are drawn. If your camera is 500 units away but Shadow Distance is 50, shadows beyond 50 units will not render.

Step 3: Increase Shadow Distance to a value larger than the distance from your camera to the farthest object that should cast a shadow (e.g. 500 or 1000 for large scenes). Click Apply if the button is present.

Step 4: If you use Quality Settings to override URP settings, check Edit > Project Settings > Quality. Select the active quality level and ensure the correct URP Asset is assigned. Some quality levels reduce shadow distance for performance; raise it for the quality level you are testing.

Verification: Move the camera so that objects are within the new shadow distance. Shadows should now appear at the expected range.

Solution 3: Enable Shadows on the URP Renderer

Symptom: Lights have Cast Shadows on, but still no shadows in the scene.

Step 1: Open your URP Asset and find Renderer List (or Renderer in older URP versions). Ensure a URP Renderer (e.g. Forward Renderer) is in the list and assigned.

Step 2: Select that Renderer asset (e.g. "Universal Renderer" or "URP Renderer"). In the Inspector, find Shadows. Ensure Cast Shadows is enabled (checked). Some URP Renderer assets have a "Shadows" section where you can disable shadow casting globally; this must be on.

Step 3: In the same Renderer asset, check Rendering or Lighting for any option that disables shadows (e.g. "Main Light Cast Shadows"). Enable it if it exists and was off.

Verification: Enter Play mode. If the Renderer had shadows disabled, enabling them should restore shadow rendering.

Solution 4: Enable Cast Shadows on Mesh Renderers

Symptom: The light casts shadows, but specific objects do not cast shadows (e.g. characters or props).

Step 1: Select the GameObject that should cast a shadow (e.g. a character or prop with a Mesh Renderer or Skinned Mesh Renderer).

Step 2: In the Inspector, find the Renderer component. Locate Cast Shadows. Set it to On (or Shadows Only / Two Sided if you need those). If it is set to Off, that object will not cast shadows.

Step 3: For terrain or large meshes, ensure the same: Cast Shadows must be On. For Receive Shadows, leave On if you want the object to show shadows from other objects.

Verification: Only the objects you changed should start casting shadows. Other objects were likely already correct.

Solution 5: Camera and Far Clip Plane

Symptom: Shadows disappear at a certain distance or in builds but not in Editor.

Step 1: Select the Main Camera (or the camera that renders the game view). Check Far Clip Plane (or Far). URP typically culls shadows based on the camera frustum and shadow distance. If Far Clip Plane is very small, distant geometry (and their shadows) may be culled.

Step 2: Set Far Clip Plane to a value that covers your playable area (e.g. 1000 or 3000). Do not set it excessively high or you may impact performance and precision.

Verification: Shadows at medium and far distance should remain visible as long as they are within shadow distance and the camera far plane.

Alternative Fixes and Edge Cases

  • 2D URP: If you use URP for 2D, shadow options may differ. Ensure your 2D Light has Cast Shadows on and that the 2D Renderer supports shadows. Some 2D setups use different shadow paths.
  • Shader stripping: If shadows work in Editor but not in build, Edit > Project Settings > Graphics (or URP Asset) may have Shader Stripping set to strip shadow variants. Try disabling aggressive stripping for development builds, or ensure "Shadows" are not stripped.
  • Multiple cameras: If you use multiple cameras, the main camera's position and far plane affect shadow culling. Ensure the camera that renders the main view has correct settings.
  • Custom shaders: If only objects with a custom shader do not cast or receive shadows, the shader may not have a shadow caster pass. Use URP's Lit shader as reference or add a ShadowCaster pass.

Prevention Tips

  1. When creating new lights in URP, set Cast Shadows to Soft Shadows or Hard Shadows by default so new scenes are not missing shadows.
  2. In your URP Asset, set a Shadow Distance that matches your game's scale (e.g. 200 for small levels, 2000 for open worlds) and tune per platform in Quality settings.
  3. When adding new props or characters, ensure Cast Shadows is On on the Renderer unless you intentionally want them to not cast shadows (e.g. particles).
  4. Before release, test a development build and a release build; shadow stripping can differ between them.

Related Problems and Links

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