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

EditorApplication.RepaintHierarchyWindow

Declaration

public static void RepaintHierarchyWindow();

Описание

Может использоваться для обеспечения перекраски HierarchyWindow.

Используйте EditorApplication.RepaintHierarchyWindow для обновления окна Hierarchy, когда изменения в GameObjects, такие как имена, значки или метки, не отражаются автоматически в окне Hierarchy. EditorApplication.RepaintHierarchyWindow могут быть полезны, когда они используются с пользовательскими инструментами Редактора или расширениями, которые динамически изменяют свойства GameObject. Избегайте частых вызовов в контексте, критическом для производительности, поскольку EditorApplication.RepaintHierarchyWindow могут негативно повлиять на производительность Редактора. Этот метод должен использоваться в Unity Editor и требует пространства имен UnityEditor. Обычно его объединяют с EditorApplication.hierarchyChanged или пользовательскими событиями для обеспечения последовательности UI. Неприменимо во время выполнения, поскольку это только редактор. Дополнительные ресурсы: HierarchyWindowItemCallback, EditorApplication.hierarchyWindowItemOnGUI.

                using UnityEditor;
                using UnityEngine;

[InitializeOnLoad] public class CustomHierarchyStyling { static CustomHierarchyStyling() { // Register a callback to draw custom icons in the Hierarchy. EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyGUI; // Repaint the Hierarchy window when the tag changes to reflect icon updates EditorApplication.hierarchyChanged += () => EditorApplication.RepaintHierarchyWindow(); }

static void OnHierarchyGUI(int instanceID, Rect selectionRect) { GameObject obj = EditorUtility.InstanceIDToObject(instanceID) as GameObject;

//Add a tag named "Special" to the GameObject to display the custom icon if (obj != null && obj.CompareTag("Special")) { // Draw a custom icon on the left side of the GameObject in the Hierarchy Rect iconRect = new Rect(selectionRect.x - 20, selectionRect.y, 18, 18); GUI.Label(iconRect, EditorGUIUtility.IconContent("d_Favorite")); } } }