So, your scene in Unity is looking pink. What happened? Maybe you imported an asset from the Unity Asset Store, or maybe you changed a setting in your game. Either way, this is a fixable problem.
Why is my Unity Scene Pink?
Pink materials happen because the materials you're using do not match the render pipeline of your game. To fix your materials, we first have to discover which pipeline you're using, and which pipeline you should use.
There are 3 main render pipelines in Unity:
- Built-in Render Pipeline
- High Definition Render Pipeline (HDRP)
- Universal Render Pipeline (URP)
Built-in Render Pipeline
This has been the standard and default render pipeline for Unity users for years, and is called the built-in pipeline because...well, it's built-in. If you're selecting a 2D or 3D core game project in Unity, this will be the default (updated 2023). Most of the assets on the Unity Asset Store are going to support the built-in pipeline.
High Definition Render Pipeline (HDRP)
This pipeline was created so that game developers could create awesome, high-definition graphics for powerful machines that can handle the graphics (think PCs and consoles). If you're solely looking to publish your game to PC and console, this is a great option. The only downside here is that it's a little more performance-intensive, and makes it very difficult to publish to mobile and switch.
Universal Render Pipeline (URP)
Previously known as the "Light Pipeline", URP is the best of HDRP and built-in. With URP, you can create games with high-quality graphics without the performance sacrifice. Meaning, you can seamlessly publish your games to PC, consoles, mobile, and the Nintendo Switch.
But, there's a catch.
While URP will eventually be the standard for game devs, the market hasn't caught up to the technology. Most of the existing assets do not support URP yet, making it very difficult to justify making the switch.
Step 1: Determine which pipeline you're using
Navigate to Edit > Project Settings > Graphics
Here are what each of the render pipelines look like in context:
Step 2: Changing out the Materials
If you're using HDRP in your project:
Navigate to Edit > Rendering > Materials > Convert to (whichever option makes sense for you)
If you're using URP in your project:
Edit > Rendering > Materials > Convert Selected Materials to URP
If you're using the Built-in Render pipeline:
This one is a little more labor-intensive. You'll, unfortunately, have to do this one material at a time, so here are the steps as follows:
- Select a material
- Change the shader back to the standard shader
- Map the textures to the material by dragging it on the "albedo" slot on the material