NGUI单选框如何设置
2015年01月21日 10:47
0 点赞
0 评论
更新于 2025-11-21 15:00
在NGUI中,我们通常使用Toggle来实现单选框功能。下面将详细介绍如何实现这一功能。
代码实现
using UnityEngine;
using System.Collections;
public class ToggleExample : MonoBehaviour
{
// 存储所有Toggle组件的数组
UIToggle[] toggles;
// 单选框所代表的值,取值为0、1、2、3
int value = 0;
void Awake()
{
// 初始化Toggle数组,这里假设存在3个Toggle
toggles = new UIToggle[3];
for (int i = 0; i < 3; i++)
{
// 通过路径查找并获取对应的Toggle组件
toggles[i] = this.transform.Find("Anchor/Panel/CheckBox/Toggle_" + (i + 1)).gameObject.GetComponent<UIToggle>();
// 打印Toggle的名称,用于调试
print(toggles[i].name);
// 为Toggle所在的GameObject添加UIEventListener组件
toggles[i].gameObject.AddComponent<UIEventListener>();
// 为点击事件绑定ButtonClick方法
UIEventListener.Get(toggles[i].gameObject).onClick = ButtonClick;
}
}
// 记录每个Toggle的点击次数
int click1 = 0;
int click2 = 0;
int click3 = 0;
void ButtonClick(GameObject obj)
{
// 获取点击的GameObject的名称
string name = obj.name;
switch (name)
{
case "Toggle_1":
// 点击次数加1
click1++;
// 重置其他Toggle的点击次数
click2 = 0;
click3 = 0;
if (click1 % 2 == 0)
{
// 偶数次点击,取消选中
value = 0;
toggles[0].value = false;
// 隐藏勾选标记
GameObject sp = toggles[0].transform.FindChild("Checkmark").gameObject;
sp.SetActive(false);
}
else
{
// 奇数次点击,选中
value = 1;
// 显示勾选标记
GameObject sp = toggles[0].transform.FindChild("Checkmark").gameObject;
sp.SetActive(true);
}
break;
case "Toggle_2":
click2++;
click1 = 0;
click3 = 0;
if (click2 % 2 == 0)
{
value = 0;
toggles[1].value = false;
GameObject sp = toggles[1].transform.FindChild("Checkmark").gameObject;
sp.SetActive(false);
}
else
{
value = 2;
GameObject sp = toggles[1].transform.FindChild("Checkmark").gameObject;
sp.SetActive(true);
}
break;
case "Toggle_3":
click3++;
click1 = 0;
click2 = 0;
if (click3 % 2 == 0)
{
value = 0;
toggles[2].value = false;
GameObject sp = toggles[2].transform.FindChild("Checkmark").gameObject;
sp.SetActive(false);
}
else
{
value = 3;
GameObject sp = toggles[2].transform.FindChild("Checkmark").gameObject;
sp.SetActive(true);
}
break;
default:
break;
}
// 打印当前选中的值,用于调试
print(value);
}
}
代码解释
- Awake方法:在脚本实例被唤醒时调用,主要完成Toggle组件的查找和事件绑定。通过
transform.Find方法根据路径查找对应的Toggle,并为其添加UIEventListener组件,将点击事件绑定到ButtonClick方法。 - ButtonClick方法:处理Toggle的点击事件。根据点击的Toggle名称,更新点击次数和
value的值。通过判断点击次数的奇偶性来决定是否选中该Toggle,并显示或隐藏勾选标记。
注意事项
- 代码中假设存在3个Toggle,并且其名称分别为
Toggle_1、Toggle_2、Toggle_3,实际使用时需要根据项目中的命名进行调整。 UIEventListener是NGUI中用于处理UI事件的组件,确保项目中已经正确导入并使用了NGUI。
通过以上步骤,你就可以在NGUI中实现单选框的功能了。