主页 > 游戏开发  > 

Unity淡入淡出

Unity淡入淡出

淡入(Fade in):类似打开幕布

淡出(Fade out):类似关上幕布

方案一  使用Dotween(推荐) using DG.Tweening; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { public Image curtain; private float fadeTime = 1; private void Update() { if (Input.GetKeyDown(KeyCode.A)) { SetAlpha(true);//测试淡入 } if (Input.GetKeyDown(KeyCode.D)) { SetAlpha(false);//测试淡出 } } /// <summary> /// 设置淡入淡出 /// </summary> /// <param name="isFadeIn">是否是淡入</param> private void SetAlpha(bool isFadeIn) { curtain.DOFade(isFadeIn ? 0 : 1, fadeTime); } private void OnDisable() { curtain.DOKill(); } }

方案二 使用协程 using System.Collections; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { public Image fadePlane; private float fadeTime = 1; private void Update() { if (Input.GetKeyDown(KeyCode.A)) { StartCoroutine(Fade(true));//测试淡入 } if (Input.GetKeyDown(KeyCode.D)) { StartCoroutine(Fade(false));//测试淡出 } } IEnumerator Fade(bool isFadeIn) { var from = fadePlane.color; var to = new Color(from.r, from.g, from.b, isFadeIn ? 0 : 1); float speed = 1 / fadeTime; float percent = 0; while (percent < 1) { percent += Time.deltaTime * speed; fadePlane.color = Color.Lerp(from, to, percent); yield return null; } } }

方案三  使用Animation(不推荐)
标签:

Unity淡入淡出由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Unity淡入淡出