Unity 之 UGUI Toggle开关组件介绍

464 阅读2分钟

「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战

Unity 之 UGUI Toggle组件介绍和简例


开关__控件是让用户打开或关闭某个选项的复选框。

复合组件Toggle的组成:

111

  • Toggle:自身挂载Toggle组件,并且对有对子物体的引用。
  • Background:就是个Image组件,用来当背景图片
  • Checkmark: 也是个Image组件,用来作为选中和未选中的标识
  • Label :是一个Text,用来描述这个Toggle组件的用处

个人理解:一个单选框,通过修改子物体的各个属性来实现开发者要实现的效果。


Toggle的属性面板:

组件

属性名称解释说明
Interactable是否接收点击
Transition确定控件以何种方式对用户操作进行可视化响应的属性。
Navigation确定控件顺序的属性。
Is On开关在开始时是否为打开状态
Toggle Transition开关在其值发生变化时以图形方式作出的反应。提供的选项为 None_(即复选标记直接出现或消失)和 Fade_(即复选标记淡入或淡出)。
Graphic用于复选标记的图像(那个对号√)。
Group此开关所属的开关组。
事件:)
On Value Changed单击开关时调用的方法。该事件可将当前状态作为 bool 类型动态参数发送。
  • "None":无过渡
  • "ColorTint":颜色过渡 (系统默认,也最常用)
  • "SpriteSwap":图片过渡
  • "Animation":动画过渡
  • ToggleGroup:也是组件,可被Toggle的Group属性添加,添加同一个ToggleGroup的Toggle之间只能单选。 ToggleGroup还有个属性“Allow Switch Off“”:允许关闭---- 这个属性勾选则添加ToggleGroup的所有Toggle可以都不选,不勾选则必须选一个

using UnityEngine;
using UnityEngine.UI;

public class ToggleDemo : MonoBehaviour {

    Toggle toggle;
	void GetAttributes() {
        //是否可用
        toggle.interactable = true;
        //过渡模式
        toggle.transition = Selectable.Transition.ColorTint;
        //选中状态
        toggle.isOn = true; 
        //指定组
        toggle.group = GetComponent<ToggleGroup>();
        //当其值发生变化时,切换的反应方式
        toggle.toggleTransition = Toggle.ToggleTransition.Fade; //ToggleTransition.None
        //当状态被改变时触发
        toggle.onValueChanged.AddListener((bool v) => { OnChanged(v); });
    }
	
    void OnChanged(bool v)
    {
        //当前Toggle组件被触发了,todo sth...
    }
}