Unity編輯器Hierarchy擴展中文教程——Chinar圖文詳解

Chinar blog www.chinar.xin

Hierarchy 編輯器擴展詳細說明


本文提供全流程,中文翻譯

助力快速掌握編輯器對 Unity Hierarchy 的擴展、及效果展示

爲初學者節省寶貴的時間,避免採坑!

Chinar —— 心分享、心創新!

我們的初衷是將一種簡單的生活方式帶給世人

使有限時間 具備無限可能

Chinar 教程效果:
在這裏插入圖片描述



全文高清圖片,點擊即可放大觀看 (很多人竟然不知道)


Intro —— 簡介


爲了開發的便利性,我們經常要使用的是 Hierarchy 右鍵菜單,操控不同的遊戲對象

那麼爲了方便,我們就可對現有的 Hierarchy 右鍵菜單進行擴展
舉個例子
在這裏插入圖片描述
我們可根據選擇對象條件進行重製,自行定義功能和排序

下圖是對預設物進行操作時,彈出新菜單

在這裏插入圖片描述


2

HierarchyWindowItemOnGUI —— 新建 Hierarchy 右鍵菜單


我們通過委託 HierarchyWindowItemOnGUI 即可將右鍵重繪新右鍵菜單

右鍵 Hierarchy 時,菜單顯示爲我們指定的的 菜單項
在這裏插入圖片描述
這裏其實就是將右鍵菜單項,指向我們已經創建好的 菜單欄的某一項列表

可根據不同條件,指向不同菜單

下面例子,當點擊對象爲預設物時,可直接打開預設物

舉個例子

僞代碼

using UnityEditor;
using UnityEngine;


/// <summary>
/// Chinar編輯器 增強層次面板
/// </summary>
public class ChinarEditorHierarchy
{
    [MenuItem("Hierarchy/Chinar/打開預設", true, -1)]
    static bool 打開預設Alternative()
    {
        return Selection.objects.Length == 1;
    }


    [MenuItem("Hierarchy/Chinar/打開預設", false, 0)]
    static void 打開預設()
    {
        if (Selection.activeGameObject) AssetDatabase.OpenAsset(Resources.Load("Prefab/ModelPrefabs/" + Selection.activeGameObject.name));
    }


    [InitializeOnLoadMethod]
    static void StartInitializeOnLoadMethod()
    {
        EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyGUI;
    }


    static void OnHierarchyGUI(int instanceID, Rect selectionRect)
    {
        if (Event.current != null && selectionRect.Contains(Event.current.mousePosition) && Event.current.button == 1 && Event.current.type <= EventType.MouseUp)
        {
            GameObject selectedGameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject;
            //這裏寫 彈出新右鍵菜單的條件
            //爲了便於理解,這裏我做的是 名字包含"Cube"且選擇對象數量爲 1 
            if (selectedGameObject != null && selectedGameObject.name.Contains("Cube") && 打開預設Alternative())
            {
                Vector2 mousePosition = Event.current.mousePosition;
                EditorUtility.DisplayPopupMenu(new Rect(mousePosition.x, mousePosition.y, 0, 0), "Hierarchy/Chinar", null);
                Event.current.Use();
            }
        }
        }
    }
}

支持

May Be —— 開發者,總有一天要做的事!


擁有自己的服務器,無需再找攻略

Chinar 提供一站式《零》基礎教程

使有限時間 具備無限可能!

先點擊領取 —— 阿里全產品優惠券 (享受最低優惠)


Chinar 免費服務器、建站教程全攻略!( Chinar Blog )


Chinar

END

本博客爲非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均爲本人所擁有,本人保留所有法定權利。違者必究

對於需要複製、轉載、鏈接和傳播博客文章或內容的,請及時和本博主進行聯繫,留言,Email: [email protected]

對於經本博主明確授權和許可使用文章及內容的,使用時請註明文章或內容出處並註明網址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章