Appearance
Toggle


1. Rect Transform
截图中:
- 锚点:
center / middle - Position:
0, 0, 0 - Width:
160 - Height:
20 - Pivot:
0.5, 0.5 - Scale:
1, 1, 1
说明这个 Toggle 位于父级中心,尺寸为 160 × 20。
Rect Transform 决定:
- Toggle 的位置
- Toggle 的点击区域
- Toggle 的宽高
- Toggle 的旋转和缩放
2. Interactable
截图中 Interactable 已勾选。
- 开启:Toggle 可以点击。
- 关闭:Toggle 不接受输入,并使用
Disabled Color显示。
如果 Toggle 点击没有反应,首先检查:
c
Interactable 是否开启3. Transition
截图当前为:
c
Color Tint它会根据 Toggle 当前状态改变目标图形的颜色。
Color Tint
主要状态包括:
Normal Color:正常状态。Highlighted Color:鼠标悬停或获得焦点。Pressed Color:鼠标按下或触摸按下。Selected Color:被键盘或手柄导航选中。Disabled Color:不可交互状态。Color Multiplier:颜色强度。Fade Duration:颜色过渡时间,截图中为0.1秒。
截图中的:
c
Target Graphic = Background (Image)表示这些颜色会应用到 Background 这个 Image 上。
Transition 下拉选项
None:没有状态变化。Color Tint:使用颜色变化。Sprite Swap:不同状态替换不同 Sprite。Animation:使用 Animator 制作状态动画。
Animation 模式需要:
- Animator 组件
- Animator Controller
- Normal、Highlighted、Pressed、Disabled 等动画触发器
4. Toggle Transition
截图中为:
c
Fade它控制勾选图标的出现方式:
None:勾选图标立即出现或消失。Fade:勾选图标淡入或淡出。
5. Is On
截图中 Is On 已勾选,表示 Toggle 初始状态为打开。
c
toggle.isOn = true;
toggle.isOn = false;读取当前状态:
c
bool currentState = toggle.isOn;常见用途:
- 音乐开关
- 音效开关
- 自动播放开关
- 难度选项
- 画质选项
- 游戏设置
6. Graphic
截图中:
c
Graphic = Checkmark (Image)表示这个 Image 是勾选图标。
Toggle 的工作逻辑可以理解为:
c
Is On = true → 显示 Checkmark
Is On = false → 隐藏 Checkmark如果 Toggle 状态确实发生变化,但画面上没有勾选图标,检查:
Graphic是否引用了 Checkmark。- Checkmark 对象是否被禁用。
- Checkmark 的颜色 Alpha 是否为 0。
- Checkmark 是否被父级 Mask 裁剪。
7. Group
截图中的:
c
Group = Toggle (Toggle Group)表示这个 Toggle 属于一个 Toggle Group。
Toggle Group 可以让多个 Toggle 互相排斥,常用于制作单选效果。
例如:
c
难度选择:
○ 简单
● 普通
○ 困难同一个 Toggle Group 中,通常只能有一个 Toggle 处于 On 状态。
8. Toggle Group
截图下方的 Toggle Group 组件中:
c
Allow Switch Off = Off含义是:
- 当前选中的 Toggle 不能再次点击关闭。
- 组中始终至少有一个 Toggle 为 On。
如果打开 Allow Switch Off:
- 再次点击当前 Toggle,可以将它关闭。
- 组中允许所有 Toggle 都为 Off。
适用场景:
- 角色选择
- 游戏难度选择
- 画质选择
- 语言选择
- 标签页切换
- 单选菜单
需要注意:场景开始时如果多个 Toggle 都是 On,Toggle Group 不一定会自动立即修正,最好手动保证初始状态只有一个开启。Unity Toggle Group 手册
9. Navigation
截图中:
c
Navigation = Automatic表示 Unity 会自动寻找相邻的 UI 控件,用键盘方向键、手柄方向键或 D-pad 切换焦点。
常见选项:
None:关闭键盘和手柄导航。Horizontal:只允许左右移动。Vertical:只允许上下移动。Automatic:自动寻找邻近控件。Explicit:手动指定上下左右的目标。Visualize:在 Scene 窗口中显示导航连线。
键盘、手柄菜单建议使用 Automatic 或 Explicit。Unity Navigation 手册
10. On Value Changed
截图中:
c
On Value Changed (Boolean)
空列表表示 Toggle 状态改变时,目前还没有绑定任何事件。
点击右下角的 +,可以绑定一个脚本方法。
方法必须接收一个 bool 参数:
c
using UnityEngine;
public class ToggleDemo : MonoBehaviour
{
public void OnMusicChanged(bool enabled)
{
Debug.Log("音乐开关状态:" + enabled);
if (enabled)
{
Debug.Log("播放音乐");
}
else
{
Debug.Log("关闭音乐");
}
}
}在 Inspector 中绑定方法后:
c
Toggle 状态改变
↓
On Value Changed
↓
OnMusicChanged(bool)Toggle 会自动把当前状态传递给方法。Unity Toggle 手册
11. 常见问题
Toggle 不能点击:
- 检查
Interactable。 - 检查 Canvas 是否有
Graphic Raycaster。 - 检查场景是否有
EventSystem。 - 检查前面是否有其他 UI 遮挡。
Toggle 没有勾选图标:
- 检查
Graphic是否引用 Checkmark。 - 检查 Checkmark 是否激活。
- 检查 Checkmark 的 Image 颜色和 Alpha。
- 检查是否被 Mask 裁剪。
多个 Toggle 同时打开:
- 检查它们是否引用同一个 Toggle Group。
- 检查初始
Is On设置。 - 检查是否在脚本中反复设置状态。
Toggle 无法取消:
- 这是因为
Toggle Group > Allow Switch Off没有开启。 - 单选菜单通常保持关闭。
- 普通设置开关可以开启。
一句话记忆:
Toggle管一个布尔值,Graphic管勾选图,Transition管状态反馈,Toggle Group管互斥,On Value Changed管脚本逻辑。
SVG 已重新预览检查,文字没有越框或重叠。