NGUI的使用过程中,自己制作一些组件是常有的事儿,毕竟NGUI本身提供的组件功能较为基本,不能完全满足实际应用的需求。

NGUI的tab是利用checkbox来实现。Checkbox中的API中有一个GameObject对象radioButtonRoot。把若干checkbox放在一个GameObject下面,再将这个GameObject赋值给每一个checkbox的radiobuttonRoot就可以实现一个单选框。但是其发送消息依然依赖Checkbox本身。这是非常不方便的,因为如果你选择了单选框中的一个,其他也会发送“未被选中”的消息。于是参考Tabview实现了一个简单的单选框消息发送器,发送index,顺序是checkbox加入到该脚本的顺序。

此外提供了由外部脚本控制单选框的功能。

public void CheckTab(int num)

和通过脚本把checkbox加入到tabview集合里面的功能

public void AppendTab(UICheckbox tab,bool startedChecked)

代码在gist上