unity UGUI基礎(一)
推薦閱讀:
UGUI的簡介:
UGUI系統是從Unity 4.6開始,被整合到Unity的編輯器中Unity官方給這個新的UI系統賦予的標籤是:靈活,快速和視覺化!,簡單來說對於開發者而言就是有三個優點:效率高效果好,易於使用,擴充套件,以及與Unity的相容性高。
在不使用任何程式碼的前提下,就可以簡單快速額在遊戲中建立其一套UI介面,這在過去是絕對不可想想的,但是新的UI系統確實做到了這一點因為Unity預定義了很多常見的元件,它們以“遊戲物件”的形式存在於遊戲場景中。
4.6之前的UI程式碼如下:
void OnGUI()
{
//新增一個圖片
GUI.DrawTexture(new Rext(L LeftX,eftY,miniMapWidth,miniMapHwight),backGround);
//做一個按鈕,Rect(螢幕的位置,大小),
if(GUI.Button(new Rect(30,100,100,50),"按鈕上的文字"))
{
//按鈕要執行的語句...
}
}
UGUI與NGUI的區別:
(1)UGUI的Canvas有世界座標和螢幕座標
(2)UGUI的Image可以使用material
(3)UGUI通過Mask來剪裁,為NGUI通過Panel的Clip
(4)UNGUI的渲染先後是通過Widget的Depth。而uGUI渲染順序根據Hierarchy的順序,越下面渲染在頂層
(5)UGUI不需要繫結Colliders,UI可以自動攔截事件
(6)UGUI的Anchor是相對父物件,沒有提供高階選項,
(7)UGUI沒有Atlas,使用Sprite
(8)UGUI的事件需要實現事件系統的介面,但寫起來也算簡單
下面用幾個例子來為大家介紹UGUI在遊戲中的應用:
例1:UGUI_UI之音量設計
(1)進度條類音效設定:建立Slider元件,設定填充顏色
(2)開關類音效控制
新增Toggle Group元件,實現開關功能,即開和關的互斥點選
按照下面方式修改元件屬性;建立指令碼,程式碼控制開與關的狀態。
指令碼程式碼如下:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class YinXiao : MonoBehaviour { public GameObject isToggleOn; public GameObject isToggeOff; private Toggle toggle; void Start () { toggle = GetComponent<Toggle>(); OnValueChanged(toggle.isOn); } void Update () { } public void OnValueChanged(bool isOn) { isToggleOn.SetActive(isOn); isToggeOff.SetActive(!isOn); } }
(3)滑動文字框(選單)的製作
建立ScrollView元件,設定元件屬性如下:
設定滑動方向:
(4)載入場景的方法
首先介紹一種根據場景名字載入場景的方法:
使用Application.LoadLevel(“場景名字”)載入場景,並新增監聽事件。
下面介紹另一種根據自定義場景順序載入場景的方法:
使用Application.LoadLevel(“需載入場景的下標”)載入場景,並新增監聽事件。
或者是這樣:
上述方法中載入場景的方法相似,區別在於一個傳遞場景名字的字串,另一個傳遞場景的索引。
(5)通過UI介面改變物體的運動狀態(如速度大小)
通過上面操作,你已經對UGUI有了初步的瞭解,如果有什麼疑惑歡迎評論區留言。最後告訴你一個小祕密,學習unity一定要親自操作編輯器哦!