Version: 2021.3

ScriptedImporterAttributeConstructor

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

参数

version 导入管线用以检测导入器脚本新版本的数字。更改此数字会触发与所列扩展名匹配的所有资源的重新导入。
exts List of file name extensions (not including the leading period character) that the scripted importer handles.
ext Single file name extension (not including the leading period character) that the scripted importer handles.
importQueueOffset 根据类型控制资源导入顺序。正值表示推迟源资源文件的处理,而负值则将它们放在导入过程比较靠前的部分。
overrideExts List of file name extensions (not including the leading period character) that the scripted importer can handle in addition to the default file name extension(s).

描述

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

Always increment a scripted importer's version number whenever the script changes. This forces Assets imported with lower version numbers to be re-imported.

If the Editor's Auto Refresh preference is enabled, editing a script outside of the editor and saving it triggers a re-import of both the script and all Assets of the corresponding type. The following example declares an importer that handles files with extension cb and cube.

using UnityEngine;
using UnityEditor.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.AssetImporters;

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

The following example declares an importer that handles files with the extension fbb and that can be used to import fbx files instead of Unity's default ModelImporter.

using UnityEngine;
using UnityEditor.AssetImporters;

[ScriptedImporter(1, new[] {"fbb"}, new[] {"fbx"})] public class CustomModelImporter : ScriptedImporter { public override void OnImportAsset(AssetImportContext ctx) { // ... } }