Unity3D學習筆記(一)GUI控件的調用

GUI控件:
1.在Start中初始化,在OnGUI中調整。
2.公有變量纔會出現在Inspector面板。
3.GUI控件的初始化和處理在OnGUI內完成。
4.JavaScript的中文爲UTF-8編碼可顯示,CSharp的中文爲UTF-16編碼可顯示。

基本信息:

屏幕寬高:Screen.width Screen.height
圖片寬高:img.width img.height

一 標籤Label
GUI.Label(Rect(x,y,width,height),<Str or Texture, such as Texture2D>);

二 按鈕Button
var buttonTexture : Texture2D;
GUI.Button(Rect(x,y,width,height),buttonTexture);
設置文字顏色:GUI.color = Color.green;
設置背景顏色:GUI.backgroundColor = Color.red;

三 輸入框TextField
message = GUI.TextField(Rect(x,y,width,height),message,size);
message = GUI.PasswordField(Rect(x,y,width,height),message,"*"[0],size);
返回值類型爲String.

四 複選框與標籤頁selectToggle and Toolbar
var barResource : String[] = ["bar1","bar2","bar3",...];
var select : int;
var state : boolean;
select = GUI.Toolbar(Rect,default,barResource);//第二個參數爲默認在第幾個標籤上,後面爲名字列表,
有幾個元素就有幾個標籤。
獲取標籤頁:select = GUI.Toolbar(...);
獲取複選框:state = GUI.Toggle(Rect,state,<name>);

五 滑動條Slider
var now_value : int = 0;
now_value = GUI.VerticalSlider(Rect,now_value,endvalue,startvalue)

六 滾動條ScrollView
定義Vector2變量儲存水平和垂直滾動條位置。
var scrollPosition : Vector2;
scrollPosition[0] = <水平初始位置>;
scrollPosition[1] = <垂直初始位置>;

scrollPosition = GUI.BeginScrollView(<Rect滾動視圖>,<Vector2起始位置>,
                     <Rect整體顯示範圍(大於parameter1)>,true,true);
//最後兩個參數表示是否智能顯示,即不該顯示滾動條就不顯示。

七 羣組Group
羣組內採用相對座標,且羣組移動組內物體統一移動。
GUI.BeginGroup(new Rect(x,y,width,height));
//在這裏添加組內成員
GUI.EndGroup();

八 窗口Window
GUI.Window(ID,Rect,window_function,name);
使用:Debug.log(<string>);可以在最下面的消息面板輸出字符串。

九 樣式表GUISkin
使用:GUI.skin = mySkin來應用樣式表

十 佈局GUILayout
GUILayout自動計算顯示區域。
大部分空間的繪製可以將GUI類換爲GUILayout類。
GUILayout也可以設置佈局的寬高。利用Width與Height方法。
使用:BeginHorizontal()與EndHorizontal()方法
默認是垂直佈局,因此多個佈局之間默認以垂直方式排列。
以及:BeginVertical()與EndVertical()方法
可以設定水平、垂直佈局,且可以嵌套使用。

十一 鏈表ArrayList()類
使用 :var winArrayList = new Arraylist();聲明
Add方法添加一個節點,RemoveAt方法刪除一個節點。
對於窗口的用法:
winArrayList.Add(Rect);
winArrayList[i] = GUILayout.Window(...);
winArrayList.RemoveAt(windowID);

一二 靜態圖片DrawTexture
var pic : Texture2D;
GUI.DrawTexture(Rect,pic);

實用的類方法width和height可以獲取圖像的實際寬高,例如pic.width

十三 2D動畫
使用Object[]類型的數組存儲動畫幀
載入動畫幀的方法:
private var animation : Object[];
animation = Resources.LoadAll("<Folder Name>");//載入 /Resouurces/<Folder Name>/ 下全部圖片
繪製動畫就是採用GUI.DrawTexture方法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章