
上QQ阅读APP看书,第一时间看更新
1.8 GUI
1.8.1 GUI绘图基础
GUI绘图是Unity3D绘制UI的原始方法,只要在组件的OnGUI方法中调用绘图方法,便可以在游戏界面上绘制贴图、文字、按钮、滚动条等多种元素。最常用的GUI方法见表1-8。
表1-8 最常用的GUI方法及说明

1.8.2 编写HelloWorld程序
在OnGUI方法中调用GUI.Label即可显示文本。GUI.Label有两个参数,第一个参数通过Rect(长方体)指定文字的位置和大小,第二个参数指定要显示的内容。以下是编写HelloWorld的代码。

代码的运行效果如图1-38所示。

图1-38 GUI绘制的HelloWorld
1.8.3 绘制登录框
组合GUI.Box、GUI.Label、GUI.TextField、GUI.PasswordField和GUI.Button这5个元素即可完成登录框的绘制,代码如下所示。
public class LoginPanel : MonoBehaviour { public string userName = ""; public string password = ""; void OnGUI() { //登录框 GUI.Box(new Rect(10, 10, 200, 120), "登录框"); //用户名 GUI.Label(new Rect(20, 40, 50, 30), "用户名"); userName = GUI.TextField(new Rect(70, 40, 120, 20), userName); //密码 GUI.Label(new Rect(20, 70, 50, 30), "密码"); password = GUI.PasswordField(new Rect(70, 70, 120, 20), password, ' *' ); //登录按钮 if (GUI.Button(new Rect(70, 100, 50, 25), "登录")) { if (userName == "hellolpy" && password == "123") Debug.Log("登录成功"); else Debug.Log("登录失败"); } } }
代码的运行效果如图1-39所示。

图1-39 GUI绘制的登录框