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

AssetImportContext.GetArtifactFilePath

建议更改

成功!

感谢帮助我们提高 Unity 文档质量。尽管无法接受所有提交,但我们会阅读用户建议的每项更改并进行必要的更新。

关闭

提交失败

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

关闭

取消

声明

public string GetArtifactFilePath(GUID guid, string fileName);

声明

public string GetArtifactFilePath(Experimental.ArtifactKey key, string fileName);

参数

guid Artifact 文件依赖项的 guid。
key Artifact 文件依赖项的 Artifact 密钥。
fileName 要依赖的 Artifact 文件的名称。请参见 [[AssetImportContext.GetOutputArtifactFilePath。

返回值

string 从中你可以读取请求的 Artifact 文件内容的 Library 文件夹内的路径。

描述

返回由另一个导入器创建的 Artifact 文件的路径,并向该文件添加依赖项。

此方法必须与 AssetImportContext.GetOutputArtifactFilePath 结合使用。另一个导入器创建 Artifact 文件后,使用此方法将返回此 Artifact 文件路径并向其添加依赖项。然后,就可以读取此 Artifact 文件的内容来生成导入结果。以下示例展示了 ScriptedImporter 如何生成材质,并使用 AssetImportContext.GetOutputArtifactFilePath 中的代码示例存储在 Artifact 文件中的第一个像素颜色来设置基本颜色。注意:虽然对 AssetImportContext.GetOutputArtifactFilePath 创建的 Artifact 文件数量没有限制,但只能依赖单个资源导入创建的第一个 32 个 Artifact 文件。

using System;
using System.IO;
using UnityEditor;
using UnityEditor.AssetImporters;
using UnityEngine;

[ScriptedImporter(1, "pixelMat", 1, AllowCaching = true)] public class MaterialFromFirstPixel : ScriptedImporter { public LazyLoadReference<Texture2D> m_Texture;

public override void OnImportAsset(AssetImportContext ctx) { var color = Color.magenta; if (AssetDatabase.TryGetGUIDAndLocalFileIdentifier(m_Texture, out var stringGuid, out var id)) { string path = string.Empty; if (GUID.TryParse(stringGuid, out var guid)) path = ctx.GetArtifactFilePath(guid, "firstpixelcolor"); else path = ctx.GetArtifactFilePath(AssetDatabase.GUIDToAssetPath(stringGuid), "firstpixelcolor"); if (!string.IsNullOrEmpty(path)) { var colorString = File.ReadAllText(path); ColorUtility.TryParseHtmlString(colorString, out color); } }

var mat = new Material(Shader.Find("Standard")); mat.color = color; ctx.AddObjectToAsset("main", mat); ctx.SetMainObject(mat); } }

声明

public string GetArtifactFilePath(string path, string fileName);

参数

path 其 Artifact 文件应该作为依赖项的资源的路径。注意:尽管依赖项是存储在 library 文件夹中的 Artifact 文件(导入结果),此参数却是 Assets 文件夹中资源的路径,而不是 Library 文件夹中 Artifact 文件的路径。
fileName 要依赖的 Artifact 文件的名称。请参见 [[AssetImportContext.GetOutputArtifactFilePath。

返回值

string 从中你可以读取请求的 Artifact 文件内容的 Library 文件夹内的路径。

描述

返回其他导入程序创建的文件的路径,并为该文件和源资源路径添加一个依赖关系。

除了对导入文件创建依赖项外,此方法重载还将添加对资源路径的依赖项。这意味着如果你重命名或移动项目中创建文件的文件的文件,Unity 将重新导入文件,即使文件文件未更改。如果你想在资源导入处理中实现功能性命名约定,这会很有用。如果你不想使用这个,则使用 GUID 或 ArtifactKey 重载来避免依赖资源路径。