GLTFUtility
Allows you to import and export glTF files during runtime and in editor. glTF is a new opensource 3d model transmission format which supports everything you’ll ever need from a format in Unity. Read more about glTF here
 
 

What makes GLTFUtility different?
Focusing on simplicity and ease of use, GLTFUtility aims to be an import-and-forget solution, keeping consistency with built-in functionality.
Installation
Using Unity Package Manager (Help)
- "com.siccity.gltfutility": "https://github.com/siccity/gltfutility.git"
Using git
- Get Newtonsoft.JSON from one of these sources
- Official upm package: "com.unity.nuget.newtonsoft-json": "2.0.0-preview",
- Unofficial git repo: https://github.com/jilleJr/Newtonsoft.Json-for-Unity
 
- Official upm package: 
- Clone GLTFUtility by itself or as a submodule
- Clone into your assets folder git clone [email protected]:Siccity/GLTFUtility.git
- Add repo as submodule git submodule add [email protected]:Siccity/GLTFUtility.git Assets/Submodules/GLTFUtility
 
- Clone into your assets folder 
Manual download
- Get Newtonsoft.JSON from the asset store
- Download GLTFUtility-master.zip and extract to your project assets
Features
System
Spec
Extensions
Known issues
- ArgumentNullException: Value cannot be nullin build but not in editor.- This is most likely due to shaders being stripped from the build. To fix this, add the GLTFUtility shaders to the Always Included Shaders list in Graphic Settings.
 
- Draco compression does not work on iOS and UWP
- More info on #133
 
Runtime import API
// Single thread
using Siccity.GLTFUtility;
void ImportGLTF(string filepath) {
   GameObject result = Importer.LoadFromFile(filepath);
}
// Multithreaded
using Siccity.GLTFUtility;
void ImportGLTFAsync(string filepath) {
   Importer.ImportGLTFAsync(filepath, new ImportSettings(), OnFinishAsync);
}
void OnFinishAsync(GameObject result) {
   Debug.Log("Finished importing " + result.name);
}
Important shader note
To ensure that Unity includes the GLTFUtility shaders in builds, you must add these shaders to the ‘Always Included Shaders’ list.
- Open Edit -> Project Settings
- Open Graphics
- Scroll to Always Included Shaders
- Under Size, increase the value by 4 and hit Enter.
- In the Project panel, navigate to Packages/GLTFUtility/Materials/Built-in.
- In this directory are 4 .shader files.
- Drag and drop each of the 4 files into one of the 4 newly created rows in Always Included Shaders.