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這樣就完成了。自己試試吧