Unity 6.3
0 онлайн 38 гостей 3 в системе
Вход

ScriptedImporter

класс в UnityEditor.AssetImporters

Наследуется от:AssetImporter

Описание

Абстрактный базовый класс для пользовательских импортёров ассетов.

Скриптовые импортеры — это скрипты, которые ассоциированы с определенными расширениями файлов. Они вызываются конвейером Asset Unity для преобразования содержимого ассоциированных файлов в Assets.

Используйте ScriptedImporterAttribute класс, чтобы регистрировать собственные импортёры в конвейере ассетов.

Поля C# в ScriptedImporter сериализируются точно так же, как и поля в MonoBehaviour. См. Сериализация скриптов Вы можете увидеть эти свойства в Inspector и использовать их для управления поведением импортера для каждого ассета. Для программного доступа к значениям свойств ассета используйте AssetImporter.GetAtPath и приведите возвращаемое значение к нужному классу, производному от ScriptedImporter. Изменив значения, запустите новый импорт вызовом EditorUtility.SetDirty а затем AssetImporter.SaveAndReimport.

using UnityEngine;
using UnityEditor.AssetImporters;
using System.IO;

[ScriptedImporter(1, "cube")] public class CubeImporter : ScriptedImporter { public float m_Scale = 1;

public override void OnImportAsset(AssetImportContext ctx) { var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); var position = JsonUtility.FromJson<Vector3>(File.ReadAllText(ctx.assetPath));

cube.transform.position = position; cube.transform.localScale = new Vector3(m_Scale, m_Scale, m_Scale);

// 'cube' is a GameObject and will be automatically converted into a Prefab // (Only the 'Main Asset' is eligible to become a Prefab.) ctx.AddObjectToAsset("main obj", cube); ctx.SetMainObject(cube);

var material = new Material(Shader.Find("Standard")); material.color = Color.red;

// Assets must be assigned a unique identifier string consistent across imports ctx.AddObjectToAsset("my Material", material);

// Assets that are not passed into the context as import outputs must be destroyed var tempMesh = new Mesh(); DestroyImmediate(tempMesh); } }

Открытые методы

Метод Описание
OnImportAssetЭтот метод должен быть переопределён в производном классе; конвейер ассетов вызывает его для импорта файлов.
SupportsRemappedAssetTypeПереопределите этот метод, если ваш ScriptedImporter поддерживает пересопоставление определенных типов ассетов.

Сообщения

Сообщение Описание
GatherDependenciesFromSourceFileСтатический обратный вызов, который вы можете реализовать, чтобы задать зависимости артефактов от других ассетов и оптимизировать порядок импорта ассетов.
OnValidateЭта функция вызывается при загрузке импортера или изменении значения в Inspector.
ResetСброс значений по умолчанию.
Унаследованные члены 4

Свойства

СвойствоОписание
assetBundleNameПолучить или установить имя AssetBundle.
assetBundleVariantПолучить или установить вариант AssetBundle.
assetPathИмя пути ассета для данного импортера. (только для чтения)
importSettingsMissingЗначение true, если метафайл не предоставляется с импортированным ассетом.
userDataПолучить или установить любые данные пользователя.
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

Открытые методы

МетодОписание
AddRemapСопоставление субактива из импортированного ассета (например, файла FBX) с внешним ассетом того же типа.
GetExternalObjectMapПолучает копию сопоставления внешнего объекта, используемого AssetImporter.
RemoveRemapУдаляет элемент из карты внешних объектов.
SaveAndReimportСохранить настройки импортера ассетов, если импортер ассетов загрязнен.
SetAssetBundleNameAndVariantУстановите имя и вариант AssetBundle.
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

Статические методы

МетодОписание
GetAtPathПолучает импортер ассета для ассета в пути.
GetImportLogПолучает журналы, созданные во время импорта ассета по пути.
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.