UGUI之Toggle使用


Toggle對象是一個開關。一般用於單選,可以用Toggle制作背包的選項卡

在場景中創建Toggle按鈕。看看他有Toggle組件

 

通過Is On屬性來控制是否選中,其實是控制Graphic屬性中的顯示和隱藏,

接下來一步一步完成選項卡的制作,先看看效果

 

tab1是沒有選中的圖片

Image是選中后的圖片

在tab1上添加Toggle組件,然后把Image拖拽到Graphic屬性

 

這樣就制作了一個單選按鈕,接着復制3個

 

但這里我們要的是只能選擇tab1的時候。tab2和tab3是隱藏的。但你發現。都可以選中。這里需要用到Toggle Group組件。即分組,

這里在knapasack添加Toggle Group

然后把knapsack分別拖拽到tab1,tab2,tab3種的Group 屬性中,把這三個作為一組。所以就能實現單選。

 

這樣就實現了單選的效果。然后要實現每個組中有一個面板

創建3個空對象,並命名為Panel1,Panel2,Panel3,為了便於觀察。在里面分別創建一個Button

 

現在我們分別通過tab來控制響應的panel來顯示也隱藏

選擇一個tab。比如tab1你會發現changed事件,這樣就可以通過tab1(toggle組件的狀態)來改變顯示和隱藏

注冊事件。把pan1拖拽到tab1的事件中。你又會發現 Dynamic bool 中有SetActive這是動態控制顯示也隱藏

 

然后分別把panel2注冊tab2,panel3注冊tab3至此就完成了上面的效果

 

接着看看其他例子

第一個單選很簡單。就不說了。

第二個是一個開關。關閉和打開。這個有兩種方法。一種是UI完成。一種是通過代碼完成

先看第一種:通過自帶的事件來改變顯示和隱藏

先看結構:

Image:背景圖片

On:On顯示的圖片

Text:顯示On

。。。。。

在On對象上添加Toggle組件,通過它的事件來改變對象的顯示

從事件中可以看出來:當單擊On的時候。

設置:On隱藏,顯示Off,同理Off也注冊同意的事件。這里沒用任何代碼。就搞定了。挺簡單的,

這里用的是對象自帶的靜態方法

 

可以看到。頂部是動態的。下面是靜態的。

 

好了。來看看第二種方法。通過代碼改變顯示和隱藏

 把on和off對象上的Toggle組件移除,在Image對象上添加Toggle組件。通過單擊Image來獲取Toggle的Is On屬性來改變

(因為Toggle第一次單擊Is On是true的話。在一次單擊則是false)

編寫腳本。掛在Image上

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class newToll : MonoBehaviour
{
    public GameObject SwitchOn;
    public GameObject SwitchOff;
    Toggle t;

    // Use this for initialization
    void Start()
    {
        t = GetComponent<Toggle>();

        //初始化默認值
        isTag(t.isOn);
    }

    // Update is called once per frame
    void Update()
    {

    }

    /// <summary>
    /// 注冊Toggle事件
    /// </summary>
    /// <param name="on"></param>
    public void isTag(bool on)
    {
        //如果on顯示
        SwitchOn.SetActive(on);
        //則off隱藏。取反即可
        SwitchOff.SetActive(!on);
    }
}

 

Image注冊事件。

 

ok這樣就完成了。自己試試吧

 


免責聲明!

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



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