位置上的Unity Inspector文本标签

时间:2018-07-08 09:38:25

标签: user-interface unity3d

我正在尝试梳理我的检查器,但是在检查器中的指定位置绘制文本时遇到了很多麻烦。我在下面的样本检查器上绘制了一个彩色矩形,并希望在其上方绘制文本(如标签)。

enter image description here

如何在上面显示的“ X”位置绘制文本/标签?我不确定从哪里开始。任何帮助将不胜感激。


实施答案:

enter image description here

public override void OnGUI(Rect position)
{
    GUIStyle myStyle = new GUIStyle();

    myStyle.fontSize = 16;
    myStyle.alignment = TextAnchor.UpperLeft;
    myStyle.padding.top = 5;
    myStyle.padding.left = -3;
    myStyle.fontStyle = FontStyle.Bold;

    Color32 color = colorSpacer.drawColor; // Custom Property Attribute
    EditorGUI.DrawRect(new Rect(position.x-11, position.y, position.width+11, position.height-2), color);
    Rect r = GUILayoutUtility.GetLastRect();
    EditorGUI.LabelField(r, "Section Header", myStyle);
}

1 个答案:

答案 0 :(得分:1)

如果要使用EditorGUI绘制自定义编辑器,则可以使用LabelFieldPrefixLabelSelectableLabelHandlePrefixLabel方法,具体取决于您的具体情况。期望的行为。

如果使用EditorGUILayout进行绘制,则这些方法等效。

此外,HeaderAtribute装饰器无需自定义编辑器即可完成此操作。