How do I import Models from my 3D app?

To import a 3D model into Unity you can drag a file into the project window.

In the inspector > Model tab Unity supports importing models from most popular 3D applications.

3D formats

Importing meshes into Unity can be achieved from two main types of files:

  1. Exported 3D file formats, such as .FBX or .OBJ
  2. Proprietary 3D application files, such as .Max and .Blend file formats from 3D Studio Max or Blender for example.

Either should enable you to get your meshes into Unity, but there are considerations as to which type you choose:

Exported 3D files

Unity can read .FBX, .dae (Collada), .3DS, .dxf and .obj files, FBX exporters can be found here and obj or Collada exporters can also be found for many applications

Advantages:

Disadvantages:

Proprietary 3D application files

Unity can also import, through conversion: Max, Maya, Blender, Cinema4D, Modo, Lightwave & Cheetah3D files, e.g. .MAX, .MB, .MA etc.

Advantages:

Disadvantages:

For pages on importing specifically from 3D packages see these pages:

Textures

3D formats

Importing meshes into Unity can be achieved from two main types of files:

  1. Exported 3D file formats, such as .FBX or .OBJ
  2. Proprietary 3D application files, such as .Max and .Blend file formats from 3D Studio Max or Blender for example.

Either should enable you to get your meshes into Unity, but there are considerations as to which type you choose:

Exported 3D files

Unity can read .FBX, .dae (Collada), .3DS, .dxf and .obj files, FBX exporters can be found here and obj or Collada exporters can also be found for many applications

Advantages:

Disadvantages:

Proprietary 3D application files

Unity can also import, through conversion: Max, Maya, Blender, Cinema4D, Modo, Lightwave & Cheetah3D files, e.g. .MAX, .MB, .MA etc.

Advantages:

Disadvantages:

Models

Model files that are placed in the Assets folder in your Unity project are automatically imported and stored as Unity assets.

A model file may contain a 3D model, such as a character, a building, or a piece of furniture. The model is imported as multiple assets. In the Project view the main imported object is a Model Prefab. Usually there are also up to several Mesh objects that are referenced by the Model Prefab.

A model file may also contain animation data which can be used to animate this model or other models. The animation data is imported as one or more Animation Clips.


A Mesh Filter together with Mesh Renderer makes the model appear on screen.

Import settings for Meshes

The Import Settings for a model file will be displayed in the Model tab of the FBX importer inspector when the model is selected. These affect the mesh, it's normals and imported materials. Settings are applied per asset on disk so if you need assets with different settings make (and rename accordingly) a duplicate file.

Although defaults can suffice initially, it is worth studying the settings glossary below, as they can determine what you wish to do with the game object.

Some general adjustments to be made for example might be:


FBX Importer Inspector: Model tab
Meshes
Scale FactorUnity's physics system expects 1 meter in the game world to be 1 unit in the imported file. If you prefer to model at a different scale then you can compensate for it here. defaults for different 3D packages are as follows .fbx, .max, .jas, .c4d = 0.01, .mb, .ma, .lxo, .dxf, .blend, .dae = 1 .3ds = 0.1
Mesh CompressionIncreasing this value will reduce the file size of the mesh, but might introduce irregularities. It's best to turn it up as high as possible without the mesh looking too different from the uncompressed version. This is useful for optimizing game size.
Read/Write EnabledEnables the mesh to be written at runtime so you can modify the data; it makes a copy in memory. When this option is turned off, it saves memory since Unity can unload a copy of mesh data in the game. However, if you are scaling or instantiating meshes at runtime with a non-uniform scale, you may have to enable "Read/Write Enabled" in their import settings. The reason is that non-uniform scaling requires the mesh data to be kept in memory. Normally this is detected at build time, but when meshes are scaled or instantiated at runtime you need to set this manually. Otherwise they might not be rendered in game builds correctly.
Optimize MeshThis option determines the order in which triangles will be listed in the mesh.
Generate CollidersIf this is enabled, your meshes will be imported with Mesh Colliders automatically attached. This is useful for quickly generating a collision mesh for environment geometry, but should be avoided for geometry you will be moving.
Swap UVsUse this if lightmapped objects pick up the wrong UV channels. This will swap your primary and secondary UV channels.
Generate LightmapUse this to create the second UV channel to be used for Lightmapping.
Advanced OptionsSee Lightmapping UVs document.
Normals & Tangents
NormalsDefines if and how normals should be calculated. This is useful for optimizing game size.
ImportDefault option. Imports normals from the file.
CalculateCalculates normals based on Smoothing angle. If selected, the Smoothing Angle becomes enabled.
NoneDisables normals. Use this option if the mesh is neither normal mapped nor affected by realtime lighting.
TangentsDefines if and how tangents and binormals should be calculated. This is useful for optimizing game size.
ImportImports tangents and binormals from the file. This option is available only for FBX, Maya and 3dsMax files and only when normals are imported from the file.
CalculateDefault option. Calculates tangents and binormals. This option is available only when normals are either imported or calculated.
NoneDisables tangents and binormals. The mesh will have no Tangents, so won't work with normal-mapped shaders.
Smoothing AngleSets how sharp an edge has to be in order to be treated as a hard edge. It is also used to split normal map tangents.
Split TangentsEnable this if normal map lighting is broken by seams on your mesh. This usually only applies to characters.
Materials
Import MaterialsDisable this if you don't want materials to be generated. Default-Diffuse material will be used instead.
Material NamingControls how Unity materials are named:
By Base Texture NameThe name of the diffuse texture of the imported material that will be used to name the material in Unity. When a diffuse texture is not assigned to the material, Unity will use the name of the imported material.
From Model's MaterialThe name of the imported material will be used for naming the Unity material.
Model Name + Model's MaterialThe name of the model file in combination with the name of the imported material will be used for naming the Unity material.
Texture Name or Model Name + Model's Material (Obsolete)The name of the diffuse texture of the imported material will be used for naming the Unity material. When a diffuse texture is not assigned or it cannot be located in one of the Textures folders, then the material will be named by Model Name + Model's Material instead. This option is backwards compatible with the behavior of Unity 3.4 (and earlier versions). We recommend using By Base texture Name, because it is less complicated and has more consistent behavior.
Material SearchControls where Unity will try to locate existing materials using the name defined by the Material Naming option:
LocalUnity will try to find existing materials only in the "local" Materials folder, ie, the Materials subfolder which is the same folder as the model file.
Recursive-UpUnity will try to find existing materials in all Materials subfolders in all parent folders up to the Assets folder.
EverywhereUnity will try to find existing materials in all Unity project folders.

See Also

Page last updated: 2013-05-01