我怎样才能颜色在Unity编辑器PrefixLabel?(How can I color a Pre

2019-10-29 05:48发布

我的问题就是这么简单:我只是想能够使用EditorGUILayout.PrefixLabel但改变文字颜色为白色。

但到目前为止,我没有运气。 我可以easely改变所有其他元素的颜色,而是为PrefixLabel没有什么工作。 我想坚持PrefixLabel因为它简单地说就是更少的代码有精心布置的所有的标签和领域。

一个fiew事情我试过到目前为止:

使用EditorStyles.label.normal.textColor

var old = EditorStyles.label.normal.textColor;
EditorStyles.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text");
EditorStyles.label.normal.textColor = old;

另外施加new GUIStyle(EditorStyles.label)

var old = EditorStyles.label.normal.textColor;
EditorStyles.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text", new GUIStyle(EditorStyles.label));
EditorStyles.label.normal.textColor = old;

直接使用EditorStyles.whiteLabel

EditorGUILayout.PrefixLabel("label Text", new GUIStyle(EditorStyles.whiteLabel));

使用GUI.contentColor

var old = GUI.contentColor;
EditorStyles.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text");
GUI.contentColor = old;

使用GUI.skin.label.normal.textColor

var old = GUI.skin.label.normal.textColor;
GUI.skin.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text");
GUI.skin.label.normal.textColor = old;

使用new GUIStyle

whiteTextStyle = new GUIStyle(EditorStyles.label) 
{ 
    normal = { 
        textColor = Color.white;
    } 
};
EditorGUILayout.PrefixLabel("label Text", whiteTextStyle);

任何暗示还有什么我能试试吗?

Answer 1:

EditorStyles.label.normal.textColor就已经工作,但我有颜色重置回EditorGUILayout.XYField因为PrefixLabel没有drawed直到现场通话。

var old = EditorStyles.label.normal.textColor;
EditorStyles.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text");

EditorGUILayout.IntField(5);

EditorStyles.label.normal.textColor = old;


文章来源: How can I color a PrefixLabel in Unity Editor?