2

我正在写一个DecoratorDrawer允许对检查器中的任何字段进行长而有意义的描述。我的目标是看起来像这样:( 在此处输入图像描述
假装在 gimp 中)

那就是想要更轻的背景,圆形边框等。

编辑器中有一些地方使用了这种风格,例如光照贴图窗口中有两个实例: 选择了小部件外观的光照贴图窗口

我不能使用EditorGUI.HelpBox,因为:

  1. 我无法可靠地测量HelpBox. 请注意,抽屉禁止使用EditorGUILayout.

  2. 没有富文本或其他方式来设置内容样式

  3. 不允许使用图像 - 我希望稍后将它们作为选项

使用HelpBox它看起来像这样:

在此处输入图像描述


我的问题是:是否有硬编码GUIStyleUnityEditor/UnityEditorInternal方法允许以这种样式显示信息?如果没有,关于如何伪造这种风格的任何想法?如何制作圆角?请记住,有一个看起来不同的专业皮肤,所以如果该解决方案适用于两种皮肤,那就太好了。

4

2 回答 2

6

您可以通过从GUI.skin.

就像是

EditorGUILayout.TextArea("This is my text", GUI.skin.GetStyle("HelpBox"));

会得到你

请注意,这仍然不允许您拥有富文本。默认情况下禁用。要启用它,您可以执行以下操作

GUIStyle myStyle = GUI.skin.GetStyle("HelpBox");
myStyle.richText = true;

EditorGUILayout.TextArea("This is my text <b>AND IT IS BOLD</b>", myStyle);

这将导致

于 2014-07-26T04:25:22.617 回答
2

我发现的最好方法是将 EditorStyles.helpBox 传递给构造函数。

style = new GUIStyle(EditorStyles.helpBox);
style.richText = true;

这样,您不会通过更改样式来影响 EditorStyles.helpBox。

于 2019-11-07T16:46:57.490 回答