第一步:场景添加Canvas,Canvas下添加EmptyObject,EmptyObject下创建Toggles,脚本附给EmptyObject,脚本下Toggles元素分别选择EmptyObject下创建的Toggles;
第二步:分别为创建的Toggles添加On Value Changed(Boolean),第一个默认Runtime Only(根据需要选择),Object选择上面创建的EmptyObject,Function选CheckBoxSelect.boolean1;
(代码有个bug——当选中某个复选框但是又取消选择之后,取消选择的复选框仍在队列,因此的无法得到预想的效果)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class CheckBoxSelect : MonoBehaviour
public Toggle[] Toggles = new Toggle[3];
private Queue<Toggle> queueT = new Queue<Toggle>();
private Toggle tToggle;
private int countT = 0;
public void boolean1(bool value) { }
private void Start()
foreach (var ToggleItem in Toggles)
ToggleItem.onValueChanged.AddListener(ifselect => { if (ifselect) OnToggleValueChanged(ToggleItem); });
private void OnToggleValueChanged(Toggle Toggleitem)
countT++;
queueT.Enqueue(Toggleitem);
if(countT > 2)
queueT.Dequeue().isOn = false;
因工作需要,unity自带的Toggle组件如满足自己的需求,使用比较复杂,咬牙自己封装一套,也提供给小伙伴们一同使用,如有任何可优化的地方,也烦请各位大佬友情提出,感恩的♥♥♥效果展示UI结构效果展示下载拖入工程中在要设置的按钮上添加Tab脚本根据添加后,Inspector上的提示,设置鼠标移入及点击时的设置TabTxt: 按钮下的textMultipleChoice:是否为复选框IsOn:当前是否为选中状态,手动勾选的话,初始化时为默认选中状态鼠标移入状态设置。