Meshes that are linked instances in Blender loose material when importet to Unity

I find it better to make lots of small Blender files, then combine them into prefabs within Unity.

You will not be able to do 100% of any workflow in Blender in any case.

“Something” will ALWAYS need to be done in Unity.

Since anything done on the Blender side has to “survive” the import process, see near the bottom below for my usual approach, which seems to result in the lowest friction.

This might help you reason about what you are seeing:

Unity imports Blender3D objects as FBX via a little Python script:

The Python script that Unity uses (substitute your Unity version number or search) to import:

./Hub/Editor/2020.2.1f1/Unity.app/Contents/Tools/Unity-BlenderToFBX.py

More on fixing it:

Blender3D objects used as trees / detail in Unity3D terrain (See the second half of this response)

Probuilder and Probuilderize and Blender:

Some more potentially-useful info:

Updating Blender files without breaking your prefabs:

When I work in Blender3D for Unity3D use, I follow these organizational rules:

  • use Empty Blender Objects as folders: they come out as an extra GameObject

  • ALWAYS parent everything to a single Empty, even a single object

  • put as few objects in a given .blend file as possible, combining them in Unity into a prefab

  • set good names for your Blender3D objects and NEVER RENAME them after Unity sees them

  • don’t even think about Materials or Textures in Blender, just do it in Unity