Unity 的官方文檔非常詳細,但是不是所有人學習Unity都是從頭看到尾看文檔過來的。 我最近剛接觸Unity,最近想給編輯器擴展一些功能,比如點擊Inspector面板,在Project窗口中高亮選擇Prefab或者Script。 這麼小小的一個需求,查遍了中文互聯網,不得其果。大家要麼在CSDN上貼一些零碎的、沒有格式化的代碼,要麼互相複製粘貼。結果不言而喻。 看外網,似乎大家提到了一些代碼,但是Unity論壇上的人都是高手,作爲一個新手看到了代碼都不知道放在哪,怎麼用,非常苦惱。 今天我把自己折騰了幾個小時的一點小代碼貼上,作爲記錄。如果大家對於編輯器擴展有大量需求,建議還是系統地學習一下官方的教程,不要像我,只求快,結果花費的時間更多。
擴展代碼需要放到Editor文件夾下 這個Editor文件夾你可以建到任意的地方,我放到了Assets/Scripts/Editor下面,在其中創建一個C#文件,命名隨意。
將以下代碼粘貼進文件,保存,即可在Inspect面板點擊掛載腳本時高亮腳本。
1using UnityEditor; 2using UnityEditor.UIElements; 3using UnityEngine; 4using UnityEngine.UIElements; 5 6 7[CustomEditor(typeof(MonoBehaviour), true)] 8public class HighlightItem : Editor { 9 public override VisualElement CreateInspectorGUI() { 10 var root = new VisualElement(); 11 InspectorElement.FillDefaultInspector(root, serializedObject, this); 12 root.Add(new Label("點擊以高亮")); 13 root.RegisterCallback<ClickEvent>(Highlight); 14 15 return root; 16 } 17 18 private void Highlight(ClickEvent evt) { 19 var script = MonoScript.FromMonoBehaviour((MonoBehaviour)target); 20 21 UnityEditor.EditorGUIUtility.PingObject(script); 22 //UnityEditor.Selection.activeObject = script; 23 } 24}
當然這個功能Unity自帶了,這個例子只是用來給像我這樣完全沒有接觸過Unity的同學演示製作一個簡單的擴展腳本的步驟。 Youtube上有很多更詳細直觀的教程,建議有條件有需要的同學看一遍。