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 窗口添加个性化的视觉效果和功能,提升你的开发效率。

Unity Hierarchy 窗口自定义绘制 - hierarchyWindowItemOnGUI 指南

原文地址: https://www.cveoy.top/t/topic/nVBp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录