GUILayout.BeginArea
在固定屏幕区域中开始 GUI 控件的 GUILayout 块。
默认情况下,使用 GUILayout 创建的任何 GUI 控件都放置在屏幕的左上角。 如果要在任意区域中放置一系列自动布局的控件,请使用 GUILayout.BeginArea 定义一个新区域供自动布局系统使用。
void DrawBeginAre()
{
GUILayout.BeginArea(new Rect(10, 10, 100, 50),tex);
GUILayout.Button("Click me");
GUILayout.Button("Or me");
GUILayout.Button("me");
GUILayout.EndArea();
}
Rect中(x坐标,y坐标,宽度,高度)
GUILayout.BeginHorizontal
在此元素中呈现的所有控件将水平相邻放置。必须通过呼叫 EndHorizontal 来关闭该组。
void DrawBeginHorizontal()
{
GUILayout.BeginHorizontal("box");
GUILayout.Button("I'm the button");
GUILayout.Button("I'm the first button");
GUILayout.Button("I'm to the right");
GUILayout.EndHorizontal();
}
GUILayout.BeginScrollView
自动布局的滚动视图将获取您在其中的任何内容并正常显示。如果不适合,将出现滚动条。对 BeginScrollView 的调用必须始终与对 EndScrollView 的调用匹配。
Vector2 scrollPosition;
void DrawScroll()
{
scrollPosition = GUILayout.BeginScrollView(
scrollPosition, GUILayout.Width(300), GUILayout.Height(100));
GUILayout.Label("123");
if (GUILayout.Button("Clear"))
{ }
GUILayout.Label("456");
GUILayout.Label("456");
GUILayout.Label("456");
GUILayout.Label("456");
GUILayout.EndScrollView();
}
GUILayout.BeginVertical
在此元素内呈现的所有控件将垂直放置在彼此下方。必须通过调用 EndVertical 来关闭该组
void DrawBeginVertical()
{
GUILayout.BeginVertical("box");
GUILayout.Button("I'm the button");
GUILayout.Button("I'm the first button");
GUILayout.Button("I'm to the right");
GUILayout.EndVertical();
}
GUILayout.Box
这将创建一个包含静态文本或图像的框,但不包含其他 GUI 控件。如果要为一组 GUI 控件创建一个矩形容器,请使用其中一个分组功能(BeginHorizontal、BeginVertical、BeginArea 等)。
void DrawBox()
{
GUILayout.Box(tex);
GUILayout.Box("This is an sized label");
}
GUILayout.Button
创建一个可以按下和释放的按钮 一个普通按钮。释放此按钮时,按钮返回 预期值。如果将鼠标移离按钮,则不会单击鼠标。
public Texture tex;
void DrawButton()
{
if (GUILayout.Button(tex))
{
Debug.Log("Clicked the image");
}
if (GUILayout.Button("I am a regular Automatic Layout Button"))
{
Debug.Log("Clicked Button");
}
}
GUILayout.FlexibleSpace()
插入一个灵活的空间元素。
灵活的空间会占用布局中的任何剩余空间。
void DrawFlexibleSpace()
{
GUILayout.BeginArea(new Rect(10, 10, 400, 60));
if (GUILayout.Button("I am a regular Automatic Layout Button"))
{
Debug.Log("Clicked Button");
}
GUILayout.FlexibleSpace();
if (GUILayout.Button("I am a regular Automatic Layout Button"))
{
Debug.Log("Clicked Button");
}
GUILayout.EndArea();
GUILayout.FlexibleSpace();
GUILayout.BeginArea(new Rect(10, 100, 400, 60));
GUILayout.BeginHorizontal("box");
GUILayout.Button("I'm the button");
GUILayout.FlexibleSpace();
if (GUILayout.Button("I am a regular Automatic Layout Button"))
{
Debug.Log("Clicked Button");
}
GUILayout.EndHorizontal();
GUILayout.EndArea();
}
GUILayout.Height
传递给控件的选项以为其提供绝对高度。
void DrawButton()
{
GUILayout.Button("A Button with fixed height", GUILayout.Height(300));
}
GUILayout.ExpandHeight
传递给控件以允许或禁止垂直扩展的选项。
void DrawButton()
{
GUILayout.Button("A Button with fixed height", GUILayout.ExpandHeight(true));
}
GUILayout.ExpandWidth
传递给控件以允许或禁止水平扩展的选项。
如果为真,则封闭的 UI 元素可以展开以填充可用的水平宽度。
void DrawButton()
{
GUILayout.BeginVertical();
GUILayout.Button("Short Button", GUILayout.ExpandWidth(true));
GUILayout.Button("Very very long Button", GUILayout.ExpandWidth(false));
GUILayout.EndVertical();
}
GUILayout.HorizontalScrollbar
游戏视图中的水平滚动条。
void DrawHorizontalScrollbar()
{
hSbarValue = GUILayout.HorizontalScrollbar(hSbarValue, 1.0f, 0.0f, 10.0f);
GUILayout.Label("This is a text that makes space");
}
GUILayout.HorizontalSlider
用户可以拖动的水平滑块来更改最小值和最大值之间的值。
void DrawHorizontalSlider()
{
hSbarValue = GUILayout.HorizontalSlider(hSbarValue, 0.0f, 10.0f);
}
GUILayout.Label
制作自动布局标签。
标签没有用户交互,不会捕获鼠标单击,并且始终以正常样式呈现。如果要创建可直观地响应用户输入的控件,请使用游戏视图中的 Box控件
void DrawLable()
{
GUILayout.Label("This is an sized label");
}
GUILayout.MaxHeight
传递给控件以指定最大高度的选项。
GUILayout.MaxWidth
传递给控件以指定最大宽度的选项。
GUILayout.MinHeight
传递给控件以指定最小高度的选项。
GUILayout.MinWidth
传递给控件以指定最小宽度的选项。
注意:此选项将覆盖自动宽度布局参数
GUILayout.PasswordField
创建一个文本字段,用户可以在其中输入密码。
string passwordToEdit = "My Password";
void DrawPasswordField()
{
passwordToEdit = GUILayout.PasswordField(passwordToEdit, "*"[0], 8);
}
GUILayout.RepeatButton
制作一个重复按钮。只要用户按住鼠标,按钮就会返回 true
void DrawRepeatButton()
{
if (GUILayout.RepeatButton("I am a regular Automatic Layout Button"))
{
Debug.Log("Clicked Button");
}
}
GUILayout.SelectionGrid
创建选择网格。
private int selGridInt;
private string[] selStrings = { "123", "456", "789" };
void DrawSelectionGrid()
{
selGridInt = GUILayout.SelectionGrid(selGridInt, selStrings, 2);
}
GUILayout.Space
在当前布局组中插入一个空格。
空间的方向取决于您发出命令时当前所在的布局组。如果在垂直组中,则空间将是垂直的。注意:这将覆盖两个按钮之间GUILayout.ExpandWidth和GUILayout.ExpandHeight
void DrawRepeatButton()
{
if (GUILayout.RepeatButton("I am a regular Automatic Layout Button"))
{
Debug.Log("Clicked Button");
}
GUILayout.Space(20);
if (GUILayout.RepeatButton("I am a regular Automatic Layout Button"))
{
Debug.Log("Clicked Button");
}
}
GUILayout.TextArea
创建一个多行文本字段,用户可以在其中编辑字符串
string stringToEdit = "Hello World\nI've got 2 lines...";
void DrawTextArea()
{
stringToEdit = GUILayout.TextArea(stringToEdit, 200);
}
GUILayout.TextField
创建一个单行文本字段,用户可以在其中编辑字符串。
void DrawTextField()
{
stringToEdit = GUILayout.TextField(stringToEdit, 25);
}
GUILayout.Toggle
制作一个开/关切换按钮。
bool toggleTxt;
void DrawToggle()
{
toggleTxt = GUILayout.Toggle(toggleTxt, "A Toggle text");
}
GUILayout.Toolbar
制作一个工具栏。
int toolbarInt = 0;
string[] toolbarStrings = { "Toolbar1", "Toolbar2", "Toolbar3" };
void DrawToolbar()
{
toolbarInt = GUILayout.Toolbar(toolbarInt, toolbarStrings);
}