version | A number that is used by the import pipeline to detect new versions of the importer script. Changing this number will trigger a re-import of all assets matching the listed extensions. |
exts | List of file extensions (without leading period character) that the scripted importer handles. |
ext | Single file extension (without leading period character) that the scripted importer handles. |
importQueueOffset | Gives control over ordering of asset import based on types. Positive values delay the processing of source asset files while negative values place them earlier in the import process. |
Use the ScriptedImporter attribute to register a custom importer derived from ScriptedImporter with Unity's Asset import pipeline.
It is best practice to always increment a scripted importer's version number whenever the script is changed. This forces assets imported with lower version numbers to be re-imported.
If the Unity Editor setting "Auto-Update" is set to enabled, editing a script outside of the editor and saving it will trigger both a re-import of the script and all assets of the corresponding type.
The following example declares an importer that handles files with extension cb
and cube
.
#pragma strict @ScriptedImporter(1, ["cb", "cube"]) public class CubeImporter extends ScriptedImporter { public override function OnImportAsset(ctx: AssetImportContext) { // ... } }
using UnityEngine; using UnityEditor.Experimental.AssetImporters;
[ScriptedImporter(1, new[] {"cb", "cube"})] public class CubeImporter : ScriptedImporter { public override void OnImportAsset(AssetImportContext ctx) { // ... } }
The following example declares an importer that handles files with extension sphere
. Its importQueueOffset parameter is set to 10, forcing assets with extension sphere
to be imported after all other scripted importers that have an importQueueOffset of less than 10.
#pragma strict @ScriptedImporter(1, "sphere", 10) public class SphereImporter extends ScriptedImporter { public override function OnImportAsset(ctx: AssetImportContext) { // ... } }
using UnityEngine; using UnityEditor.Experimental.AssetImporters;
[ScriptedImporter(1, "sphere", 10)] public class SphereImporter : ScriptedImporter { public override void OnImportAsset(AssetImportContext ctx) { // ... } }