Объявление
public void DependsOnSourceAsset(string path);public void DependsOnSourceAsset(GUID guid);
Параметры
path | Путь исходной зависимости. |
guid | Руководство зависимости исходного актива. |
Описание
Позволяет указать, что ресурс напрямую зависит от исходного файла другого объекта (в отличие от результата импорта другого объекта).
Когда вы указываете, что один актив зависит от другого (например, актив A зависит от актива B), это означает, что если этот актив B будет изменен, не только актив B будет повторно импортирован, но и актив A будет повторно импортирован.
Примечание. Этот метод устанавливает зависимость от самого исходного файла объекта, а не от результата импорта (артефакта) объекта. Если вы хотите настроить зависимость от результата импорта актива, используйте DependsOnArtifact.
using UnityEngine;
using UnityEditor;
using UnityEditor.AssetImporters;
using System.IO;
[ScriptedImporter(1, "cube")]
public class CubeWithTextureImporter : ScriptedImporter
{
public override void OnImportAsset(AssetImportContext ctx)
{
var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
ctx.AddObjectToAsset("main obj", cube);
ctx.SetMainObject(cube);
var material = new Material(Shader.Find("Standard"));
var lines = File.ReadAllLines(ctx.assetPath);
var texturePath = lines[0];
var texture = AssetDatabase.LoadAssetAtPath<Texture>(texturePath);
if (texture != null)
{
material.SetTexture("_MainTex", texture);
// add a dependency on the texture, such that if it changes or moves, we reimport the asset
ctx.DependsOnSourceAsset(texturePath);
}
ctx.AddObjectToAsset("MaterialWithTexture", material);
}
}