By default ‘import Materials’ is checked for your imported models, so Unity materials are then created for you, based on material/texture or object+material names and then applied to your objects at import. That said there are a number of Frequently Asked Questions that people ask:
Why is my model grey?
This is the default colour for a material in Unity that cannot find a texture or the correct diffuse value from the data in the imported model. So you need to observe the following:
Your textures need to be in your project folder so;
- Either copy them into \assets\modelnamefolder\textures (and repath in your source 3D application)
- Or Embed them with the embed texture option in the FBX exporter.
And: - Use a compatible format
- Bake or resave your textures if they are procedural or an unsupported format.
- Make sure your 3D application material has supported parameters
if you are not using a texture:
- Bake or Generate new material types and test the parameters are imported e.g. diffuse colour, specular colour etc
What texture formats does Unity Support?
Unity supports Most texture formats including PSD’s, JPG’s, PNG’s, TGA’s,
- PSD’s can be good for an iterative workflow, but may contain many unused layers ultimately
- PNG’s are pretty efficient and can support transparency
- TGA’s can support full alpha channels for transparency or gloss maps and other shader functionality
Why does Unity create duplicate materials?
There can be a number of reasons for this:
- Unity creates materials at import by default with texture name, if you change this new materials are created but the old ones are not removed
- It may be possible that you have duplicate materials in your source package
Why does my texture appear a different size/resolution in Unity?
There are many texture settings, configurations and settings for textures in Unity but generally:
- You should create square, power of two sized textures with certain exceptions for Gui/Specific platforms e.g 256x 256 or 1024x1024
- Apply texture settings like Max Size in the inspector as documented in the texture import page
- Set your quality settings for the project as they also affect the resolution and mipmapping of your textures as documented here
Why does my material look different in Unity?
Unity does not import all the different material and shader combinations from all the different 3D packages, it simply creates Unity materials based on as many components as it can understand. Generally the minimum is :
- UV mapped texture
- Diffuse Colour
- Material Name
Materials then need to be allocated a Shader which affects the appearance of the material for a real-time platform like Unity. You can then edit the Unity material to add normal maps, specular values and other parameters which are dependent on shader and this material will remain the master material for your project.
Why does my model lose it’s material (go grey) again after re-export?
If you have changed the material name or texture (or indeed model name) in your source package it will create a new material for you dependent on the material name setting in the inspector, so you would have to setup the material and find textures again and end up with a duplicate or either:
- Fix this in your source package to retain your workflow (make sure all models are assigned the correct material)
- Re-apply your Material in Unity, by dragging it on to the correct material component of the model