实现一个 ToogleGroup

本文介绍了一个用于Unity游戏开发的UI系统中的ToggleGroup控制器实现方法。通过自定义的ToogleGroupController类来管理多个TabToggle组件,实现按钮间的切换及对应游戏对象的显示隐藏效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要两个类 一个是用来控制切换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 () {

}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值