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

其餘課程地址:

Unity教程:Unity開發框架

Unity教程:Unity地形編輯器

Unity教程:Unity腳本程序基礎

Advertisements

你可能會喜歡