GUI绘图基础
GUI是Unity3D绘制UI的原始方法,只要在组件的OnGUI方法中调用绘图方法,便可以在游戏界面上绘制贴图、文字、按钮、滚动条等多种元素。最常见的GUI方法见下表:
方法 | 说明 |
---|---|
GUI.Button | 绘制按钮,常与if语句配合使用,它带有两个参数,第一个参数为按钮的位置和大小,第二个参数为按钮的文本,如: if(GUI.Button(new Rect(10,10,150,100),“I am a button”)) { Debug.Log(“按钮被按下”); } |
GUI.Label | 绘制文本,如:GUI.Label(new Rect(0,0,100,50),“显示的文字”); |
GUI.DrawTexture | 绘制贴图,如:GUI.DrawTexture(new Rect(0,0,100,50),tex); |
GUI.Box | 绘制一个图形框 |
GUI.Window | 绘制一个窗口 |
GUI.TextField | 绘制输入框 |
GUI.PasswordFiled | 绘制密码输入框 |
GUI.HorizontalScrollbar | 水平滚动条 |
GUI.VerticalScrollbar | 绘制垂直滚动条 |
编写HelloWorld程序
在OnGUI方法中调用GUI.Label即可显示文本。GUI.Label有两个参数,第一个参数通过Rect(长方体)指定文字的位置和大小,第二个参数指定要显示的内容。以下是编写HelloWorld的代码,在uinty中直接创建一个名为HelloWorld的script脚本,双击脚本对其进行编辑(前提是安装了VS)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HelloWorld : MonoBehaviour
{
void OnGUI()
{
GUI.Label(new Rect(10, 10, 100, 200), "Hello World");
}
}
将文本直接拖到相机上面,点击游戏创建释放的运行按钮,会发现在game界面出现了HelloWorld字样。
绘制登录框
组合GUI.Box、GUI.Label、GUI.TextField、GUI.PasswordField和GUI.Button这5个元素即可完成登录框的绘制,首先在project面板创建一个Script脚本,命名为LoginPanel,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
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("登录失败");
}
}
}
最后,把脚本拖到场景中的任何实体上(我拖到摄像机上面了),运行游戏,当输入用户名和密码后,点击登录,会在界面的左下方显示登录成功或者登录失败的信息。结果如下: