鄰近年底,心也有些散亂,加上工作忙了一陣,在達內培訓的課程也落下了不少。對unity3d的熱度似乎也有點點下降。痛定思痛,又在淘寶上買了寫蠻牛網的視頻。總之不管是用任何手段都要逼着自己不要浪費了培訓的那些錢。言歸正傳,現在開啟GUI篇章。
GUI這東西在我腦子里,自動歸結為.net的用戶交互控件,實際上應該也就是這個樣子,類似於button,lable,textbox....的這些東西在GUI里面都有。
這一節講一些簡單的GUI。
先來看效果圖:

1,紅框部分,button按鈕的text值隨着在文本框的輸入文本變化而變化,始終保持一致。
2.Toggle其實是一個toggle控件,類似於winfrom的RadioButton,它的未知隨着HorizontalScrollbar控件的拖動而拖動。
代碼其實挺簡單的,如下:
using UnityEngine;
using System.Collections;
public class Gui : MonoBehaviour {
public GUIStyle buttonstyle;
string text="";
bool result;
float hsliderVale;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnGUI(){
hsliderVale = GUI.HorizontalScrollbar (new Rect(80, 100, 100, 30),hsliderVale,2,0,10);
result = GUI.Toggle(new Rect(10 * hsliderVale, 170, 100, 30),result,"Toggle");
text = GUI.TextField(new Rect (310, 330, 100, 40),text);
GUI.Button(new Rect(180,120,100,150),"這是一個button按鈕","button");
GUI.Button(new Rect(110,120,200,210),"這是一個button按鈕","toggle");
GUI.Label(new Rect(0,0,200,50),"box類型的lable","box");
GUI.Label (new Rect (150, 110, 200, 100), "buttonstyle");
if (GUI.RepeatButton(new Rect (310, 220, 200, 100),text) )
{
print("用戶單擊了重復按鈕");
}
}
}
Rect()這個定位函數被多次用到,其具體的定義如下:
Rect(x,y,w,h)
x表示水平距離,即以左上角為0,0點,距離左邊的距離
y表示垂直距離,距離頂部的距離
w表示這個矩形的寬度
h表示這個矩形的高度
UnityGUI控制是利用一類被稱為OnGUI()的函數,只要在控制腳本激活的狀態下,OnGUI()函數可以在每幀調用,就像Update( )函數一樣。
