Объявление
public static void SetImporterOverride(string path);Параметры
path | Путь актива. |
Описание
Задает конкретного импортера, который будет использоваться для объекта.
С помощью этой функции можно установить только средства импорта по сценарию с параметром атрибута AutoSelect = false.
using UnityEngine;
using UnityEditor;
using UnityEditor.AssetImporters;
using UnityEngine.Assertions;
public class AssetDatabaseExamples : MonoBehaviour
{
[MenuItem("AssetDatabase/Example Importer Actions")]
static void AllImporterActions()
{
//This sets CubeImporter to be used for the asset
AssetDatabase.SetImporterOverride("Assets/CompanionCube.cube");
Debug.Log("New importer: " + AssetDatabase.GetImporterOverride("Assets/CompanionCube.cube"));
//This clears importer override and sets it to null
AssetDatabase.ClearImporterOverride("Assets/CompanionCube.cube");
Assert.IsNull(AssetDatabase.GetImporterOverride("Assets/CompanionCube.cube"));
}
}
//Это пример импортера
[ScriptedImporter(1, "cube")]
public class CubeImporter : ScriptedImporter
{
public float m_Scale = 1;
public override void OnImportAsset(AssetImportContext ctx)
{
var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
var position = new Vector3(0, 0, 0);
cube.transform.position = position;
cube.transform.localScale = new Vector3(m_Scale, m_Scale, m_Scale);
// 'cube' is a a GameObject and will be automatically converted into a prefab
ctx.AddObjectToAsset("main obj", cube);
ctx.SetMainObject(cube);
var material = new Material(Shader.Find("Standard"));
material.color = Color.red;
ctx.AddObjectToAsset("my Material", material);
var tempMesh = new Mesh();
}
}