大家好,今天介绍一下toggle,本人是unity新手,欢迎大家拍砖,toggle类似按钮,但是toggle有一个特点,可以成组操作,比如把5个toggle放在一组,点击其中一个,其他的则显示已经转移,那么怎么实现呢,完全不需要代码,需要的是unity的inspector的操作,当你在uinty的gameobject选择ui,toggle创建多个之后,创建一个空对象,即gameobject-enemy对象,然后再这个空对象点击Add Component,添加Toggle Group。
然后将所有的想分成一组的toggle拖动到空对象,enemy对象下,成为子节点,然后给toggle的inspector的Group接口赋值,即把空对象,enemy拖动到Group接口中,这样,被拖动到一个空对象的所有toggle为一组。
下面就是使用代码操控toggle点击背后的逻辑,里用改变一张image颜色实例,有两种方法,一种是调用inspector的OnValueChanged,另一种是完全使用代码,然后挂载到toggle上,第一种也需要代码,要把你写的代码先挂在到一个控制器,及一个空对象,enemy,一般enemy都用来实现逻辑,当然这空对象也存在于场景中,点下OnValueChanged的加号,在选择器选择场景对象enemy,然后再function选择你写好的函数,就可以了,第二种是纯手写代码,代码如下,
[SerializeField] private Toggle m_toggle;
[SerializeField] private Image m_image;
// Use this for initialization
void Start () {
m_toggle.onValueChanged.AddListener(DoChangeImageColor);
}
public void DoChangeImageColor(bool Value)
{
if (Value == true)
{
// GameObject obj = GameObject.Find("Image");
m_image.color=Color.black;
m_image.gameObject.SetActive(true);
}
}
挂在到Inspector的加号的函数如下
public void SettoggleOne(bool Value)
{
m_image.color = Color.yellow;
}