path | 源依赖项的路径。 |
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); } }