Unity UI透明度渐变,淡入淡出
1.方法一:
Text和Image继承自Graphic类,Graphic类中有CrossFadeAlpha()方法可以修改透明度,CrossFadeAlpha(float alpha, float duration, bool ignoreTimeScale),duration秒后透明度变为alpha,ignoreTimeScale:是否受到TimeScale影响。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// <summary> /// 此脚本挂到Text或者Image等继承自Graphic类的组件上(使UI透明度5秒内变为0) /// </summary> public class CrossFadeAlphaTest : MonoBehaviour { Graphic graphic; void Start() { graphic = GetComponent<Graphic>(); graphic.CrossFadeAlpha(0f, 5f, false); } }
2.方法二:
还可以用DoTween插件和CanvasGroup组件搭配使用,CanvasGroup组件所在的物体的所有子物体UI的透明度都会变化。
using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 此脚本挂到CanvasGroup组件所在物体上(使UI透明度5秒内变为0) /// </summary> public class DOTweenCanvasGroupTest : MonoBehaviour { CanvasGroup canvasGroup; void Start() { canvasGroup = GetComponent<CanvasGroup>(); /*//写法一: DOTween.To(() => canvasGroup.alpha, x => canvasGroup.alpha = x, 0, 5).OnComplete(delegate () { Debug.Log("透明度变化完成"); });*/ //写法二: canvasGroup.DOFade(0, 5); } }

浙公网安备 33010602011771号