Unity EditorWindow中Toggle、按钮、Dropdown尺寸过小问题求助
解决Unity EditorWindow中部分UI控件尺寸偏小的问题
核心原因
你遇到的问题是因为Button、Toggle、Dropdown这类控件在OnGUI中默认使用更小的内置样式或未指定统一布局约束,而"Settings""Item1"这类元素大概率用了Editor的标准样式或布局选项,导致尺寸不匹配。
具体解决方案
1. 用Editor标准行高统一尺寸
Unity提供EditorGUIUtility.singleLineHeight常量,对应Editor单行控件的标准高度,直接将其应用到目标控件即可对齐尺寸:
float standardHeight = EditorGUIUtility.singleLineHeight; // 调整左侧按钮尺寸 if (GUILayout.Button("按钮1", GUILayout.Height(standardHeight), GUILayout.ExpandWidth(true))) { // 按钮点击逻辑 } if (GUILayout.Button("按钮2", GUILayout.Height(standardHeight), GUILayout.ExpandWidth(true))) { // 按钮点击逻辑 } // 调整Toggle复选框尺寸 myToggle = GUILayout.Toggle(myToggle, "示例复选框", GUILayout.Height(standardHeight)); // 调整Dropdown下拉框尺寸(用EditorStyles.popup匹配原生样式) if (GUILayout.Button(selectedOption, EditorStyles.popup, GUILayout.Height(standardHeight))) { GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("选项A"), selectedOption == "选项A", () => selectedOption = "选项A"); menu.AddItem(new GUIContent("选项B"), selectedOption == "选项B", () => selectedOption = "选项B"); menu.ShowAsContext(); }
2. 复用EditorStyles统一样式
如果"Settings""Item1"使用了特定Editor样式,直接让目标控件复用该样式:
// 假设"Settings"用了toolbarButton样式 if (GUILayout.Button("左侧按钮", EditorStyles.toolbarButton)) { // 按钮逻辑 }
3. 修正布局容器约束
如果控件放在GUILayout.BeginHorizontal()/BeginVertical()容器中,确保容器没有强制缩小控件,必要时用GUILayout.ExpandWidth(true)让控件占满可用空间:
GUILayout.BeginHorizontal(); // 两个按钮平分容器宽度,高度对齐标准行高 GUILayout.Button("按钮1", GUILayout.Height(standardHeight), GUILayout.ExpandWidth(true)); GUILayout.Button("按钮2", GUILayout.Height(standardHeight), GUILayout.ExpandWidth(true)); GUILayout.EndHorizontal();
效果验证
修改后,目标控件的高度会和"Settings""Item1"完全一致,宽度也会根据布局容器自动适配,解决尺寸偏小的问题。
内容的提问来源于stack exchange,提问作者Daniel Lip
相关产品推荐
相关产品推荐

