I tried a very straightforward import of the Monk model from https://opengameart.org/content/monk into Unity 5.6.1f1, and ended up with no color/texture on the model. Why?
Remember the steps (sequence should be followed):
- First Import your texture (copy) in your unity Project
- Then, Import your model (copy) in you unity project.
Remember what the unity official docs (HOWTO-ImportObjectBlender) said about blender import requirement Requirements
- You need to have Blender version 2.60 or later (in some earlier versions of Blender the FBX export was broken).
- Textures and diffuse color are not assigned automatically. Manually assign them by dragging the texture onto the mesh in the Scene View in Unity.
Apparently Blender has numerous ways of associating textures with meshes. This particular model had UV Maps associated, but had assigned the textures some other way rather than via the UV map.
- I unpacked all the images from the blend file into external files using the External Data menu under the File menu.
- I make sure those are in the Textures directory under the location where I will import the blend file in Unity.
- I went into Edit mode on each component of the model in Blender (3 main components: Hair, Head, Body), selected all the faces, and changed the selected image to the appropriate value in the UV Map editor, even if it looked like it was already correct for the head.
- Save the Blend file.
Then when I import the model into Unity, the textures are already assigned. All I have left to do is assign the occlusion and normal maps.
I still think Unity could do a much better job of importing Blend files. For one thing, it'd be nice it there were a warning message about the textures being packed if it doesn't want to import packed textures. And for another, it'd be nice if it could pick up textures that were associated with a mesh regardless of whether it came in via the UV map or some other association. And it would be nice if it could support the normal maps and occlusion maps associated with the mesh.