在绘制 Inspector 窗口的标题时引发的事件,在绘制默认标题项后触发。
向此事件添加事件处理程序,以便为传递给事件处理程序方法的 Editor 在标题中绘制其他项目。
以下示例脚本显示资产的 GUID 作为可复制标签,位于标题中,前提是检查的对象是持久资产而不是场景对象。将此示例脚本复制到名为 EditorHeaderGUID.cs 的文件中,并将其放在名为 Editor 的文件夹中。
Inspector 标题中添加了自定义 GUID 控件。
using UnityEditor;
[InitializeOnLoadAttribute] static class EditorHeaderGUID { static EditorHeaderGUID() { Editor.finishedDefaultHeaderGUI += DisplayGUIDIfPersistent; }
static void DisplayGUIDIfPersistent(Editor editor) { if (!EditorUtility.IsPersistent(editor.target)) return;
var guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(editor.target)); var totalRect = EditorGUILayout.GetControlRect(); var controlRect = EditorGUI.PrefixLabel(totalRect, EditorGUIUtility.TrTempContent("GUID")); if (editor.targets.Length > 1) EditorGUI.LabelField(controlRect, EditorGUIUtility.TrTempContent("[Multiple objects selected]")); else EditorGUI.SelectableLabel(controlRect, guid); } }