一、前言
在游戏中,经常遇到不同关卡,不同场景之间的过渡,而渐明渐暗则是其中一种比较简单自然的过渡效果,本文则是介绍如何用协程实现此效果。
二、原理
- 控制图片的不透明度实现渐明渐暗
- 使用协程可以在我们需要过渡的时候再调用,节省性能
三、步骤
- 场景UI中放一张黑色Image图片(布满屏幕)
- 新建一个脚本输入以下代码,挂在黑色图片上
private float speed = 2f;//渐明渐暗的速度
private Image image;//当前物体的image组件,记得加上using UnityEngine.UI的命名空间
private void Start()
{
image = transform.GetComponent<Image>();
StartCoroutine(BeBright());//开始渐明
}
Public void PassLevel()//通关或场景过渡时调用此函数使用渐暗效果
{
StartCoroutine(BeDark());
}
IEnumerator BeDark()//渐暗
{
while (1 - image.color.a > 0.05f)
{
image.color = Color.Lerp(image.color, new Color(0, 0, 0, 1), speed *Time.deltaTime);//用逐步增加图片不透明度来
yield return null;//代表每一帧执行返回一次