我的问题很简单:我只想使用EditorGUILayout.PrefixLabel
,但将文本颜色更改为白色。
到目前为止我尝试过的一些事情:
var old = EditorStyles.label.normal.textColor;
EditorStyles.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text");
EditorStyles.label.normal.textColor = old;
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;
EditorGUILayout.PrefixLabel("label Text", new GUIStyle(EditorStyles.whiteLabel));
var old = GUI.contentColor;
EditorStyles.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text");
GUI.contentColor = old;
var old = GUI.skin.label.normal.textColor;
GUI.skin.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text");
GUI.skin.label.normal.textColor = old;
whiteTextStyle= new GUIStyle(EditorStyles.label) {
normal = {
textColor = TEXT_COLOR_SELECTED
}
};
EditorGUILayout.PrefixLabel("label Text", whiteTextStyle);
但是到目前为止,我还没有运气。
我可以轻松更改所有其他元素的颜色,但是对于PrefixLabel
来说,什么都没有起作用。
我想坚持使用PrefixLabel
,因为它可以减少所有标签和字段排列的代码量。
是否有其他提示我可以尝试?
答案 0 :(得分:0)
EditorStyles.label.normal.textColor
已经可以使用,但是我不得不在EditorGUILayout.XYField
之后重新设置颜色,因为PrefixLabel直到现场调用才绘制。
var old = EditorStyles.label.normal.textColor;
EditorStyles.label.normal.textColor = Color.white;
EditorGUILayout.PrefixLabel("label Text");
EditorGUILayout.IntField(5);
EditorStyles.label.normal.textColor = old;