1.创建一个新的 scene
File------New Scene
2.创建一个脚本
命名为 MyGUI
之前还犯下了一个小错误直接命名为GUI,结果出了问题找不到函数还不知道如何解决,google后发现有人和我犯一样的错误..
先绘制一个BOX来将我们在视觉上框起来,这里用到Rect这个坐标变量
为了能够方便修改,还定义了Left和Top两个整形变量,框体是从左上角开始绘制的,因此这里的坐标也是左上角的坐标
Rect(x轴坐标,y轴坐标,宽度,高度)
Box的绘制参考:
GUI.Box(new Rect(Left-15, Top -10, 150, 300), "Login");
Login就是标题的名称
Label文本的绘制:
GUI.Label(new Rect(Left, Top + 80, 100, 20), "User:");
TextArea的绘制:
在这里需要先定义一个全局变量UserName,因为我们的函数是写在Update中的,每帧都会执行一次。
这里这样写,将使得返回值赋予给UserName
UserName = GUI.TextArea(new Rect(Left, Top + 100, 100, 20), UserName);
Toggle的绘制:
Toggle是一个开关变量,返回值为布尔型,因此这里要在全局定义一个bool变量
两个Toggle型切换的写法如下:
LoginRoot=GUI.Toggle(new Rect(Left + 50, Top+ 160, 50, 20),LoginRoot,"User");
LoginRoot= GUI.Toggle(new Rect(Left + 50, Top + 180, 80, 20), !LoginRoot, "Manager");
MyGUI.cs using UnityEngine; using System.Collections; public class MyGUI : MonoBehaviour { private string UserName = ""; private string Key = ""; private bool LoginRoot = false; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } /// /// 每当重绘时候都会执行这一个方法 /// void OnGUI() { int Left = 205; int Top = 100; GUI.Box(new Rect(Left-15, Top -10, 150, 300), "Login"); if (GUI.Button(new Rect(Left, Top +235, 70, 20), "Start")) print("Button Check"); // GUI.RepeatButton(new Rect(Left,Top + 60,100, 20), "RepeatButton"); GUI.Label(new Rect(Left, Top + 80, 100, 20), "User:"); UserName = GUI.TextArea(new Rect(Left, Top + 100, 100, 20), UserName); GUI.Label(new Rect(Left, Top + 120, 100, 20), "Password"); Key = GUI.PasswordField(new Rect(Left, Top + 140, 100, 20),Key,'*' ); LoginRoot=GUI.Toggle(new Rect(Left + 50, Top+ 160, 50, 20),LoginRoot,"User"); LoginRoot= GUI.Toggle(new Rect(Left + 50, Top + 180, 80, 20), !LoginRoot, "Manager"); } }