UGUI之Toggle与ToggleGroup的用法(多个按钮之间相互切换)

本文介绍如何使用Unity的ToggleGroup组件实现角色选择功能,通过控制Toggle的状态来改变UI的显示与隐藏。

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

首先创建4个Toggle按钮命名为charater系列,然后再创建空物体给其添加Toggle Group 组件,最后将4个Toggle物体拖入空物体中作为子物体

(关闭Allow Switch Off 选项Toggle Group组默认有且仅有一个Toggle可处于选中状态(其管辖的所有Toggle中))

 

脚本内容如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class CharacterChooseToggle : MonoBehaviour
{
    private void Awake()
    {
        GetComponent<Toggle>().onValueChanged.AddListener(OnValueChanged);//监听方法是Bool委托
    }
    private void Start()
    {       
        OnValueChanged(GetComponent<Toggle>().isOn);//设置Toggle的初始状态,IsOn值初始默认为false
    }
    private void OnValueChanged(bool value)
    {
        transform.GetChild(0).gameObject.SetActive(value);//获取isOn 的值 控制子物体 的显示隐藏
        if (value)//如果为True执行什么内容
        {


        }
          
    }
}

部分知识借鉴:http://www.sikiedu.com/course/306/task/16503/show

举个例子:Toggle Group与Toggle可以用于多个按钮,只允许有一个按钮处于选中状态。

 

 

### 如何在 Unity UGUI Toggle 组件上添加点击事件或改变状态事件 为了实现 `Toggle` 的选择变化监听,可以通过脚本绑定 `onValueChanged` 事件来响应用户的交互行为。下面是一个具体的例子说明如何完成这一功能。 #### 单个 Toggle 实现方法 定义一个继承自 `MonoBehaviour` 的类用于管理 `Toggle` 控件的行为: ```csharp using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { private Toggle toggle; void Awake() { // 获取场景中的 Toggle 对象并初始化成员变量 GameObject toggleObj = GameObject.Find("YourToggleObjectName"); // 替换为实际对象名称 toggle = toggleObj.GetComponent<Toggle>(); } void Start() { // 添加当 Toggle 值发生变化时调用的方法 toggle.onValueChanged.AddListener((bool value) => OnToggleClick(value)); } public void OnToggleClick(bool value) { // 打印日志显示当前切换的状态 Debug.Log($"Toggle changed to {(value ? "ON" : "OFF")}"); } } ``` 此代码片段展示了怎样通过 C# 脚本来捕捉 `Toggle` 状态的变化,并执行相应的处理逻辑[^1]。 对于多个 `Toggle` 需要在同一时间保持互斥关系的情况,则应考虑使用 `ToggleGroup` 来统一管理和约束这些控件之间相互作用[^2][^3]。 如果遇到某些情况下重新进入界面后无法正常触发 `Toggle` 变化的问题,可以在页面激活(`OnEnable`)期间手动调整各选项卡的初始选中情况以确保能正确触发展开的动作[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的菇凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值