我正在写一个DecoratorDrawer
,它允许为检查员中的任何字段提供长而有意义的描述。我的目标是这样的:
(伪装成gimp)
这需要更浅的背景,圆形边框等。
编辑器中有些地方使用此样式,例如,光照贴图窗口中有两个实例:
我无法使用EditorGUI.HelpBox
,因为:
我无法可靠地测量HelpBox
的内容高度。请注意,抽屉禁止使用EditorGUILayout
。
没有富文本或其他方式来设置内容的样式
图片未被授权 - 我希望稍后将其作为选项
使用HelpBox
看起来像这样:
我的问题是:是否有硬编码的GUIStyle
或UnityEditor
/ UnityEditorInternal
方法允许以此格式显示信息?如果不是,任何关于如何伪造这种风格的想法?如何制作圆角?请记住,有一个专业皮肤看起来不同,所以如果解决方案适用于两个皮肤,它会很好。
答案 0 :(得分:5)
您可以通过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);
将导致
答案 1 :(得分:1)
我发现的最好方法是将EditorStyles.helpBox传递给构造函数。
style = new GUIStyle(EditorStyles.helpBox);
style.richText = true;
这样,您就不会通过更改样式来影响EditorStyles.helpBox。