Skip to content

Canvas Group 组件

NOTE

这是 Unity UGUI 的 Canvas Group 组件。它用于批量控制一组 UI,尤其适合控制一个面板、弹窗、菜单里的所有子 UI。

image-20260713210608585

Unity_UI_CanvasGroup_Inspector_Expanded_Guide

截图字段解释

Alpha:透明度,范围 0 ~ 11 表示完全显示,0 表示完全透明。注意:Alpha = 0 只是看不见,UI 仍然可能挡住点击。

Interactable:是否允许交互。 勾选时,子按钮、输入框、滑动条可以操作;取消后,这一组 UI 都不可交互。

Blocks Raycasts:是否阻挡 UI 点击射线。 勾选时,这组 UI 会挡住鼠标 / 触摸事件;取消后,点击可以穿透到后面的 UI 或物体。

Ignore Parent Groups:是否忽略父级 Canvas Group。 不勾选:会受父级 Canvas Group 影响。 勾选:忽略父级设置,自己独立控制。

隐藏面板时的常用组合

c
canvasGroup.alpha = 0;
canvasGroup.interactable = false;
canvasGroup.blocksRaycasts = false;

显示面板时:

c
canvasGroup.alpha = 1;
canvasGroup.interactable = true;
canvasGroup.blocksRaycasts = true;

常见坑

面板透明了但后面的按钮点不到:通常是 Blocks Raycasts 还开着。 按钮看得见但不能点:检查自己或父级的 Interactable。 只想直接隐藏对象,不需要淡入淡出动画:可以用 gameObject.SetActive(false)

一句话记:Canvas Group 是 UI 面板的总开关:Alpha 管显示,Interactable 管能不能操作,Blocks Raycasts 管挡不挡点击。

参考:Unity 官方文档:Canvas Group | uGUI

文章评价

读完这篇,留下你的看法

暂无审核通过的评价。

登录账号后才能评价。

本站访客数0总站访问量0本页访问量0