Unity Editor GUI 自适应区域框:包裹自定义 Toggle 和 Text
Unity Editor GUI 自适应区域框:包裹自定义 Toggle 和 Text
在 Unity 编辑器中,您可能需要创建一些自定义的界面,例如包含一些 Toggle 和 Text 的区域框。为了使这些区域框能够自适应其内容,您可以使用 GUILayout.BeginArea 和 GUILayout.EndArea 来创建自适应的区域框。
示例代码
以下是一个示例代码,演示如何在 Unity Editor GUI 中创建一个自适应的区域框,并包含自定义的 Toggle 和 Text 控件:
public class MyEditorWindow : EditorWindow
{
private Rect areaRect = new Rect(10, 10, 200, 100);
private bool toggle1 = false;
private bool toggle2 = false;
private string text = 'Hello World';
void OnGUI()
{
GUILayout.BeginArea(areaRect, GUI.skin.box);
GUILayout.Label('Title', EditorStyles.boldLabel);
toggle1 = GUILayout.Toggle(toggle1, 'Toggle 1');
toggle2 = GUILayout.Toggle(toggle2, 'Toggle 2');
text = GUILayout.TextField(text);
GUILayout.EndArea();
// 自适应区域框的位置和大小
areaRect.width = GUILayoutUtility.GetLastRect().width + 20;
areaRect.height = GUILayoutUtility.GetLastRect().height + 20;
}
}
代码解析
- 创建区域框: 使用
GUILayout.BeginArea创建一个区域框,并使用GUI.skin.box样式来显示边框。 - 添加控件: 在区域框中添加一些自定义的控件,例如
GUILayout.Toggle和GUILayout.TextField。 - 自适应尺寸: 在
GUILayout.EndArea之后,使用GUILayoutUtility.GetLastRect()获取最后一个控件的位置和大小,并调整areaRect的宽高,使其能够自适应所有内容。
总结
通过使用 GUILayout.BeginArea 和 GUILayout.EndArea,您可以轻松地创建自适应的区域框,并包含您需要的任何自定义控件。通过获取控件的位置和大小,您可以使区域框始终能够自适应内容,并提供最佳的用户体验。
原文地址: https://www.cveoy.top/t/topic/oM3Q 著作权归作者所有。请勿转载和采集!