案例一:
使用协程完成场景切换时先变黑再变白的效果
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());
}
}
标准一点,可以写成
using UnityE

本文深入探讨了如何在循环中有效使用协程,详细阐述了协程如何提升循环效率和并发性能,通过实例解析了协程在各种循环场景下的应用技巧。

被折叠的 条评论
为什么被折叠?



