实现一个 ToogleGroup

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 23:09   11   0

需要两个类 一个是用来控制切换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<TabToggle> TabToggleList = new List<TabToggle>();

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 () {

}
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP