实现一个ToogleGroup的代码教程
需要两个类 一个是用来控制切换ToogleGroup 另一个是用来存储要切换的gameObject的物体
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
//实现一个 ToogleGroup
//用来控制切换ToogleGroup
public class ToogleGroupController : MonoBehaviour
{
//TabToggle里面存放的是Toogle要控制的显示的物体 该脚本需要挂到button上用来交互
public List TabToggleList = new List();
void Start () {
foreach (TabToggle tabToggle in TabToggleList)
{
AddButtonListener(tabToggle);//给所有的button添加事件
}
if (TabToggleList.Count > 0)
{
SelectTab(TabToggleList[0]);//显示TabToggleList中第一个toolgle里的gameobject
}
}
private void AddButtonListener(TabToggle tabToggle)
{
tabToggle.button.onClick.AddListener(
() => SelectTab(tabToggle));
}
//添加的方法 真正去执行切换 toogleGroup 的方法
private void SelectTab(TabToggle tabToggle)
{
foreach (TabToggle tab in TabToggleList)
{
bool isSelected = tab == tabToggle;//如果点击的 等于列表里的
tab.button.interactable = !isSelected;//设置当前点击的button交互 当前的被选中后不能再交互
tab.panel.SetActive(isSelected);//显示当前的选中的toolglegroup里的gameobject
}
if (RoleChangeClothManager.instance)
{
RoleChangeClothManager.instance.RefreshRoleInfor();
}
}
}
//用来存储要切换的gameObject的物体 挂在button上的
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TabToggle : MonoBehaviour {
public GameObject panel = null;
public Button button = null;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}