版本:Unity 6 (6000.0)
语言英语
  • C#

AssetImportContext.DependsOnArtifact

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。尽管我们不能接受所有提交,但我们会阅读用户建议的每项更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,无法提交您建议的更改。请在几分钟后重试。感谢您花时间帮助我们改进 Unity 文档的质量。

关闭

取消

声明

public void DependsOnArtifact(string path);

声明

public void DependsOnArtifact(GUID guid);

声明

public void DependsOnArtifact(Experimental.ArtifactKey key);

参数

path 应将其实例视为依赖项的 Asset 的路径。注意:尽管依赖项是存储在 library 文件夹中的实例(导入结果),但此参数是 Assets 文件夹中 Asset 的路径,而不是 Library 文件夹中实例的路径。
guid 实例依赖项的 guid。
key 实例依赖项的实例密钥。

说明

为 asset 设置实例依赖项。

实例依赖项是 Asset 依赖于另一个 Asset 的导入结果(称为实例)的依赖项。如果您更改标记为依赖项的 Asset,则所有依赖它的 Asset 在(该依赖项已导入后)也会重新导入。

注意:如果您指定一个不存在或尚未导入的 Asset 作为依赖项,该依赖项仍将被注册。它将作为未导入的 Asset 注册。当稍后导入该 Asset 时,所有依赖它的 Asset 都会重新导入。

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>(); textureInfo.height = texture.height; ctx.AddObjectToAsset("TextureInfo", textureInfo); } } }