Importing FBX files in Unity with the correct scale, rotation, and axis is fraught.
If you are just looking for a quick way to get models importing into Unity properly, take a look at the Pontoco Import/Export Settings.
The FBX Sanitizer tool can be used to validate an FBX file to verify that it will import into Unity with correct scale and rotation.
FBX is in cm by default, but can support other units. Other unit scales are achieved in FBX by by setting
GlobalSettings→Properties70→UnitScaleFactor property in the fbx. For example, a 1 meter cube in 'meters' should be stored in an fbx file like:
GlobalSettings: Properties70: UnitScaleFactor = (100.0) # The 'unit' is 100 * 1cm CubeObject: Lcl Scaling = (1,1,1)
This file will show up in Unity's importer as '1m (File)'. image
In the FBX file format, global axis alignment is stored in the GlobalSettings:
Unity uses these properties to determine the coordinate system for the file. On import, the asset will be rotated to convert it from the file-coordinate system, to the Unity coordinate system. As of 2020.1, when “Bake Axis Conversion” is checked, these rotations will be baked into the meshes, rather than applied in the transforms.
For Blender it's important to note the difference between the terms “Front” and “Forward”. Front refers to the direction a model faces. In Blender this is -Y, in Unity this is +Z. Forward refers to the direction you would walk when looking at a model from the front. In Blender this is +Y and in Unity this is +Z. 1)