1. 程式人生 > >unity UGUI基礎(一)

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一定要親自操作編輯器哦!