版本: Unity 6 (6000.0)
语言English
  • C#

Editor.finishedDefaultHeaderGUI

建议修改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个修改建议,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

描述

在绘制 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); } }