Experimental: this API is experimental and might be changed or removed in the future.

ScriptedImporterAttributeConstructor

切换到手册
public ScriptedImporterAttribute (int version, string[] exts);
public ScriptedImporterAttribute (int version, string ext);
public ScriptedImporterAttribute (int version, string[] exts, int importQueueOffset);
public ScriptedImporterAttribute (int version, string ext, int importQueueOffset);

参数

version导入管线用以检测导入器脚本新版本的数字。更改此数字会触发与所列扩展名匹配的所有资源的重新导入。
exts脚本化导入器处理的文件扩展名列表(不带前导句点字符)。
ext脚本化导入器处理的单个文件扩展名(不带前导句点字符)。
importQueueOffset根据类型控制资源导入顺序。正值表示推迟源资源文件的处理,而负值则将它们放在导入过程比较靠前的部分。

描述

使用 ScriptedImporter 属性可向 Unity 的资源导入管线注册派生自 ScriptedImporter 的自定义资源导入器。

最佳做法是每次脚本更改时递增脚本化导入器的版本号。这会强制重新导入用较低版本号导入的资源。

如果 Unity Editor 设置“Auto-Update”设置为启用,在编辑器外部编辑并保存脚本会触发脚本和对应类型的所有资源的重新导入。

下面的示例声明一个导入器,它处理具有 cbcube 扩展名的文件。

using UnityEngine;
using UnityEditor.Experimental.AssetImporters;

[ScriptedImporter(1, new[] {"cb", "cube"})] public class CubeImporter : ScriptedImporter { public override void OnImportAsset(AssetImportContext ctx) { // ... } }

下面的示例声明一个导入器,它处理具有 sphere 扩展名的文件。它的 importQueueOffset 参数设置为 10,强制在所有其他 importQueueOffset 小于 10 的脚本化导入器之后导入具有 sphere 扩展名的资源。

using UnityEngine;
using UnityEditor.Experimental.AssetImporters;

[ScriptedImporter(1, "sphere", 10)] public class SphereImporter : ScriptedImporter { public override void OnImportAsset(AssetImportContext ctx) { // ... } }