UG1L4——输入框和拖动条

本章代码关键字

1
2
3
4
GUI.TextField()            //绘制输入框,传入当前字符串和最大输入的字符串的长度,返回这一帧输入框内的字符串
GUI.PasswordField() //绘制密码输入框,传入当前字符串、要用什么字符来挡住密码字符串和最大输入的字符串的长度,返回这一帧输入框内的字符串
GUI.HorizontalSlider() //水平输入框,第二个参数代表当前的值,第三个和第四个分别代表最小值到最大值,返回这一帧拖动条对应的值
GUI.VerticalSlider() //垂直输入框,第二个参数代表当前的值,第三个和第四个分别代表最小值到最大值,返回这一帧拖动条对应的值

输入框

普通输入

GUI.TextField​是绘制输入框的方法,
第二个参数传入当前的字符串,第三个参数传入最大输入字符串的长度,返回这一帧输入框内的字符串,
因此和GUI.Toggle​一样,必须要在外面声明一个string​变量,用来存储当前输入框内的字符串

1
2
3
4
5
6
7
8
9
private string inputStr = "";

private void OnGUI()
{
//必须要这样写!否则无法正确显示内容,需要将填写的内容实时刷新
//第二个参数代表当前的字符串
//第三个参数 是最大输入字符串的长度
inputStr = GUI.TextField(new Rect(0, 0, 100, 30), inputStr, 5);
}

密码输入

GUI.PasswordField​是绘制输入框的方法,
第二个参数传入当前的字符串,第三个参数传入最大输入字符串的长度,返回这一帧输入框内的字符串,
因此和GUI.Toggle​一样,必须要在外面声明一个string​变量,用来接收和传入输入框内的字符串

1
2
3
4
5
6
7
private string inputPW = "";

private void OnGUI()
{
//这里的第三个参数是char, 代表用什么字符遮住密码
inputPW = GUI.PasswordField(new Rect(0, 50, 100, 30), inputPW, '*');
}

拖动条

GUI.HorizontalSlider​和GUI.VerticalSlider​是绘制拖动条的方法,区别是方向不同
第二个参数传入当前的值,第三个参数传入拖动条最左边对应的值(通常是最小值),第四个参数传入拖动条最右边对应的值(通常是最大值),
返回这一帧拖动条对应的值,
因此和GUI.Toggle​一样,必须要在外面声明一个float​变量,用来存储当前输入框内的字符串

绘制拖动条最多可以传入三个GUIStyle​,用来分别控制条,按钮等样式

1
2
3
4
5
6
7
8
9
10
private float nowValue = 0.5f;

private void OnGUI()
{
//必须要这样写!否则无法正确显示内容,需要将填写的内容实时刷新
//第二个参数代表当前的值
//第三个和第四个分别代表最小值到最大值
nowValue = GUI.HorizontalSlider(new Rect(0, 100, 100, 50), nowValue, 0.0f, 1.0f);
nowValue = GUI.VerticalSlider(new Rect(0, 150, 50, 100), nowValue, 0, 1);
}