Unity will import a generated mesh without complaint. The complaints come afterwards, and they are always the same four, so here they are with their fixes.
Take the FBX
Both GLB and FBX hold the mesh, the materials and, if you rigged it, the skeleton. In Unity that is a tie on paper and not a tie in practice: FBX is the native import format, and glTF needs a package. If the model is a rigged character, FBX also avoids a class of skinning problems that are tedious to diagnose.
Take the GLB for the web and for Blender. Take the FBX for this.
Drop it anywhere under Assets/ and Unity imports it on the next focus. The
import settings live in the Inspector with the file selected, across the Model,
Rig, Animation and Materials tabs. You will use three of the four.
The material comes in pink
This is the first thing that happens and it is not your fault.
Unity's built-in render pipeline, URP and HDRP use different shaders, and a material authored for one shows as magenta in another. An imported FBX brings Standard-shader materials, so on a URP or HDRP project everything arrives pink.
Edit > Rendering > Materials > Convert Selected Built-in Materials to URP
(the menu path has moved between versions; it is under Rendering, and the HDRP
equivalent sits next to it). That fixes it in one pass.
While you are in the Materials tab, use Extract Textures and Extract Materials to get real asset files out of the FBX. Materials embedded in a model file are read-only, and you will want to change something eventually.
The normal map looks inflated or inverted
Unity needs to be told that a normal map is a normal map. Extracted textures come in as ordinary colour textures, and a normal map read as sRGB colour produces lighting that looks subtly wrong in a way that is hard to name: puffy, or lit from the wrong side.
Select the normal texture, set Texture Type to Normal map, apply. Unity will usually also offer to fix it for you with a warning on the material inspector; accept it.
Setting up a generated character as Humanoid
This is the part that earns the rig.
With the FBX selected, go to the Rig tab and set Animation Type to Humanoid, then press Apply. Unity attempts to map the incoming skeleton onto its own humanoid avatar definition. Press Configure to see what it decided.
What you are looking at is a body diagram where every mapped bone is green. Required bones are hips, spine, chest, neck, head, both upper and lower arms, hands, both upper and lower legs, and feet. Optional bones (fingers, toes, eyes) being unmapped is fine and costs you nothing unless you needed them.
An auto-rigged mesh from here uses a standard humanoid skeleton, so this usually maps cleanly on the first try. If a bone is red, it is almost always a naming mismatch and you can drag the correct bone onto the slot by hand.
Why bother with Humanoid at all: it is what makes animation retargetable. A Humanoid avatar can play any humanoid clip in the project regardless of which character it was authored for, which means one animation set drives every character you generate. Set the type to Generic instead and every clip is welded to the skeleton it came from.
The collider will be a trap if you let it
Unity offers to add a Mesh Collider, and a generated mesh has a lot of triangles. A Mesh Collider on a dense mesh is expensive, and a convex Mesh Collider is limited to 255 triangles anyway, so Unity will silently cook a much cruder shape than the one you are looking at.
For anything that moves or that the player collides with, use primitive colliders, sized by hand: a box, a capsule, two spheres. It takes a minute and it is what shipped games do. Reserve Mesh Colliders for static geometry where the precision genuinely matters.
Triangle count
Generated meshes are dense. On the Model tab, Mesh Compression trades precision for file size, which is not the same as reducing triangles and will not help your frame time.
If the count is a problem, decimate before import rather than after, with Blender's Decimate modifier in Collapse mode, pulled down until the silhouette starts to go. Static props usually survive losing four fifths of their triangles. A character that has to deform does not, and that is a topology problem rather than a count problem.
A checklist, because it is always the same list
- Export FBX, rigging the model first if it is a character.
- Drop it in
Assets/. - Convert materials to your render pipeline.
- Extract textures and materials; set the normal map's Texture Type.
- Rig tab → Humanoid → Apply → Configure, and check the diagram is green.
- Replace the Mesh Collider with primitives.
Six steps, and after the first character it takes about two minutes. The two that people skip are the normal map type and the Humanoid configure, and both produce problems that look like something else entirely.