You model something in Blender, drop it into Unity, and it shows up lying on its back with a scale of 100. Nearly every Blender user hits this on day one. The fix is not one magic checkbox but a small set of Blender to Unity FBX export settings that work together, plus two habits on the Blender side. This guide gives you the exact settings for Blender 4.2 LTS through 4.5 and Unity 6, explains what each one does, compares FBX with dropping .blend files straight into Unity, and shows how to save it all as a preset or a script so you never set it up by hand again.
Why Blender and Unity Disagree
Two differences cause almost every import problem:
- Up axis. Blender is Z-up. Unity is Y-up. Unity is also left-handed while Blender is right-handed. Something has to rotate the data on the way across, and if that rotation ends up on the object’s transform instead of in the mesh, you see Rotation X = -90 in Unity.
- Units. Blender’s default unit is the metre. FBX’s native unit is the centimetre. Unity uses metres. If the conversion is stored as an object scale instead of being applied, you see Scale = 100 (or 0.01) in Unity.
The model often looks the right size and orientation in the Scene view, because the -90 rotation and 100 scale cancel out the mesh data. The trouble starts when you reset the transform, add a collider, rotate it in code or parent things to it. The goal of the settings below is simple: every imported object should arrive with Rotation 0,0,0 and Scale 1,1,1, already the right size and facing Unity’s forward (+Z).
Prepare the Model in Blender
Do these before every export. They take ten seconds and prevent most bugs.
- Check scene units. In Properties > Scene > Units, keep Unit System = Metric, Unit Scale = 1.0, Length = Meters. One Blender metre then equals one Unity unit. Changing Unit Scale is the most common cause of odd sizes later.
- Model at real size. A door is about 2 m tall, a character about 1.8 m. Check the Dimensions in the N panel. Unity’s physics, lighting and NavMesh all assume real sizes.
- Face the right way. Make the front of the model face Blender’s -Y axis, which is the side you see in Front view (numpad 1). With the axis settings below, that becomes Unity’s +Z forward, so
transform.forwardpoints where the model looks. - Apply transforms. Select the objects and use Object > Apply > All Transforms (Ctrl+A). Rotation should read 0 and Scale 1 in the N panel. Don’t apply on an armature that already has animation without reading the animation section in Troubleshooting.
- Set the origin. Unity uses the object origin as its pivot. For props, put it at the base: Object > Set Origin > Origin to 3D Cursor after snapping the cursor to the bottom. For doors, put it on the hinge.
- Check normals. Turn on the Face Orientation overlay. Red faces point inward and will look see-through in Unity. Fix them with Mesh > Normals > Recalculate Outside in Edit Mode.
- Name things. Object, mesh, material and bone names become Unity names. “Cube.001” and “Material.003” will haunt you.
The FBX Export Settings That Work
Open File > Export > FBX (.fbx). The sidebar has several panels. Here’s what to set, panel by panel.
Include
- Limit to: Selected Objects on, so you export only the asset, not your reference images and lights.
- Object Types: keep Armature, Mesh and Empty. Untick Camera and Light (Unity has its own).
Transform
- Scale: 1.00.
- Apply Scalings: FBX Units Scale. This is the setting that removes the 100 scale. The default, All Local, puts the unit conversion on the object transforms.
- Forward: -Z Forward and Up: Y Up. These are the defaults; leave them.
- Apply Unit on.
- Use Space Transform on (default).
- Apply Transform on. Blender marks it experimental. It bakes the axis conversion into the mesh data instead of writing a -90 rotation on root objects. It works well for static meshes. For rigged characters, you may prefer Unity’s Bake Axis Conversion instead (see the Unity section below).
Geometry
- Smoothing: Face. Writes smoothing data so Unity’s normals match Blender’s shading.
- Apply Modifiers on, so Mirror, Bevel and the Smooth by Angle modifier (which replaced Auto Smooth in Blender 4.1) are baked into the exported mesh.
- Tangent Space off. Unity calculates tangents itself, and Blender refuses to write tangents for faces with more than four vertices.
- Triangulate Faces off unless you need exact triangulation control. Unity triangulates on import.
Armature
- Only Deform Bones on, so IK targets and control bones stay in Blender.
- Add Leaf Bones off. When on, Blender adds an extra “_end” bone to every chain, which clutters the hierarchy and confuses Humanoid mapping.
- Primary Bone Axis Y and Secondary Bone Axis X (defaults) are fine for Unity.
Bake Animation
- On only if the file contains animation. For a static prop, turn it off so Unity doesn’t create an empty clip and an Animator.
- For characters, the choice between NLA Strips and All Actions decides which clips you get. A later post in this Blender series covers that choice in detail.
Path Mode (top of the sidebar)
- Path Mode: Copy, then click the small Embed Textures toggle next to it. Image textures used by the materials get packed inside the FBX, so Unity can find them. If you keep textures in the Unity project yourself, leave Path Mode on Auto and import the images separately.
With these settings, a mesh exported from Blender arrives in Unity at Rotation 0,0,0 and Scale 1,1,1, the right size, facing +Z.
Unity Model Import Settings to Check
Select the FBX in Unity’s Project window. The Inspector shows four tabs: Model, Rig, Animation and Materials.
Model tab:
- Scale Factor: leave at 1.
- Convert Units: leave on. It converts the file’s units to metres.
- Bake Axis Conversion: an alternative to Blender’s Apply Transform. It bakes the axis conversion into the imported meshes in Unity. Use one or the other, not both, and test with a character before committing a whole project to it.
- Import Cameras / Import Lights: off if you exported any by accident.
- Read/Write: off unless a script reads the mesh at runtime. It doubles the mesh memory.
- Generate Colliders: only for level geometry. For gameplay objects, add simple colliders by hand. Our Mesh Collider guide explains why.
- Normals: Import, so the smoothing from Blender is kept.
Rig tab: None for props, Generic for most rigged objects, Humanoid for characters that share animations. Animation tab: untick Import Animation for static props. Materials tab: covered in the textures guide later in this series. In a URP project, Unity creates URP Lit materials from the FBX automatically.
Once you’re happy, drag the model into a scene and make a prefab from it. Put colliders, scripts and LOD setup on the prefab, never on the raw model, so re-exporting from Blender doesn’t wipe them.
💻 Running Blender and Unity side by side?
Texture baking, renders and a Unity editor open at the same time eat RAM and GPU fast. If your laptop chokes on the round trip, our budget picks cover machines that handle both.
.blend Files vs FBX
Unity can import .blend files directly. Behind the scenes, it launches your installed Blender in the background and converts the file to FBX on import. It feels convenient, but it has real downsides:
- Every machine needs Blender installed, including teammates and build servers. Without it, the import fails.
- You don’t control the export settings. Unity’s converter decides them, and the classic -90 rotation often comes back.
- Imports are slower, because Blender starts up each time the file changes.
- Everything in the file comes along, including cameras, lights and hidden helper objects.
- Your source file lives in Assets, so it ships in version control at full size with every change.
Use FBX. Keep the .blend files in a folder outside Assets (for example Art/Source/ next to it in the repo) and export FBX into Assets/Art/Models/. If you use git, track both with Git LFS. Our git setup guide shows the .gitattributes lines.
Save a Preset, a Collection Exporter or a Script
Operator preset
In the FBX export dialog, set everything once, then open the Operator Presets menu at the top of the sidebar and click +. Name it “Unity”. Next time, pick it from the dropdown and every setting is restored.
Collection exporters (Blender 4.2+)
Blender 4.2 added exporters that live on a collection. Select a collection, open Properties > Collection > Exporters, click Add and choose FBX. Set the file path and the same options as above. From then on, the Export button in that panel (or File > Export All Collections) re-exports with the stored settings. This is perfect for one collection per Unity asset.
A Python script
For batch exports or a one-click button, call the exporter from a script. Paste this into Blender’s Scripting workspace and run it with the objects selected:
import bpy
import os
# Folder inside your Unity project. Use an absolute path.
EXPORT_DIR = r"C:/MyGame/Assets/Art/Models"
def export_selected_for_unity(name):
path = os.path.join(EXPORT_DIR, name + ".fbx")
bpy.ops.export_scene.fbx(
filepath=path,
use_selection=True,
object_types={'ARMATURE', 'MESH', 'EMPTY'},
global_scale=1.0,
apply_unit_scale=True,
apply_scale_options='FBX_SCALE_UNITS',
axis_forward='-Z',
axis_up='Y',
bake_space_transform=True,
mesh_smooth_type='FACE',
use_mesh_modifiers=True,
use_tspace=False,
use_armature_deform_only=True,
add_leaf_bones=False,
bake_anim=False,
path_mode='COPY',
embed_textures=True,
)
print("Exported", path)
active = bpy.context.active_object
if active is None:
raise RuntimeError("Select the objects to export first")
export_selected_for_unity(active.name)
For an animated character, set bake_anim=True and choose bake_anim_use_nla_strips or bake_anim_use_all_actions. For rigs, consider bake_space_transform=False and Unity’s Bake Axis Conversion instead.
Troubleshooting
Model imports with Rotation X -90
Apply Transform was off, or the object had unapplied rotation in Blender. Apply all transforms, turn on Apply Transform, or tick Bake Axis Conversion in Unity.
Model imports with Scale 100 or 0.01
Apply Scalings is still All Local, or the Blender scene Unit Scale isn’t 1.0. Switch to FBX Units Scale and check scene units.
Model is invisible or has holes
Flipped normals. Recalculate Outside in Blender. If it’s still missing, check that the Mesh Renderer is enabled and the object is on a layer the camera renders.
Model is white or pink
Textures weren’t embedded or found, or the material isn’t a URP shader. Use Path Mode Copy with Embed Textures, and see fixing pink materials.
Hard edges look faceted or too smooth
Set Smoothing to Face in Blender and Normals to Import in Unity. If you use the Smooth by Angle modifier, keep Apply Modifiers on.
Prefab lost its components after re-export
Renaming objects in Blender changes the hierarchy Unity matches against. Keep object names stable between exports.
FAQ
What are the best FBX export settings for Unity?
Selected Objects, Apply Scalings FBX Units Scale, -Z Forward, Y Up, Apply Unit on, Apply Transform on, Smoothing Face, Add Leaf Bones off, Path Mode Copy with Embed Textures.
Should I use .blend or FBX in Unity?
FBX. A .blend file needs Blender installed on every machine, hides the export settings and imports slower.
Does Blender’s Apply Transform break animations?
It can on rigged characters, which is why Blender labels it experimental. For rigs, many people use Unity’s Bake Axis Conversion instead. Test with one character first.
Do I need to apply transforms before every export?
Yes, for meshes. Unapplied rotation or scale in Blender carries into Unity and stacks with the axis conversion.
Is one Blender unit one Unity unit?
Yes, with Metric units, Unit Scale 1.0 and the settings above. One Blender metre is one Unity unit.
Reader questions
Asked by readers of this article and answered by AI. Behavior can differ between Unity versions, so test in yours.




Leave a Reply