[原]Unity3D深入淺出 - GUI控件


Unity的GUI類提供了豐富的界面控件,通過組合這些控件,完成和用戶交互的界面。

  • Lable:繪制文本和圖片
  • Box:繪制一個圖形框
  • Button:繪制一個響應單擊事件的按鈕
  • RepeatButton:繪制一個處理連續按下事件的按鈕
  • TextField:繪制一個單行文本輸入框
  • PasswordField:繪制一個密碼輸入框
  • TextArea:繪制一個多行文本輸入框
  • Togle:繪制一個開關
  • Toolbar:繪制一個工具條
  • SelectionGrid:繪制一組網格按鈕
  • HorizontalSlider:繪制一個水平方向的滑動條
  • VerticalSlider:繪制一個垂直方向的滑動條
  • HorizontalScrollbar:繪制一個水平方向的滾動條
  • VerticalScrollbar:繪制一個垂直方向的滾動條
  • Window:繪制一個窗口,可以用於放置控件。

GUI代碼需要在OnGUI函數中調用才能繪制,如果放在Update函數中會報錯。

GUI控件一般需要傳入一個Rect參數來指定屏幕的繪制區域。例如Rect(20,40,100,60),則繪制在離屏幕左上角坐標(20,40)的位置,寬度為100,高度為60。

注意:在UnityGUI中,屏幕坐標系以左上角為原點(0,0),右下角為(Screen.Widht,Screen.Height)

 

GUILayout自動布局:

在unity中GUI控件的布局方式有兩種,一種為固定布局,即在繪制控件時傳入的位置參數;另外一種就是GUILayout自動布局,這種方式一般用於開發者不太在乎控件的精確位置的情況下。

如果想使用自動布局,繪制時使用GUILayout來繪制控件。

示例:

void OnGUI(){
    //固定布局
    GUI.Button(new Rect(20,40,100,60),"GUI button");
    //自動布局
    GUILayout.Button("I am an automatic layout button")
}

 

區域Area:

有時候使用自動布局,當控件數量過多的時候則會顯得擺放得太雜亂,這時候可以使用GUILayout.BeginArea和GUILayout.EndArea來指定自動布局要擺放的區域,對顯示區域大致划分。

示例:

void OnGUI()
{
   GUILayout.BeginArea(new Rect(Screen.width/2,Screen.height/2,200,200);
   //在這之間繪制控件
   GUILayout.EndArea();
}

另外還有GUILayer.BeginHorizontal和GUILayer.EndHorizontal,來設置水平布局。

GUILayout.BeginVertical和GUILayer.EndVertical,類設置垂直布局。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM