网站首页 > 知识剖析 正文
4.Toggle
4.1 Toggle
Toggle(开关)是在开和关两个状态下切换,开是勾选了 Is On 选项,关是不勾选 Is On 选项。
Toggle 的构成如下图所示:
其中:Background 和 Checkmark 是两个图像表示开关,Label 是文本。
与 Button 相比多了如下图中的变量:
- Is On - 开关状态
- Toggle Transition - 显示切换时的过渡效果
- Graphic - 配合 Is On,指定图像的显示与不显示
- Group - Toggle Group 必须使用的变量,实现多选一的功能
监听区:
On Value Changed - 值发生变化时的监听,值为 Bool 型。
示例:默认的 Toggle 显示一个勾选框和一段文本,通过修改开和关图像实现如下效果:
(1).准备如上图中的两个图像文件,off.jpg 和 on.jpg。
(2).将图像拖拽到 Project 窗口,并设置其 Texture Type(纹理类型)为 Sprite(2D and UI)。
(3).在 Hierarchy 窗口中右击选择 UI -> Toggle,单击 Toggle 下的 Background,设置其图像为 off,设置 Checkmark 的图像为 on。
示例:使用 Toggle 控制场景中的图像是否显示。(在上面的基础上继续操作)
(1).准备一张图像文件,将图像拖拽到 Project 窗口,并设置其 Texture Type(纹理类型)为 Sprite(2D and UI)。
(2).在 Hierarchy 窗口中右击选择 UI -> Image,并设置其 Source Image 为 (1) 中的图像。
1.通过设置 Toggle 组件的监听区实现
选中 Toggle 组件,在监听区单击 “+” 按钮,将上面的 Image 组件拖拽到监听区,并在 “No Function” 中选择 “GameObject” -> “SetActive”。
2.通过脚本来实现
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ToggleValueChanged : MonoBehaviour
{
private Toggle toggle;
private GameObject image;
// Start is called before the first frame update
void Start()
{
toggle = GetComponent<Toggle>();
image = GameObject.Find("Image");
toggle.onValueChanged.AddListener(OnToggleValueChanged);
}
// Update is called once per frame
void Update()
{
}
void OnToggleValueChanged(bool value)
{
image.SetActive(value);
print("The toggle now is " + value.ToString());
}
}
将脚本拖拽到 Toogle 组件的 Inspector 窗口中。
4.2 Toggle Group
Toggle Group 实现多选一的功能。制作步骤如下:
1.在 Hierarchy 窗口中右击 Canvas ,选择 Create Empty 创建空物体。
2.在 Hierarchy 窗口中选中刚才创建的空物体,在 Inspector 窗口中点击 Add Component -> Toggle Group,添加 Toggle Group 组件。
3.在 Hierarchy 窗口中右击空物体,选择 UI -> Toggle,可以多创建几个,逐个选中创建好的 Toggle,将空物体拖拽到每个子级 Toggle 的 Group 变量中。如下图所示:
4.设置每个子级 Toggle 组件的变量 Is On 为不勾选状态,只保留一个为勾选状态。Toogle Group 组件中的 Allow Switch Off 勾选后允许所有的 Toggle 都处于关的状态。
猜你喜欢
- 2024-11-15 HTML中为元素绑定Class属性与Style样式
- 2024-11-15 不容忽视的 8 个 DOM API(dom based)
- 2024-11-15 WebAPI详细解说【思维导图】(webapi视频教程)
- 2024-11-15 Windows端口转发小工具(window 端口转发)
- 2024-11-15 “万能”箭头函数?你可能要失望了
- 2024-11-15 React-鼠标事件处理(react doubleclick)
- 2024-11-15 深入了解 LocalStorage:JavaScript 中的数据存储利器
- 2024-11-15 JavaScript-浏览器兼容的脚本化class操作
- 2024-11-15 Bootstrap在React中的实现,易于使用的React组件——Reactstrap
- 2024-11-15 Vue3.0新特性探索(vue3.0新特性的typescript)
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)