三、TextField控件TextField控件主要用于监听用户的输入信息,我们通常使用GUI.TextField()方法来显示输入框,其返回值类型为string型。
文章图片
Parameters(参数): position : Rect ——用于在屏幕绘制文本框的位置(起点x轴坐标,起点y轴坐标,文本框的宽度,文本框的高度) text : String ——显示的编辑文本,这个函数的返回值应该赋回给字符串 maxLength : int ——控制字符串的最大长度,如果不设置,用户可以一直输入 style : GUIStyle ——使用样式,如果不设置,文本框的样式将使用当前的GUISkin皮肤
Returns(返回值): 字符串类型——被编辑的字符串
Description(描述): 创建一个单行的文本框,用户可以编辑字符串(注:与TextArea进行区别,TextArea是多行的,后面会详细说明!)
四、PasswordField控件
顾名思义,PasswordField(密码字段)控件是用来进行密码输入的文本框控件。我们可以通过GUI.PasswordField()来进行该控件的显示。和普通文本框一样,该控件的返回值也是为String类型。
文章图片
Paraments(参数): position : Rect —— 用来密码字段在屏幕上的矩形位置(起点x坐标,起点y坐标,控件宽度,控件高度) password : String —— 编辑的密码。这个函数的返回值应该赋回给字符串 maskChar : char —— 用于密码的字符遮罩。即,一般的我们都使用******来显示密码的 maxLength : int —— 控制字符串的最大长度,如果不设置,用户可以一直输入。 style : GUIStyle —— 该控件使用的样式。如果不设置,该控件将使用当前的GUISkin皮肤。
Returns(返回): 字符串类型——返回被编辑的密码
Description(描述): 创建一个文本框来给用户输入密码。
案例——制作一个简单的用户登录窗口。用户名为zuoyamin,密码为123
Login.cs
- using UnityEngine;
- using System.Collections;
- public class Login : MonoBehaviour {
- private string userName; //用户名
- private string userPassword; //密码
- private string info; //信息
- void Start ()
- {
- //初始化
- userName = "";
- userPassword = "";
- info = "";
- }
- void OnGUI()
- {
- //用户名
- GUI.Label(new Rect(20,20,50,20),"用户名");
- userName = GUI.TextField(new Rect(80,20,100,20),userName,15); //15为最大字符串长度
- //密码
- GUI.Label(new Rect(20,50,50,20),"密码");
- userPassword = GUI.PasswordField(new Rect(80,50,100,20),userPassword,'*'); //'*'为密码遮罩
- //信息
- GUI.Label(new Rect(20,100,100,20),info);
- //登录按钮
- if(GUI.Button(new Rect(80,80,50,20),"登录"))
- {
- if(userName == "zuoyamin" && userPassword == "123")
- {
- info = "登录成功!";
- }
- else
- {
- info = "登录失败!";
- }
- }
- }
- }
using UnityEngine;
using System.Collections;
public class Login : MonoBehaviour {
private string userName;
//用户名
private string userPassword;
//密码
private string info;
//信息
void Start ()
{
//初始化
userName = "";
userPassword = "";
info = "";
}
void OnGUI()
{
//用户名
GUI.Label(new Rect(20,20,50,20),"用户名");
userName = GUI.TextField(new Rect(80,20,100,20),userName,15);
//15为最大字符串长度
//密码
GUI.Label(new Rect(20,50,50,20),"密码");
userPassword = GUI.PasswordField(new Rect(80,50,100,20),userPassword,'*');
//'*'为密码遮罩
//信息
GUI.Label(new Rect(20,100,100,20),info);
//登录按钮
if(GUI.Button(new Rect(80,80,50,20),"登录"))
{
if(userName == "zuoyamin" && userPassword == "123")
{
info = "登录成功!";
}
else
{
info = "登录失败!";
}
}
}
}
将Login.cs绑定到Main Camera上,点击Play按钮。
文章图片
文章图片
文章图片
五、TextArea控件TextArea(文本区域)控件用来显示多行文本。使用GUI.TextArea()来绘制。其返回值也是String类型。
文章图片
Parameters(参数): position : Rect —— 在屏幕上的矩形位置(起点x坐标,起点y坐标,控件宽度,控件高度) text : String —— 显示的编辑文本。这个函数的返回值应该赋回给字符串 maxLength : int —— 控制字符串的最大长度,如果不设置,用户可以一直输入。 style : GUIStyle —— 该控件使用的样式。如果不设置,该控件将使用当前的GUISkin皮肤。
Returns(返回): 字符串类型——返回被编辑的文本
Description(描述): 创建一个多行文本区域,用户可以编辑文本。
案例——用TextArea来显示一首诗
TextArea.cs [csharp] view plain copy print ?
- using UnityEngine;
- using System.Collections;
- public class TextArea : MonoBehaviour {
- private string info;
- void Start ()
- {
- info = " 悯农-李绅 \n锄禾日当午,\n汗滴禾下土。\n谁知盘中餐,\n粒粒皆辛苦。";
- }
- void OnGUI()
- {
- GUI.TextArea(new Rect(20,20,90,100),info);
- }
- }
using UnityEngine;
using System.Collections;
public class TextArea : MonoBehaviour { private string info;
void Start ()
{
info = " 悯农-李绅 \n锄禾日当午,\n汗滴禾下土。\n谁知盘中餐,\n粒粒皆辛苦。";
}
void OnGUI()
{
GUI.TextArea(new Rect(20,20,90,100),info);
}
}
将TextArea.cs绑定到Main Camera上,点击运行按钮。
文章图片
推荐阅读
- unity|Unity3D中基本GUI控件介绍
- Unity3D|【Unity3D】GUI控件
- Unity|Unity C# 网络学习(十一)——自定义协议生成工具
- Unity3d-2019.4-简易红绿灯
- unity|Unity3D协程详解
- Unity功能|Unity之UGUI-特效遮挡问题2.0
- 从头构筑C#知识体系|【从头构筑C#知识体系】1.9 特性
- C#|winform Dev GridView 控件常用属性总结
- Unity|Unity UGUI ScrollView滑动到指定位置