Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ImporterGlobalSettings<T>

A settings singleton that asset importers read, kept in sync with asset import workers.
Read time 5 minutesLast updated 10 days ago

Definition

public class ImporterGlobalSettings<T> : ScriptableObject where T : ScriptableObject

Remarks

Unity synchronizes the values with asset import workers whenever an AssetDatabase refresh starts importing assets, so an importer reads the same values whether it runs in the Editor or on a worker. This includes changes that you have not saved to disk.
Changing a value does not synchronize it on its own. Unity picks the change up the next time it starts importing assets, so imports that are already running keep the values they started with.
Add the FilePathAttribute to your class to also persist the values between Editor sessions, and call
Save
to write them to disk. Unity synchronizes settings without this attribute in the same way, but only keeps them for the current session.

Examples

using UnityEditor;using UnityEditor.AssetImporters;using UnityEngine;[FilePath("ProjectSettings/MyImporterSettings.asset", FilePathAttribute.Location.ProjectFolder)]public class MyImporterSettings : ImporterGlobalSettings<MyImporterSettings>{ public const string customDependencyName = "MyImporterSettings"; [SerializeField] float m_Scale = 1; public float scale => m_Scale; public void DoubleScale() { m_Scale *= 2; // Persisting the value is optional: importers read it whether or not it was saved to disk. Save(true); // Register a custom dependency to provoke a reimport of these assets. AssetDatabase.RegisterCustomDependency(customDependencyName, Hash128.Compute(m_Scale)); AssetDatabase.Refresh(); }}[ScriptedImporter(1, "myasset")]public class MyAssetImporter : ScriptedImporter{ public override void OnImportAsset(AssetImportContext ctx) { ctx.DependsOnCustomDependency(MyImporterSettings.customDependencyName); var root = new GameObject("MyAsset"); root.transform.localScale = Vector3.one * MyImporterSettings.instance.scale; ctx.AddObjectToAsset("root", root); ctx.SetMainObject(root); }}static class MyImporterSettingsMenuItems{ [MenuItem("MyImporterSettings/Modify")] static void ModifyMyImporterSettings() { MyImporterSettings.instance.DoubleScale(); }}

Static Properties

Property

Description

instanceGets the instance of the ImporterGlobalSettings Singleton.

Methods

Method

Description

SaveSaves the current state of the ImporterGlobalSettings.

Static Methods

Method

Description

GetFilePathGet the file path where this ImporterGlobalSettings is saved to.

Inheritance

Inherited Members

Operators

Operator

Description

operator ==Compares two object references to see if they refer to the same object.
boolDetermines whether the object exists.
operator !=Compares if two objects refer to a different object.