扩展Hierarchy
Hierarchy视图中出现的都是游戏对象,这些对象之间同样具有一定的关联关系。我们可以用树状结构来表示游戏对象之间复杂的父子关系。Hierarchy视图中的游戏对象会通过摄像机最终投影在发布的游戏中。
拓展菜单
using UnityEditor;
using UnityEngine;
public class MyCreate
{
[MenuItem("GameObject/My Create/Cube", false, 0)]
static void CreateCube()
{
GameObject.CreatePrimitive(PrimitiveType.Cube);
}
}
拓展布局
选择不同的游戏对象后,在右侧可根据EditorGUI拓展出一组按钮,点击Unity图标按钮后,在Console窗口中输入这个游戏对象。它的工作原理就是监听EditorApplication.hierarchyWindowItemOnGuI渲染回调。
using UnityEditor;
using UnityEngine;
public class MyCreate : Editor
{
[InitializeOnLoadMethod]
private static void InitializeOnLoadMethod()
{
EditorApplication.hierarchyWindowItemOnGUI = delegate(int id, Rect rect)
{
if (Selection.activeObject && id == Selection.activeGameObject.GetInstanceID())
{
float width = 50f;
float height = 15f;
rect.x += (rect.width - width);
rect.width = width;
rect.height = height;
if (GUI.Button(rect, "点击"))
{
Debug.LogFormat("click : {0}", Selection.activeObject.name);
}
}
};
}
}