Bootstrap

【Unity】使用Canvas Group改变UI的透明度

一、前言

在平时开发中,可以通过控制材质、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(02);
	}
}
;