docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Developer’s Guide

    As a developer you have access to the FBX Exporter from C# scripting. You can use the basic API by providing a single GameObject or a list of GameObjects. Note that default export settings are used for exporting the GameObjects to the FBX file.

    You can call the FBX Exporter from C# using methods found in the UnityEditor.Formats.Fbx.Exporter namespace, for example:

    using System.IO;
    using UnityEngine;
    using UnityEditor;
    using UnityEditor.Formats.Fbx.Exporter;
    
    public static void ExportGameObjects(Object[] objects)
    {
        string filePath = Path.Combine(Application.dataPath, "MyGame.fbx");
        ModelExporter.ExportObjects(filePath, objects);
        
        // ModelExporter.ExportObject can be used instead of 
        // ModelExporter.ExportObjects to export a single game object
    }
    

    Runtime

    The FBX SDK bindings can be executed during gameplay allowing import and export at runtime. Currently a custom importer/exporter needs to be written in order to do so, as the FBX Exporter is Editor only.

    NOTE: The FBX SDK bindings are Editor only by default and will not be included in a build. In order for the package to be included in the build, add the FBXSDK_RUNTIME define to Edit > Project Settings... > Player > Other Settings > Scripting Define Symbols.

    Basic Exporter:

    using Autodesk.Fbx;
    using UnityEngine;
    using UnityEditor;
    
    protected void ExportScene (string fileName)
    {
        using(FbxManager fbxManager = FbxManager.Create ()){
            // configure IO settings.
            fbxManager.SetIOSettings (FbxIOSettings.Create (fbxManager, Globals.IOSROOT));
            
            // Export the scene
            using (FbxExporter exporter = FbxExporter.Create (fbxManager, "myExporter")) {
    
                // Initialize the exporter.
                bool status = exporter.Initialize (fileName, -1, fbxManager.GetIOSettings ());
    
                // Create a new scene to export
                FbxScene scene = FbxScene.Create (fbxManager, "myScene");
    
                // Export the scene to the file.
                exporter.Export (scene);
            }
        }
    }
    

    Basic Importer:

    using Autodesk.Fbx;
    using UnityEngine;
    using UnityEditor;
    
    protected void ImportScene (string fileName)
    {
        using(FbxManager fbxManager = FbxManager.Create ()){
            // configure IO settings.
            fbxManager.SetIOSettings (FbxIOSettings.Create (fbxManager, Globals.IOSROOT));
            
            // Import the scene to make sure file is valid
            using (FbxImporter importer = FbxImporter.Create (fbxManager, "myImporter")) {
    
                // Initialize the importer.
                bool status = importer.Initialize (fileName, -1, fbxManager.GetIOSettings ());
    
                // Create a new scene so it can be populated by the imported file.
                FbxScene scene = FbxScene.Create (fbxManager, "myScene");
    
                // Import the contents of the file into the scene.
                importer.Import (scene);
            }
        }
    }
    

    Limitations

    • Only 64 bit Windows, MacOS and Ubuntu standalone player builds are supported
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)