Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Editor.RenderStaticPreview

Объявление

public Texture2D RenderStaticPreview(string assetPath, Object[] subAssets, int width, int height);

Параметры

assetPath Актив для работы.
subAssets Массив всех активов в assetsPath.
width Ширина создаваемой текстуры.
height Высота создаваемой текстуры.

Возвращает

Texture2D Сгенерированная текстура или ноль.

Описание

Переопределите этот метод, если вы хотите визуализировать статический предварительный просмотр.

При переопределении RenderStaticPreview можно использовать для рендеринга списка ресурсов, преобразованных в одну текстуру. Для этой функции потребуется предоставленный пользователем исходный код, который может объединять активы вместе. Размер создаваемой текстуры может быть задан предоставленными шириной и высотой.
Если возвращается null, используется встроенный значок для типа класса.

// Визуализировать предоставленную текстуру актива в миниатюру инспектора. using UnityEngine; using System.Collections; using UnityEditor; using System.IO; public class Example : ScriptableObject { public Texture2D PreviewIcon; } [CustomEditor(typeof(Example))] public class ExampleEditor : UnityEditor.Editor { public static void CreateAsset() where Example : ScriptableObject { Example asset = ScriptableObject.CreateInstance(); string path = AssetDatabase.GetAssetPath(Selection.activeObject); if (path == "") { path = "Assets"; } else if (Path.GetExtension(path) != "") { path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), ""); } string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/New " + typeof(Example).ToString() + ".asset"); AssetDatabase.CreateAsset(asset, assetPathAndName); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; } [MenuItem("Examples/RenderStaticPreview example")] public static void CreateAsset() { CreateAsset(); } public override void OnInspectorGUI() { Example e = (Example)target; EditorGUI.BeginChangeCheck(); // Example has a single arg called PreviewIcon which is a Texture2D e.PreviewIcon = (Texture2D) EditorGUILayout.ObjectField( "Thumbnail", // string e.PreviewIcon, // Texture2D typeof(Texture2D), // Texture2D object, of course false // allowSceneObjects ); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(e); AssetDatabase.SaveAssets(); Repaint(); } } public override Texture2D RenderStaticPreview(string assetPath, Object[] subAssets, int width, int height) { Example example = (Example)target; if (example == null || example.PreviewIcon == null) return null; // example.PreviewIcon must be a supported format: ARGB32, RGBA32, RGB24, // Alpha8 or one of float formats Texture2D tex = new Texture2D (width, height); EditorUtility.CopySerialized (example.PreviewIcon, tex); return tex; } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3