Объявление
public void DependsOnArtifact(string path);public void DependsOnArtifact(GUID guid);
public void DependsOnArtifact(Experimental.ArtifactKey key);
Параметры
path | Путь актива, артефакт которого должен быть зависимостью. Примечание. Хотя зависимостью является артефакт (результат импорта), который хранится в папке библиотеки, этот параметр представляет собой путь к активу в папке «Активы», а не путь к артефакту в библиотеке. папка. |
guid | Руководство зависимости артефакта. |
key | Ключ артефакта зависимости артефакта. |
Описание
Настроить зависимость артефакта от объекта.
Зависимость от артефакта — это зависимость, в которой Актив зависит от результата импорта (известного как артефакт) другого Актива. Если вы измените Ресурс, помеченный как зависимость, все Ресурсы, зависящие от него, также будут повторно импортированы (после импорта зависимости).
Примечание. Если вы укажете ресурс как зависимость, которая не существует или еще не была импортирована, зависимость все равно будет зарегистрирована. Он зарегистрирован как неимпортированный актив. При последующем импорте Ресурса все Ресурсы, зависящие от него, также будут импортированы повторно.
using UnityEngine;
using UnityEditor;
using UnityEditor.AssetImporters;
class TextureInfo : ScriptableObject
{
public int height;
}
[ScriptedImporter(1, "cube")]
public class CubeWithTextureImporter : ScriptedImporter
{
public override void OnImportAsset(AssetImportContext ctx)
{
var assetDependency = "Assets/MyTexture.png";
ctx.DependsOnArtifact(assetDependency);
var texture = AssetDatabase.LoadAssetAtPath<Texture>(assetDependency);
if (texture != null)
{
var textureInfo = ScriptableObject.CreateInstance();
textureInfo.height = texture.height;
ctx.AddObjectToAsset("TextureInfo", textureInfo);
}
}
}