【Unity工具】 Hierarchy面板自定义工具扩展

前言

在Unity项目开发过程中,当前场景的资源会在Hierarchy面板中进行管理,我们会通过在此面板中选择对应的GameObject进行操作,例如激活隐藏等,我们需要选中一个物体在Inspector面板上进行激活和隐藏或者查看当前物体的详细信息,有时需要多此操作并且不好分辨,这时我们可以通过扩展Hierarchy面板实现一些使用的功能来满足自己的需求。


一、效果演示(编辑器扩展—Hierarchy面板扩展)

在这里插入图片描述

二、实现方式

简言

话不多说了,直接上代码,将此脚本放在名为Editor的文件夹目录下即可,代码为范例类,大家可以根据自己的需求自行修改和探索。

代码

演示效果同款代码(示例):

using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
using UnityEngine.UI;
using TMPro;
using UnityEngine.EventSystems;

/// <summary>
/// Unity Hierarchy窗口增强工具
/// 用于在Hierarchy窗口中显示额外的组件图标和控制功能
/// [InitializeOnLoad]特性确保编辑器加载时自动初始化此类
/// </summary>
[InitializeOnLoad]
public class EnhancedHierarchy
{
   
   
    // 缓存图标纹理
    private static Dictionary<string, Texture> iconCache = new();

    // 自定义样式
    private static GUIStyle buttonStyle;

    /// <summary>
    /// 静态构造函数,用于在编辑器加载时初始化
    /// </summary>
    static EnhancedHierarchy()
    {
   
   
        EditorApplication.hierarchyWindowItemOnGUI += HierarchyWindowItemOnGUI;
    }

    /// <summary>
    /// 确保样式已初始化
    /// </summary>
    private static void EnsureStylesInitialized()
    {
   
   
        buttonStyle ??= new GUIStyle(EditorStyles.miniButton)
        {
   
   
            padding = new RectOffset(2, 2, 0, 0),
            fontSize = 10,
            alignment = TextAnchor.MiddleCenter
        };
    }

    /// <summary>
    /// 在Hierarchy窗口中绘制每个项目
    /// </summary>
    /// <param name="instanceID">实例ID</param>
    /// <param name="selectionRect">选择矩形</param>
    private static void HierarchyWindowItemOnGUI(int instanceID, Rect selectionRect)
    {
   
   
        EnsureStylesInitialized();

        // 获取当前选中的GameObject
        GameObject go 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sparkle Star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值