【Unity】使用Canvas Group改变UI的透明度
目录
- 一、前言
- 二、Canvas Group
- 三、结合DOTween达到画面淡进的效果
一、前言
在平时开发中,可以通过控制材质、Color改变UI透明度,除此之外还可以CanvasGroup组件来控制透明度。
二、Canvas Group
官方文档链接👉👉 点击进入
画布组 (Canvas Group) 可集中控制整组 UI 元素的某些方面,而无需单独处理每个元素。画布组的属性会影响所在的游戏对象以及所有子对象。
- Alpha:此组中的 UI 元素的不透明度。该值介于 0 和 1 之间,其中 0 表示完全透明,1 表示完全不透明。请注意,UI 元素也会保留自己的透明度,因此画布组的 Alpha 值将与各个元素的 Alpha 值彼此相乘。
- Interactable:确定此组件是否接受输入。当设置为 false 时,禁用交互。
- Block Raycasts:此组件是否作为射线投射的碰撞体?需要在连接到画布的图形射线投射器上调用 RayCast 函数。这_不_适用于 Physics.Raycast。
- Ignore Parent Groups:此组还会受到游戏对象层级视图中更上层的画布组 (Canvas Group) 组件中的设置所影响,还是会忽略并因此覆盖这些设置?
三、结合DOTween达到画面淡进的效果
新建一个脚本,得到Canvas Group的控件,然后调用DOTween里面的DOFade(float endValue,float duration) 函数,第一个参数是目标Alpha值,如果想让图片完成消失,则设置为0;第二个参数是消失这个过程需要的时间。
public class WhiteImageFade0ut : MonoBehaviour
{
public CanvasGroup canvasGroup;
void Start()
{
canvasGroup.DOFade(0,2);
}
}