Unity UGUI的ToggleGroup(選項(xiàng)組)組件的介紹及使用
1. 什么是ToggleGroup組件?
ToggleGroup(選項(xiàng)組)是Unity UGUI中的一個(gè)組件,用于管理一組Toggle(選項(xiàng))的選擇狀態(tài)。ToggleGroup組件可以確保在同一個(gè)ToggleGroup中只有一個(gè)Toggle被選中,其他Toggle將自動(dòng)取消選中狀態(tài)。
2. ToggleGroup組件的工作原理
ToggleGroup組件通過(guò)監(jiān)聽(tīng)Toggle的選擇狀態(tài)來(lái)實(shí)現(xiàn)管理功能。當(dāng)一個(gè)Toggle被選中時(shí),ToggleGroup會(huì)遍歷同一組中的其他Toggle,并將它們的選中狀態(tài)取消。
3. ToggleGroup組件的常用屬性
- AllowSwitchOff(允許取消選擇):設(shè)置是否允許取消選擇。如果設(shè)置為true,則可以將所有Toggle都取消選中狀態(tài);如果設(shè)置為false,則至少有一個(gè)Toggle會(huì)一直處于選中狀態(tài)。
4. ToggleGroup組件的常用函數(shù)
- NotifyToggleOn(Toggle toggle):通知ToggleGroup有一個(gè)Toggle被選中。該函數(shù)會(huì)在Toggle的OnValueChanged事件中自動(dòng)調(diào)用,無(wú)需手動(dòng)調(diào)用。
5. 完整例子代碼
例子1:創(chuàng)建ToggleGroup和Toggle
using UnityEngine;
using UnityEngine.UI;
public class Example1 : MonoBehaviour
{
public ToggleGroup toggleGroup;
public Toggle toggle1;
public Toggle toggle2;
private void Start()
{
toggle1.group = toggleGroup;
toggle2.group = toggleGroup;
}
}
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將Example1腳本掛載到該物體上。
- 在場(chǎng)景中創(chuàng)建兩個(gè)Toggle,并將它們的Toggle組件分別拖拽到toggle1和toggle2的引用中。
- 將toggleGroup組件拖拽到toggleGroup的引用中。
- 運(yùn)行游戲,點(diǎn)擊toggle1或toggle2,觀察它們的選中狀態(tài)。
注意事項(xiàng):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-604798.html
- toggle1和toggle2的group屬性必須設(shè)置為toggleGroup。
例子2:動(dòng)態(tài)創(chuàng)建Toggle
using UnityEngine;
using UnityEngine.UI;
public class Example2 : MonoBehaviour
{
public ToggleGroup toggleGroup;
public GameObject togglePrefab;
public Transform toggleParent;
private void Start()
{
for (int i = 0; i < 5; i++)
{
GameObject toggleObj = Instantiate(togglePrefab, toggleParent);
Toggle toggle = toggleObj.GetComponent<Toggle>();
toggle.group = toggleGroup;
}
}
}
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將Example2腳本掛載到該物體上。
- 創(chuàng)建一個(gè)Toggle的預(yù)制體togglePrefab,并將其拖拽到togglePrefab的引用中。
- 創(chuàng)建一個(gè)空物體toggleParent,并將其拖拽到toggleParent的引用中。
- 將toggleGroup組件拖拽到toggleGroup的引用中。
- 運(yùn)行游戲,觀察toggleParent下的Toggle數(shù)量和選中狀態(tài)。
注意事項(xiàng):
- togglePrefab必須包含Toggle組件。
- toggleParent必須是一個(gè)容器,用于存放動(dòng)態(tài)創(chuàng)建的Toggle。
例子3:取消選擇
using UnityEngine;
using UnityEngine.UI;
public class Example3 : MonoBehaviour
{
public ToggleGroup toggleGroup;
public Button cancelButton;
private void Start()
{
cancelButton.onClick.AddListener(CancelSelection);
}
private void CancelSelection()
{
toggleGroup.SetAllTogglesOff();
}
}
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將Example3腳本掛載到該物體上。
- 創(chuàng)建一個(gè)Button,并將其拖拽到cancelButton的引用中。
- 將toggleGroup組件拖拽到toggleGroup的引用中。
- 運(yùn)行游戲,點(diǎn)擊cancelButton,觀察toggleGroup中的Toggle是否被取消選擇。
注意事項(xiàng):
- cancelButton必須是一個(gè)Button,并且已經(jīng)添加了OnClick事件。
例子4:獲取選中的Toggle
using UnityEngine;
using UnityEngine.UI;
public class Example4 : MonoBehaviour
{
public ToggleGroup toggleGroup;
public Button getSelectedButton;
private void Start()
{
getSelectedButton.onClick.AddListener(GetSelectedToggle);
}
private void GetSelectedToggle()
{
Toggle selectedToggle = toggleGroup.ActiveToggles().FirstOrDefault();
if (selectedToggle != null)
{
Debug.Log("Selected Toggle: " + selectedToggle.name);
}
else
{
Debug.Log("No Toggle selected.");
}
}
}
操作步驟:
- 創(chuàng)建一個(gè)空物體,并將Example4腳本掛載到該物體上。
- 創(chuàng)建一個(gè)Button,并將其拖拽到getSelectedButton的引用中。
- 將toggleGroup組件拖拽到toggleGroup的引用中。
- 運(yùn)行游戲,點(diǎn)擊getSelectedButton,觀察控制臺(tái)輸出。
注意事項(xiàng):
- getSelectedButton必須是一個(gè)Button,并且已經(jīng)添加了OnClick事件。
例子5:禁用ToggleGroup
using UnityEngine;
using UnityEngine.UI;
public class Example5 : MonoBehaviour
{
public ToggleGroup toggleGroup;
public Button disableButton;
private void Start()
{
disableButton.onClick.AddListener(DisableToggleGroup);
}
private void DisableToggleGroup()
{
toggleGroup.enabled = false;
}
}
操作步驟:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-604798.html
- 創(chuàng)建一個(gè)空物體,并將Example5腳本掛載到該物體上。
- 創(chuàng)建一個(gè)Button,并將其拖拽到disableButton的引用中。
- 將toggleGroup組件拖拽到toggleGroup的引用中。
- 運(yùn)行游戲,點(diǎn)擊disableButton,觀察toggleGroup是否被禁用。
注意事項(xiàng):
- disableButton必須是一個(gè)Button,并且已經(jīng)添加了OnClick事件。
參考資料
- Unity官方文檔:ToggleGroup
- Unity官方教程:Toggle
到了這里,關(guān)于Unity UGUI的ToggleGroup(選項(xiàng)組)組件的介紹及使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!