To make a material in Unity, go to Assets > Create > Material, select the new material, and check that its Shader is Universal Render Pipeline/Lit. Assign your color texture to Base Map and your normal map to Normal Map in the Inspector. Then select your object and put the material in the Materials list of its Mesh Renderer.
That covers the basics. A full PBR texture set takes a little more work in Unity, mostly because URP uses smoothness instead of roughness. The steps below cover texture import settings, where each map goes, tiling, and pink materials. We checked them against the Unity 6.6 manual. Labels can differ slightly in other versions.
What you need before you start
You need a project that uses the Universal Render Pipeline (URP), an object in your scene, and a PBR texture set. A typical set has base color, normal, roughness, and metallic maps, and sometimes height and ambient occlusion. If you are not sure what each one does, start with what PBR maps actually are.
If you need a set to practice with, our list of free PBR texture sites covers where to find them and what each license allows. twirl's public wood, brick, and stone materials also download for free without an account, as separate albedo, normal, roughness, metallic, and height maps. We make twirl, so weigh our opinion of it accordingly.
How to make a material in Unity
- Import the textures. Drag the image files into a folder in the Project window.
- Fix the import settings. Select each texture and adjust it in the Inspector. The next section has the details.
- Create the material. In the Project window, right-click and choose Create > Material, or use Assets > Create > Material from the main menu. The Unity manual lists both. Name it, for example
M_Brick. - Check the shader. Select the material. In the Inspector, the Shader dropdown should read Universal Render Pipeline/Lit. Change it there if it does not.
- Set the workflow. Under Surface Options, leave Workflow Mode on Metallic for a standard metallic/roughness texture set.
- Assign the maps. Under Surface Inputs, click the small circle next to each slot, or drag a texture onto it. The table below shows which map goes where.
- Apply it to an object. Select the object. In its Mesh Renderer component, open Materials and assign your material to Element 0.
Which texture goes in which slot?
These are the slots in the URP Lit shader reference:
| Map | Import setting | Lit material slot |
|---|---|---|
| Base color or albedo | Default, sRGB on | Base Map |
| Metallic | Default, sRGB off | Metallic Map |
| Roughness | Invert to smoothness first | Alpha of the Metallic Map |
| Normal | Texture Type: Normal Map | Normal Map |
| Ambient occlusion | Default, sRGB off | Occlusion Map |
| Height | Default, sRGB off | Height Map |
The two rows that trip people up are roughness and height.
Roughness has no slot. The Lit shader has a Smoothness value from 0 to 1, where 0 is a wide, rough highlight and 1 is sharp, like glass. Smoothness is roughness turned upside down. By default, the shader reads it from the alpha channel of the Metallic Map. The Smoothness Source dropdown can switch it to the Base Map alpha instead. Either way, you need to invert your roughness map and pack it into a texture's alpha. Our guide to using a roughness map in Unity URP walks through that.
If you just want something on screen, leave the alpha alone and set the Smoothness slider by hand. A single value is fine for testing. It will not give you the scratches and smudges a roughness map carries.
Height is optional. Unity describes the Height Map as adding larger bumps and protrusions. A normal map alone is often enough. See height maps and parallax in Unity URP before you use it.
What import settings do PBR textures need in Unity?
Select a texture in the Project window to see its import settings in the Inspector. Click Apply after each change.
- Base color: leave the Texture Type on Default with sRGB (Color Texture) on.
- Metallic, AO, height, and packed textures: these store data, not color. Unity's page on disabling sRGB sampling says to set the Texture Type for the texture's use and uncheck sRGB (Color Texture). Our PBR texture color space guide explains why this matters.
- Normal: set Texture Type to Normal Map. If you forget, the material Inspector warns you and offers a Fix Now button, as described in Unity's normal map import page.
If the bumps look inverted, the normal map may use a different green-channel convention from the one Unity expects. The Normal Map import settings have a Flip Green Channel option. Our post on a normal map that looks inverted in Unity covers when to use it. Do not use Create From Grayscale on a real normal map. That option is for turning a grayscale height map into a normal map.
How to use a channel-packed texture in URP
If you already pack your maps, URP Lit and Complex Lit can read one texture for metallic, occlusion, and smoothness. Unity's channel-packed texture page gives this layout:
| Channel | Property |
|---|---|
| Red | Metallic |
| Green | Occlusion |
| Blue | Not used |
| Alpha | Smoothness |
- Build the texture in an image editor or texture tool. Remember that alpha holds smoothness, so invert the roughness map before you pack it.
- Import it and uncheck sRGB (Color Texture).
- Assign the same texture to both Metallic Map and Occlusion Map. Unity reads the right channels for each.
This is not the same layout as an ORM texture made for Unreal, which puts roughness in green. Our ORM texture guide covers the common orders. HDRP uses a different packed texture again, the Mask Map.
How to change texture tiling in Unity
If the texture looks too large or too small on the object, change the material's Tiling values under Surface Inputs. The default is 1. Higher values repeat the texture more often. Offset moves the texture across the surface.
Tiling on the Lit material applies to all of its surface textures together, so the maps stay lined up. Repeating only looks clean if the texture is seamless and its Wrap Mode is set to Repeat in the import settings. If you can see the repeat, our guide to making a texture seamless covers the fixes.
The object also needs sensible UVs. If the texture is stretched on one side, the UV layout is the problem, not the material. Fix it in your modeling tool and re-export.
Why is my material pink in Unity?
Bright pink usually means the material's shader does not work with your render pipeline. The most common case is a Built-in Render Pipeline material in a URP project. Unity's upgrade guide gives two fixes:
- Back up your materials.
- To convert everything: go to Window > Rendering > Render Pipeline Converter, choose Built-in to URP, enable Material Upgrade, and click Initialize and Convert.
- To convert a few: select the materials in the Project window and choose Edit > Rendering > Materials > Convert Selected Built-in Materials to URP.
The Built-in Standard shader maps to Universal Render Pipeline/Lit. If a material still shows errors after converting, it likely uses a custom shader that the converter cannot handle.
Common Unity material problems
| Problem | Likely cause | Fix |
|---|---|---|
| Material is bright pink | Shader does not match the render pipeline | Use the Render Pipeline Converter |
| Normal Map slot shows a warning | Texture not marked as a normal map | Click Fix Now |
| Bumps look inverted | Normal map uses the other green-channel convention | Enable Flip Green Channel |
| Rough areas look shiny | Roughness used as smoothness without inverting | Invert it first |
| Surface looks washed out or too dark | sRGB on for a data texture | Uncheck sRGB (Color Texture) |
| Texture is stretched | Poor UVs on the mesh | Fix the UVs and re-export |
| Repeat is obvious | Texture is not seamless | Use a seamless texture |
For the DirectX and OpenGL difference in more depth, see OpenGL vs DirectX normals.
Getting twirl materials into Unity
twirl exports separate albedo, normal, roughness, metallic, and height maps. Albedo, normal, metallic, and height fit the table above directly. Roughness needs inverting into smoothness, and twirl does not currently export a packed Unity texture, so you pack that yourself. There is no Unity plugin yet. You import the PNG files by hand. The twirl Unity page summarizes the setup.
If the surface you need is not in a library, the AI material generator can create the same five-map set from a text prompt.
FAQ: making materials in Unity
How do I add a texture to a material in Unity?
Select the material, find the slot under Surface Inputs, and drag the texture onto it or click the circle next to the slot to pick it. For a plain color image, use Base Map.
How do I apply a material to multiple objects in Unity?
Assign the same material asset to each object's Mesh Renderer. They all share it, so editing the material changes every object that uses it.
Why does my object have more than one material slot?
The mesh has more than one submesh. Each element in the Mesh Renderer's Materials list covers one part of the mesh. The Mesh Renderer reference notes that extra materials beyond the submesh count are drawn on top of the last submesh, which costs performance.
Do these steps work in HDRP or the Built-in Render Pipeline?
The general steps do, but the shader and slots differ. HDRP's Lit shader uses a packed Mask Map. The Built-in pipeline uses the Standard shader. This guide covers URP Lit only.
Can I use Blender textures in Unity?
Yes. The image files are the same. Import the normal map as a Normal Map, and try Flip Green Channel if the bumps read backwards. Roughness still needs converting to smoothness. If you are coming from Blender, our Blender texture guide shows the equivalent setup there, and our Unreal Engine 5 material guide covers the same job in Unreal.
Sources
- Unity Manual: Create and assign a material
- Unity Manual: Lit shader material Inspector reference for URP
- Unity Manual: Assign a channel-packed texture to a URP material
- Unity Manual: Disable sRGB sampling for a texture
- Unity Manual: Import a normal map
- Unity Manual: Normal Map texture Import Settings
- Unity Manual: Upgrade material assets to URP or HDRP
- Unity Manual: Built-In Render Pipeline shaders in URP
- Unity Manual: Mesh Renderer component reference
