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上有很多更详细直观的教程,建议有条件有需要的同学看一遍。