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

AssetDatabase.GetCachedIcon

Declaration

public static Texture GetCachedIcon(string path);

Параметры

Параметр Описание
путь Путь к ресурсу.

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

Текстура Значок общего типа для нетекстурных ассетов и небольшой миниатюрный изображение с правильными пропорциями для текстур, или null, если ассет не имеет значка.

Описание

Получает кэшированный значок для ассета в указанном пути, без загрузки ассета. Это значок, отображаемый в списке представления окна Project.

Значок разрешается из базы данных ассетов и отражает различия между ассетами (пользовательские значки MonoScript, открытые/закрытые папки, тип префаб, значки, назначенные импортером). Для текстур он возвращает небольшой миниатюрный изображение с правильными пропорциями, созданный во время импорта (правильный даже для обычных карт), а не необработанную текстуру. Это более эффективно, чем AssetPreview.GetAssetPreview и всегда доступно, но это поиск значка, а не живой рендеринг. Для ассетов без текстуры, таких как материалы или модели, он возвращает общий тип значка, а не рендированный предварительный просмотр.

using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

public class AssetDatabaseExamples : MonoBehaviour { [MenuItem("AssetDatabase/Get Cached Icon Example")] public static void GetCachedIconExample() { var textureList = new List<Texture>(); //Get asset icons and put them in a list foreach (var guid in AssetDatabase.FindAssets("", new []{"Assets"})) { var path = AssetDatabase.GUIDToAssetPath(guid); textureList.Add(AssetDatabase.GetCachedIcon(path)); }

//Set Material textures to the asset icons var textureNo = 0; for (var i = 0; i < 10; i++) { var path = $"Assets/Materials/GroundMaterial{i}.mat"; var asset = (Material)AssetDatabase.LoadMainAssetAtPath(path); if (textureNo >= textureList.Count) textureNo = 0; asset.mainTexture = textureList[textureNo++]; } } }