案例一:
使用协程完成场景切换时先变黑再变白的效果
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
public Image image;
void Start()
{
StartCoroutine(FadeToBlack());
}
//颜色变白的过程
IEnumerator FadeToClear()
{
for (int i = 0; i < 100; i++)
{
yield return null;
image.color = Color.Lerp(image.color, Color.clear, 0.02f);
}
//使用for循环与yield return,实现颜色一点一点变化,每循环遍历一次就暂停到下次从被遍历的部分继续开始,
//这样子显示出来的就是分布的步骤,如果颜色不全部变掉,会与遍历的次数有关,可以加以修改调试
}
//颜色变黑
IEnumerator FadeToBlack()
{
for (int i = 0; i < 100; i++)
{
yield return null;
image.color = Color.Lerp(image.color, Color.black, 0.02f);
}
yield return StartCoroutine(FadeToClear());