AssetImportContext.DependsOnSourceAsset
Declaration
public void DependsOnSourceAsset(string path);public void DependsOnSourceAsset(GUID 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); } }