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

AssetImportContext.GetArtifactFilePath

Declaration

public string GetArtifactFilePath(GUID guid, string fileName);
public string GetArtifactFilePath(Experimental.ArtifactKey key, string fileName);

Параметры

Параметр Описание
ГУИД Руководство по зависимости "Файл артефакта".
ключ Ключ Artifact зависимости File Artifact.
fileName Имя файла артефакта, от которого будет зависеть. См. [[AssetImportContext.GetOutputArtifactFilePath.

Возвращаемое значение

строка Путь внутри папки Библиотеки, из которой можно прочитать содержимое запрошенного Файл Артефакта.

Описание

Возвращает путь к файлу артефакта, созданному другим импортером, и добавляет зависимость к этому файлу.

Этот метод должен быть использован в сочетании с AssetImportContext.GetOutputArtifactFilePath. После того, как Файл Артефакта был создан другим импортером, использование этого метода возвратит этот путь Файл Артефакта и добавит зависимость к нему. Затем можно прочитать содержимое этого Файл Артефакта для создания результата импорта. В следующем примере показано, как ScriptedImporter генерирует Материал и устанавливает его базовый цвет с использованием первого пикселя цвета, сохраненного в Файл Артефакта из примера внутри AssetImportContext.GetOutputArtifactFilePath. Примечание: Хотя нет ограничения на количество Файлов Артефакта, созданных с помощью AssetImportContext.GetOutputArtifactFilePath, это возможно только для первых 32 Файлов Артефакта, созданных одним импортом Ассета.

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

[ScriptedImporter(1, "pixelMat", 1, AllowCaching = true)] public class MaterialFromFirstPixel : ScriptedImporter { public LazyLoadReference<Texture2D> m_Texture;

public override void OnImportAsset(AssetImportContext ctx) { var color = Color.magenta; if (AssetDatabase.TryGetGUIDAndLocalFileIdentifier(m_Texture, out var stringGuid, out var id)) { string path = string.Empty; if (GUID.TryParse(stringGuid, out var guid)) path = ctx.GetArtifactFilePath(guid, "firstpixelcolor"); else path = ctx.GetArtifactFilePath(AssetDatabase.GUIDToAssetPath(stringGuid), "firstpixelcolor"); if (!string.IsNullOrEmpty(path)) { var colorString = File.ReadAllText(path); ColorUtility.TryParseHtmlString(colorString, out color); } }

var mat = new Material(Shader.Find("Standard")); mat.color = color; ctx.AddObjectToAsset("main", mat); ctx.SetMainObject(mat); } }

Declaration

public string GetArtifactFilePath(string path, string fileName);

Параметры

Параметр Описание
путь Путь к ресурсу, Файл Артефакта которого должен быть зависимостью. Примечание: Хотя зависимостью является Файл Артефакта (результат импорта), который хранится в папке библиотеки, этот параметр является путем к ресурсу в папке Assets, а , а не является путем к Файл Артефакта в папке Библиотеки.
fileName Имя файла артефакта, от которого будет зависеть. См. [[AssetImportContext.GetOutputArtifactFilePath.

Возвращаемое значение

строка Путь внутри папки Библиотеки, из которой можно прочитать содержимое запрошенного Файл Артефакта.

Описание

Возвращает путь к файлу артефакта, созданному другим импортером, и добавляет зависимость к этому файлу и путь к исходному ресурсу.

В дополнение к созданию зависимости от импортируемого артефакта, эта перегрузка метода также добавляет зависимость к пути ассета. Это означает, что если вы переименуете или переместите ассет, создавший Файл артефакта в проекте, Unity повторно импортирует ассет, даже если файл артефакта не изменен. Это может быть полезно, если вы хотите реализовать функциональное соглашение об именовании в рамках обработки импорта ассета. Используйте перегрузку GUID или ArtifactKey, чтобы избежать зависимости от пути ассета, если вы этого не хотите.