前言
一款典型的軟件都會有交互界面,這些界面包括標籤、按鈕、拖動條等。Unity3D內置一些基本的GUI命令,可以在屏幕上繪製簡單的交互控件。本文主要介紹傳統的GUI。而最新加入的UGUI模塊將在下一講中介紹。
1 Label控件
Label控件可以將字符串信息展示在遊戲界面上。
GUI.Label(new Rect(10,10,100,30),"學習GUI");//將字符串顯示在屏幕上
2 Button控件
Button生成一個按鈕,可以檢測用戶鼠標點擊。
if(GUI.Button(newRect(10,200,100,30),"普通按鈕"))
{
Debug.Log("按下了按鈕。");
}
if (GUI.RepeatButton(new Rect(10, 250, 100,30), "連續按鈕"))
{
Debug.Log("正在按按鈕!");
}
3 TextField文本輸入框
可以輸入文字等,如用戶名和密碼。
editName = GUI.TextField(new Rect(150, 40,200, 30), editName, 15);
editPassword = GUI.PasswordField(newRect(150,80,200,30),editPassword,"*"[0],15);
4 Slider滑動條
滑動條上的滑塊位置可以表明對應的數值。
toolBarValue0 = GUI.VerticalSlider(newRect(200,200,30,100),toolBarValue0,100,0);
toolBarValue1 = GUI.HorizontalSlider(newRect(200,180,100,30),toolBarValue1,0,100);
5 GUI中繪製貼圖
GUI.DrawTexture(newRect(10,50,100,80),tex); //繪製貼圖
運行效果
完整腳本
using UnityEngine;
using System.Collections;
public class StudyGUI : MonoBehaviour {
public Texture tex;
string editName;
string editPassword;
float toolBarValue0;
float toolBarValue1;
void Start()
{
editName = "請輸入用戶名";
editPassword = "請輸入密碼";
toolBarValue0 = 0;
toolBarValue1 = 0;
}
void OnGUI()
{
GUI.Label(new Rect(10,10,100,30),"學習GUI"); //將字符串顯示在屏幕上
GUI.DrawTexture(new Rect(10,50,100,80),tex); //繪製貼圖
//檢測按鈕
if(GUI.Button(new Rect(10,200,100,30),"普通按鈕"))
{
Debug.Log("按下了按鈕。");
}
//檢測連續按鈕
if (GUI.RepeatButton(new Rect(10, 250, 100, 30), "連續按鈕"))
{
Debug.Log("正在按按鈕!");
}
//設置文本輸入框
editName = GUI.TextField(new Rect(150, 40, 200, 30), editName, 15);
editPassword = GUI.PasswordField(new Rect(150,80,200,30),editPassword,"*"[0],15);
//垂直和水平滑動條
toolBarValue0 = GUI.VerticalSlider(new Rect(200,200,30,100),toolBarValue0,100,0);
toolBarValue1 = GUI.HorizontalSlider(new Rect(200,180,100,30),toolBarValue1,0,100);
}
}
小結
本文介紹了幾種最簡單的GUI控件的使用方法,其他的控件如ToolBar、ScrollView等沒有介紹到,感興趣的讀者可以在掌握本文講述的基本控件的基礎上,繼續深入研究其他控件。當然現在很多開發中,這種基本的GUI已經用得不多了,UGUI是新一代的交互方式,具有更加靈活的使用情境,值得繼續探究。