如何解决如何对齐GUILayout元素
我正在努力改进转换检查器,但目前遇到了麻烦。
有没有办法将这些按钮向右对齐?
这些只是包装在水平组中的两个GUILayout按钮。
public override void OnInspectorGUI()
{
EditorGUILayout.BeginHorizontal();
GUILayout.Button("World",EditorStyles.miniButtonLeft,GUILayout.Width(85));
GUILayout.Button("Local",EditorStyles.miniButtonRight,GUILayout.Width(85));
EditorGUILayout.EndHorizontal();
defaultEditor.OnInspectorGUI();
}
如何将它们定位在右侧?
解决方法
您可以通过在按钮前面添加一个灵活的空间来将按钮移至右侧:
public override void OnInspectorGUI()
{
EditorGUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.Button("World",EditorStyles.miniButtonLeft,GUILayout.Width(85));
GUILayout.Button("Local",EditorStyles.miniButtonRight,GUILayout.Width(85));
EditorGUILayout.EndHorizontal();
defaultEditor.OnInspectorGUI();
}
一个灵活的空间只会吃掉布局组中所有剩余的空间。如果您有多个弹性空间,则空间将在它们之间平均分配。
您可能会在我的IMGUI crash course中找到更多详细信息。
,作为Bunny83's answer的替代方法,如果您想将按钮与其他字段的左端对齐,则只需插入一个与前缀标签大小相同的空格即可。
public override void OnInspectorGUI()
{
EditorGUILayout.BeginHorizontal();
{
GUILayout.Space(EditorGUIUtility.labelWidth);
if(GUILayout.Button("World",EditorStyles.miniButtonLeft))
{
...
}
if(GUILayout.Button("Local",EditorStyles.miniButtonRight))
{
...
}
}
EditorGUILayout.EndHorizontal();
defaultEditor.OnInspectorGUI();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。