HOW-TO:  Convert PolygonR's Sci Fi Top Down Prototype To URP with Unity 2019.4 LTS
🎮

HOW-TO: Convert PolygonR's Sci Fi Top Down Prototype To URP with Unity 2019.4 LTS

Table of Contents

This image to the right is the problem we are going to solve here.

Full disclaimer, this is NOT PolygonR's fault, as he built this asset back before the whole Scriptable Render Pipelines became a thing. Unity really should have made the transition for all materials of the old render pipeline to the the new URP and HDRP automagical, behind the scenes, and easily reversible, but they did not.

Thankfully, PolygonR (and many other asset developers) make tools to make this process a little less painful.

image
⚠️

I followed these exact steps to convert a FRESH import of the Sci Fi Top Down Game Template Version 2.11 (last updated Jul 7, 2020) with Unity 2019.4.14f1 on a Windows 10 machine. If you cannot follow this howto , please reach out with your asset and Unity versions and I will do my best to update this how-to.

Step Zero: Start a NEW project with URP

This is actually harder to do because of Unity's flip flop on naming and overly complex use of terms that you don't really need to be familiar with to want to build a game.

image

Short version is that URP is the same as LWRP and if you are an indie or just getting started, it is what you want.

  • URP is the "universal render pipeline" meant to target all platforms that Unity can compile to (including mobile) and is probably your best bet unless you are ABSOLUTELY certain you want to do some super high end graphics voodoo which would require the extra work involved with using the HDRP (high definition render pipeline)
  • LWRP is the old name of URP

You might also hear about the Built In Renderer — that is the original 3d rendering engine and what was used previous to URP and HDRP being introduced. You can possibly go with that, but I don't recommend it because:

  • there is no easy way to take any URP or HDRP assets and convert them back to built in renderer
  • there are many other assets which do NOT support the built in renderer at all, so as your game grows, you won't be able to import them into your game
  • it is a pain in the butt to convert from built in renderer to URP or HDRP later.

You might also hear the term SRP thrown around:

  • SRP is the Scriptable Render Pipeline
  • that is the "Parent" term for both URP/LWRP, and the HDRP
  • It just means that you can "program" the rendering engine in Unity now (if you so choose), so you can do some really cool things literally per pixel of your game.
  • But again, if you are just getting started, you probably don't need to be thinking about that because URP can do so much already, and you should be focused on making your game and not hacking the rendering pipeline.

Step One: Find all the Materials that need to be upgraded

You can do this relatively easily by going to your project view and and click in on the box which looks like a tiny square, triangle, and circle (directly to the right of the search box) and selecting "Materials" as the thing you want to view in your project.

All of the pink ones are the ones that need to be "upgraded" to work with URP.

image

Step Two: Drag and Drop all the pink materials into PolygonR's "Convert To Pipeline" tool

⚠️

Be very careful to select URP as your target pipeline. It defaults to Standard and will really confuse you why everything stays pink if you don't switch it to URP.

To make things easy, you can ctrl-click on any number of materials in the project "Materials" view from Step One above and then drag and drop them onto the TITLE of "Materials_to_Convert" (not onto the empty size field or below it, DIRECTLY onto the TEXT of "Materials_to_Convert") and the window will automagically update the size of the array and assign all the target elements to the assets you dropped onto it.

image
There are probably many more than 5 assets that need to be upgraded in your project, the above is just an example.

Finally, just click Convert and let it do the hard work.

This is what it should look like when you have successfully converted all the materials

image

💡

If your material doesn't update and you know you ran it through the converter with the proper target pipeline, just single click on the material in the project window to force Unity to re-render the asset. I've seen it not update the thumbnail until after I clicked directly on the material in a few cases.

Step Three: Set your Render targets to LightweightRenderPipelineAsset

Make sure that your project's graphics settings and quality "rendering" target are both pointing at the LightweightRenderPipelineAsset which comes with the Sci Fi Top Down Asset.

Check them by going to Edit, then Project Settings:

image

Then click on Graphics and hit the "selector circle" for your "Scriptable Render Pipeline Settings":

image

You can see that this "asset" comes from Assets/SciFi_Space_Soldier_Complete/ResourceFiles/ .... which is where the Sci Fi Top Down Prototype stores its assets by default.

image

Then the last step in the project settings is to set all of your quality settings (Fastest up to Fantastic) to use the same LightweightRenderPipelineAsset via the same process:

image

Step Four: Get rid of that big HDRP warning

This is the simplest step — if you've already closed that window, open it back up by going to Window, Render Pipeline, and then HD Render Pipeline Wizard.

image

Then scroll down to the very bottom and uncheck "Show on Start":

image

Step Five: Run your game in Play Mode and Verify

I recommend starting from the 0_DemoScene_MainMenu as it does the full game loop.

You should notice within the first two or three screens if everything is running as expected and textures are all rendering properly.

image
💡

Note that I have seen textures "pop" from being pink immediately after I hit play in the editor, but they eventually all rendered correctly and the popping doesn't happen on future runs, nor does it happen in my builds, so you can probably ignore that.

This is what the opening scene should look like:

image

Feel free to @ mention me (BetaMark#5340) in the PolygonR discord if you are following this list and something doesn't work as expected.

I hope that helps, good luck, and have fun!