如果没有其余代码,很难提供帮助。
这是 Unity 的内置行为。我尝试了很多东西see here 来禁用/覆盖前缀标签的内置颜色,但到目前为止没有运气。
但是,一种解决方法可能是改用独立的EditorGUI.LabelField,它不会受到EnumPopup 和EditorGUIUtility.labelWidth 的影响:
var LabelRect = new Rect(
FILEMANAGEMENT_ENUMFIELD_RECT.x,
FILEMANAGEMENT_ENUMFIELD_RECT.y,
// use the current label width
EditorGUIUtility.labelWidth,
FILEMANAGEMENT_ENUMFIELD_RECT.height
);
var EnumRect = new Rect(
FILEMANAGEMENT_ENUMFIELD_RECT.x + EditorGUIUtility.labelWidth,
FILEMANAGEMENT_ENUMFIELD_RECT.y,
FILEMANAGEMENT_ENUMFIELD_RECT.width - EditorGUIUtility.labelWidth,
FILEMANAGEMENT_ENUMFIELD_RECT.height
);
EditorGUI.LabelField(LabelRect, "File relative to");
QuickBuilder.Settings.Relation = (QuickBuilder.Settings.PathRelation)EditorGUI.EnumPopup(EnumRect, QuickBuilder.Settings.Relation);
如您所见,标签没有变成蓝色,而宽度保持灵活
旁注
而不是直接通过编辑脚本设置值
QuickBuilder.Settings.Relation = 您应该始终尝试使用正确的 SerializedProperty。它处理诸如撤消/重做之类的事情,并将相应的对象和场景标记为dirty。
你使用EditorGUI而不是EditorGUILayout还有什么特殊原因吗?后者不需要设置Rects。
EditorGUILayout.BeginHorizontal();
{
EditorGUILayout.LabelField("File relative to", GUILayout.Width(EditorGUIUtility.labelWidth));
QuickBuilder.Settings.Relation = (QuickBuilder.Settings.PathRelation)EditorGUILayout.EnumPopup(QuickBuilder.Settings.Relation);
}
EditorGUILayout.EndHorizontal();