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

AssetImporter

класс в UnityEditor

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

Описание

Обеспечивает доступ к настройкам импорта и базовой функциональности для всех типов ассетов.

Хотя это базовый класс для всех импортёров ассетов, рекомендуется наследоваться от ScriptedImporter класс, если вы хотите написать новый собственный импортёр.

Каждый ассет, импортированный в проект, связан с соответствующим объектом импортера ассетов. Этот объект предоставляет доступ к настройкам, примененным во время процесса импорта ассетов. Эти настройки хранятся в файле .meta файл, расположены рядом с исходным файлом ассета. Они включают сведения о пакете ассетов, настраиваемые данные пользователя и любые внешние объекты, на которые зависит ассет.

Чтобы получить объект импортера ассетов, связанный с ассетом, используйте AssetImporter.GetAtPath метод.

Чтобы применить и сохранить любые изменения, внесенные в настройки, используйте AssetImporter.SaveAndReimport метод. Это действие повторно импортирует ресурс с обновленной конфигурацией.

Следующий пример итерирует все ассеты в проекте, выявляя те, у которых отсутствует имя пакета ассетов, путем проверки их соответствующих объектов импортера ассетов.

using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;

public class AddUserData : MonoBehaviour
{
    [MenuItem("Examples/Log Unbundled Assets")]
    static void LogUnbundledAssets()
    {
        CreateAssets();
        List<string> unbundledAssets = FindUnbundledAssets();
        if (unbundledAssets.Count > 0)
        {
            Debug.Log("Unbundled assets:");
            foreach (string asset in unbundledAssets)
                Debug.Log("  " + asset);
        }
        else
        {
            Debug.Log("All assets are bundled.");
        }
    }

    static List<string> FindUnbundledAssets()
    {
        // Fetch all the assets under Assets/ExampleAssets, excluding the
        // folders.
        string[] assets = AssetDatabase.GetAllAssetPaths()
            .Where(path => path.StartsWith("Assets/ExampleAssets") &&
                !Directory.Exists(path))  // Exclude directories
            .ToArray();

        // Unbundled assets do not have an asset bundle name set in their
        // importer settings.
        List<string> unbundledAssets = new List<string>();
        foreach (string asset in assets)
        {
            AssetImporter importer = AssetImporter.GetAtPath(asset);
            if (importer.assetBundleName == "")
            {
                unbundledAssets.Add(asset);
            }
        }

        return unbundledAssets;
    }

    static void CreateAssets()
    {
        // Create a folder for the assets in this example.
        if (!AssetDatabase.IsValidFolder("Assets/ExampleAssets"))
        {
            AssetDatabase.CreateFolder("Assets", "ExampleAssets");
        }

        // Create a folder for prefab assets.
        if (!AssetDatabase.IsValidFolder("Assets/ExampleAssets/Prefabs"))
        {
            AssetDatabase.CreateFolder("Assets/ExampleAssets",
                                       "Prefabs");
        }

        // Create a sphere asset.
        GameObject sphere =
            GameObject.CreatePrimitive(PrimitiveType.Sphere);
        PrefabUtility.SaveAsPrefabAsset(
            sphere, "Assets/ExampleAssets/Prefabs/Sphere.prefab");

        // Create a text asset.
        TextAsset text = new TextAsset("Hello, World!");
        AssetDatabase.CreateAsset(text,
                                  "Assets/ExampleAssets/Text.asset");

        // Only the text assets has its asset bundle name set.
        AssetImporter importer =
            AssetImporter.GetAtPath("Assets/ExampleAssets/Text.asset");
        importer.assetBundleName = "myBundle";
        importer.SaveAndReimport();

        // Create a material asset.
        Material material = new Material(Shader.Find("Standard"));
        AssetDatabase.CreateAsset(material,
                                  "Assets/ExampleAssets/Material.mat");
    }
}

Свойства

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

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

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

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

Метод Описание
GetAtPathПолучает импортер ассета для ассета в пути.
GetImportLogПолучает журналы, созданные во время импорта ассета по пути.
Унаследованные члены 4

Свойства

СвойствоОписание
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

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

МетодОписание
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

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

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

Операторы

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