第一步:场景添加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;
}
}
}