首先,在Project窗口创建名为"Editer"的文件夹,用于存放unity扩展编辑器的代码。
在Hierarchy窗口右键的菜单 与 GameObject菜单 有部分重复。
添加一个菜单项
效果:
代码:
using UnityEditor;
using UnityEngine;
public class Hierarchy : MonoBehaviour
{
//如果不显示将优先级设置为0
//[UnityEditor.MenuItem("GameObject/Test2", false, 0)]
[UnityEditor.MenuItem("GameObject/Test2")]
static void Test2()
{
Debug.Log(" test project test2 ");
}
}
添加按钮-删除
效果:
代码:
using UnityEditor;
using UnityEngine;
public class Hierarchy : MonoBehaviour
{
[InitializeOnLoadMethod]
static void InitializeOnLoad()
{
//实例的ID,当前选择物体的rect(position)
EditorApplication.hierarchyWindowItemOnGUI += (instanceID, rect) =>
{
//选中一个object,并且 实例的ID = 选中的ID
if (Selection.activeObject != null && instanceID == Selection.activeObject.GetInstanceID())
{
rect.x = rect.width + 10;//按钮的位置
rect.width = 50;//按钮的宽度
if (GUI.Button(rect, "del"))
{
GameObject.DestroyImmediate(Selection.activeObject);
}
}
};
}
}