Unity编辑器之Hierarchy扩展显示隐藏节点以及图集显示

版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
		}*/
	}
}

猜你喜欢

转载自blog.csdn.net/Rhett_Yuan/article/details/79701683