I was pleasantly surprised with how quick and easy it was to upgrade a standard Unity project to the Universal Render Pipeline (URP). I don’t fully understand the in’s and out’s of render pipelines, but from what I know the URP can help us create optimised graphics for a range of platforms, including mobile (in contrast to the high-fidelity graphics the High Definition Render Pipeline facilitates). To upgrade your current Unity Project to it:
1. Head over to the Package Manager window under Window > Package Manager. Once it’s loaded, search for ‘Universal RP’ and click the Install button. Click through to accept any the adjustments it wants to make, and when it’s finished you should just see a grayed out ‘Up to date’ tab in Package Manager (and Universal RP should be ticked in the left pane).
2. Since we’re upgrading a pre-existing project rather than creating one with URP from the outset, we’ll need to upgrade the materials in our project to use compatible URP shaders. If the shaders aren’t compatible, you’ll most likely see a lot of garish pink materials in your project. We can address most of this in bulk by going to Edit > Render Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials. Selecting this should automatically upgrade most, if not all, of the materials in your project to URP ones.
3. In the event that there are still some materials which haven’t been successfully upgraded, we can try one of two things: we can either select the material itself in the Project view and use select the ‘Upgrade Selected Materials to UniversalRP Materials’, or we can just change the shader on the material ourselves. With the material selected, select the Shader dropdown, and choose one of the shaders under the Universal Render Pipeline sub-menu.
I’ve had some slightly funky results with some of the options here, so ended up using Baked Lit myself (my player avatar’s hair was turning white instead of black due to some of the shaders).
With this all done, you should be set up and ready to go with using the Universal Render Pipeline in your Unity project 😉