Unity 6.3
0 онлайн 75 гостей 3 в системе
Вход

AssetImportContext.GetReferenceToAssetMainObject

Declaration

public Object GetReferenceToAssetMainObject(string path);

Параметры

Параметр Описание
путь Расположение ассета, из которого будет получена ссылка.

Возвращаемое значение

Объект Возвращает экземпляр основного ассета, если он существует и уже импортирован, в противном случае возвращает null.

Описание

Возвращает основной ассет из указанного пути (если он существует) и автоматически добавляет зависимость к его пути, если он является основным типом ассета.

Вызов этого метода во время импорта приведет к повторному импорту текущего импортируемого ассета, если: — ассет добавляется в указанном пути, — тип ассета в указанном пути изменяется, — существующий ассет в указанном пути удаляется или перемещается.

Если возвращаемый ассет используется не только для ссылки, но и для чтения его содержания и использования его значений, AssetImportContext.DependsOnArtifact или AssetImportContext.DependsOnSourceAsset следует использовать вместо этого.

Например, этот метод следует использовать для ссылки на Тексты, добавленные или созданные во время импорта. Поскольку мы устанавливаем ссылку только на текстуру из Материала, не нужно повторно импортировать текстуру, когда она изменяется, только когда она добавляется или удаляется из проекта.

using UnityEngine;
using UnityEditor.AssetImporters;

[ScriptedImporter(1, "customMaterial")] public class MaterialCreatorExample : ScriptedImporter { public override void OnImportAsset(AssetImportContext ctx) { var mat = new Material(Shader.Find("Standard")); var texturePath = $"{System.IO.Path.GetDirectoryName(ctx.assetPath)}/{System.IO.Path.GetFileNameWithoutExtension(ctx.assetPath)}_Diffuse.png"; mat.mainTexture = ctx.GetReferenceToAssetMainObject(texturePath) as Texture2D; ctx.AddObjectToAsset("mat", mat); } }