Unity GUI


文本域:Void GUILayout.Label(string)

文本框:string GUILayout.TextField(string)

密码框:string GUILayout.PasswordField(pwd,"*") --第二个参数为掩码字符

按钮:Button只有鼠标抬起才会返回true;可以使用RepeatButton,按下期间会一直返回true
  
Tab页:selectedToolBarId = GUILayout.Toolbar(selectedToolBarId,new string[]{"装备","经验","队友"} );     --返回值为点击的按钮的序号
 
复选框:isMuted = GUILayout.Toggle(isMuted,"静音");

多行文本框:msgBody = GUILayout.TextArea(msgBody);


GUILayout布局默认会伸展控件的尺寸。Button等控件支持params GUILayoutOption[] options可变参数数组,可以通过GUILayout.Width(30)返回一个设置控件宽度的GUILayoutOption对象,Height、MinWidth()、MinHeight()等同理。例:GUILayout.Button("Test",GUILayout.Width(500),GUILayout.Height(30))


GUILayout采用线性布局,类似于StackPanel,默认是纵向布局。通过GUILayout.BeginHorizontal()开启,和GUILayout.EndHorizontal()结束一个横向排列区域。同理BeginVertical()、EndVertical()


如果嫌控件太挤,可使用GUILayout.Space(30);增加若干像素的间隙。
----------------------------------------------------------------------------------------------
private String Str1;
private bool isClick;
private int showFrame;
private string uName;
private string uPwd;
Void Start(){
Str1 = "abc";
isClick = false;
}


--每帧执行
Void OnGUI(){
--label文字
GUILayout.Label("欢迎进入"); 
--文本输入框,(每一帧都会擦除之前绘制的内容,重绘新内容)
Str1 = GUILayout.TextField(Str1); 

GUILayout.BeginHorizontal();
--当按钮被点击,返回true
if(GUILayout.Button("点击",GUILayout.Width(100)))
{
isClick = true;
}

if(isClick)
{
GUILayout.Label("按钮被点击");
}
GUILayout.EndHorizontal();

--闪烁按钮
showFrame++;
if(showFrame >=0){
GUILayout.Button("闪烁按钮");
if(showFrame >=50){
showFrame =0;
}
}

--登录
uName = GUILayout.TextField(uName,,GUILayout.Width(100)); 
uPwd = GUILayout.PasswordField(uPwd,'$',GUILayout.Width(100)); 
if(uName=="小名" && uPwd =="12345"){
isClick = true;
}else{
isClick = false;
}
if(isClick){
GUILayout.Label("登录成功");
}else{
GUILayout.Label("帐号密码不匹配,请重新输入");
}

--Button 对比 RepeatButton
if(GUILayout.Button("普通button按钮"))
{
gameObject.transform.Translate(Vector3.right*0.01f);
}
if(GUILayout.RepeatButton("RepeatButton按钮"))
{
gameObject.transform.Translate(Vector3.right*0.1f);
}
}

你可能感兴趣的:(GUI,unity,OnGUI)