版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Rhett_Yuan/article/details/79701683
在Unity中,为了更方便的我们操作Hierarchy中的节点,以及后面查看ui节点在那个图集中之类的,通常会对Hierarchy进行扩展,看代码:主要是监听了EditorApplication的hierarchyWindowItemOnGUI事件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
[InitializeOnLoad]
public class HierarchyExtension
{
/// <summary>
/// 静态构造
/// </summary>
static HierarchyExtension()
{
EditorApplication.hierarchyWindowItemOnGUI += DrawHierarchyIcon;
}
// 绘制icon方法
private static void DrawHierarchyIcon(int instanceID, Rect selectionRect)
{
// 设置icon的位置与尺寸(Hierarchy窗口的左上角是起点)
Rect rect = new Rect(selectionRect.x + selectionRect.width - 16f, selectionRect.y, 16f, 16f);
GameObject obj = EditorUtility.InstanceIDToObject (instanceID) as GameObject;
if (obj == null)
{
return;
}
obj.SetActive (GUI.Toggle(rect, obj.activeSelf, ""));
/**
//显示图片名字,扩充图集检测
Image image = obj.GetComponent<Image>();
if (image && image.sprite != null)
{
GUIContent content = new GUIContent(image.sprite.name);
GUIStyle style = new GUIStyle();
Vector2 size = style.CalcSize(content);
//此处可以设置一些颜色等之类的信息
GUI.Label(new Rect(selectionRect.x+selectionRect.width-20f-size.x, selectionRect.y, size.x + 10, 16f), content);
}*/
}
}