Unity Hierarchy 窗口自定义绘制 - hierarchyWindowItemOnGUI 指南
Unity Hierarchy 窗口自定义绘制 - hierarchyWindowItemOnGUI 指南
hierarchyWindowItemOnGUI 是 Unity 编辑器中的一个回调函数,用于在 Hierarchy 窗口中绘制自定义的 GUI 元素。通过在该回调函数中添加代码,你可以创建个性化的视觉效果,例如添加标签、图标等,以增强 Hierarchy 窗口的功能。
示例代码
以下是一个示例代码,展示了如何在 Hierarchy 窗口中为每个 GameObject 添加一个名为 'Custom' 的标签:
using UnityEngine;
using UnityEditor;
[InitializeOnLoad]
public class CustomHierarchyGUI
{
static CustomHierarchyGUI()
{
EditorApplication.hierarchyWindowItemOnGUI += HandleHierarchyWindowItemOnGUI;
}
static void HandleHierarchyWindowItemOnGUI(int instanceID, Rect selectionRect)
{
GameObject go = EditorUtility.InstanceIDToObject(instanceID) as GameObject;
if (go == null) return;
// 绘制自定义 GUI 元素
Rect rect = new Rect(selectionRect.xMax - 20, selectionRect.y, 20, selectionRect.height);
GUI.Label(rect, 'Custom', EditorStyles.miniLabel);
}
}
代码解析
-
EditorApplication.hierarchyWindowItemOnGUI += HandleHierarchyWindowItemOnGUI;:将HandleHierarchyWindowItemOnGUI函数注册到hierarchyWindowItemOnGUI回调函数中。 -
HandleHierarchyWindowItemOnGUI(int instanceID, Rect selectionRect):当 Hierarchy 窗口中的一个项目需要绘制时,该函数会被调用。instanceID:该项目的实例 ID。selectionRect:该项目在 Hierarchy 窗口中的矩形区域。
-
GUI.Label(rect, 'Custom', EditorStyles.miniLabel);:使用GUI.Label函数在指定区域rect中绘制一个标签,文本内容为 'Custom',样式为EditorStyles.miniLabel。
扩展
你可以根据自己的需求修改示例代码,实现各种自定义功能,例如:
- 为特定类型的 GameObject 添加不同的标签或图标。
- 根据 GameObject 的属性动态改变其显示。
- 添加交互功能,例如点击标签显示额外的信息。
通过利用 hierarchyWindowItemOnGUI 回调函数,你可以为 Unity 编辑器的 Hierarchy 窗口添加个性化的视觉效果和功能,提升你的开发效率。
原文地址: https://www.cveoy.top/t/topic/nVBp 著作权归作者所有。请勿转载和采集!