Unity教程:GUI 界面開發
中國AR網連續分享了Unity教程,今天分享教程《Unity教程:GUI 界面開發》
UI概述:
UI永遠是顯示在屏幕的最前面上,不受變形、碰撞、光照的影響
GUI概述:
GUI是Graphical User Interface的縮寫。Unity的圖形界面系統能容易和快速創建出各種交互界面。與傳統的方法:創建GUI對象,標出位置,再寫對應的事件函數不同,只需要用很少的代碼,就可以把這些工作搞定。原理是內置的控制元素,可以把創建實例,標出位置與對應函數一次搞定。例如:
void OnGUI ()
{
if (GUI.Button (new Rect (10,10,150,100), "I am a button"))
Advertisements
{
print ("You clicked the button!");
}
}
遊戲界面是遊戲作品中不可或缺的部分,它可以為遊戲提供導航,也可以為遊戲內容提供重要的信息,同時也是美化遊戲的一個重要手段。Unity內置了一套完整地GUI系統,提供了從布局、控制項到皮膚的一整套GUI解決方案,可以做出各種風格和樣式的GUI界面。目前Unity沒有提供內置的GUI可視化編輯器,因此GUI界面的製作需要全部通過編寫腳本代碼來實現。
GUI基礎:
GUI的代碼需要寫在OnGUI()這個函數里。就像把每幀要執行的代碼寫在Update()這個函數里一樣。下面是一個簡單的例子。
GUI基本控制項:
因為OnGUI()函數每禎都執行,不需要另外再去創建或銷毀GUI控制元素。如果要在某一情況下顯示而在另一情況下不顯示GUI,就需要用另外的邏輯去實現。
Advertisements
Position 位置 :
位置這個參數一般用RECT()這個函數來指明。它定義了X坐標,Y坐標,寬度,高度.以像素為單位的絕對坐標來計算. 通過Screen.width and Screen.height這兩個屬性可以得到屏幕尺寸,以此通過計算來設置位置.以適應不同解析度的電腦。
方法OnGUI():GUI部分是每「幀」擦除重繪的,只應該在OnGUI中
繪製GUI:
標籤:void GUILayout. Label(string)
文本輸入域:stringGUILayout.TextField(string);
多行文本框: msgBody= GUILayout.TextArea(msgBody);
密碼框:stringGUILayout.PasswordField(pwd,„*‟),第二個參數為掩碼字元。
按鈕:Button只有滑鼠抬起才會返回true,這樣用Button做發射子彈就不能按下一直發射,可以使用RepeatButton,這樣按下期間會一直返回true。
Tab頁: selectedToolBarId =GUILayout.Toolbar(selectedToolBarId,new string[]{「裝備」,「經驗」,「隊友」}); 返回值為點擊的按鈕的序號;
複選框:isMuted = GUILayout.Toggle(isMuted,「靜音」);
多行文本框: msgBody = GUILayout.TextArea(msgBody);
GUILayout:
GUILayout布局默認會伸展控制項的尺寸。Button等控制項支持paramsGUILayoutOption[]options可變參數數組,可以通過
GUILayout.Width(100)返回一個設置控制項寬度的GUILayoutOption對象, Height()、 MinWidth()、MinHeight()等同理。
例子:GUILayout.Button("Test",GUILayout.Width(500),GUILayout.Height(30))
GUILayout採用線性布局,類似於StackPanel,默認是縱向布局。
通過GUILayout.BeginHorizontal();開啟和GUILayout.EndHorizontal()結束一個橫向排列區域,同理BeginVertical() 、EndVertical() 如果嫌控制項太擠,可以使GUILayout.Space(30);增加若干像素的間隙。
GUISkin 皮膚:
首先在Project中Create→GUI Skin,選中創建的GUISkin文件,在Inspector中修改每種控制項的樣式。
編寫一個腳本,腳本中定義一個GUISkin類型的屬性:
public GUISkin MySkin;
OnGUI中載入樣式:
GUI.skin = MySkin;
GUILayout.Button(「確定");
GUILayout.Button(「取消");
選中腳本所拖的的模型,把GUISkin文件拖到MySkin屬性上。這樣所有按鈕都是這樣的風格GUI.Skin.GetStyle(「」)。
注意:如果沒有效果,就把腳本remove后再添加。
教程由中國AR網(http://www.chinaar.com/)分享,更多教程進入中國AR網可以看到,有相關問題也可以在文章後面進行評論。
本文地址:http://www.chinaar.com/ZYJC/540.html
其餘課程地址: