首页 > 解决方案 > 在Unity中打破while循环?

问题描述

如何摆脱协程内的这个 while 循环?即使达到该值,调试消息也会持续出现。

void Start()
    {
        StartCoroutine(StartFadingIn());

    }
IEnumerator StartFadingIn()
    {
        float i = 0f;
        while(i!=1f)
        {
            Color color = Downward.material.color;
            color.a = i;
            Downward.material.color = color;
            yield return new WaitForSeconds(0.05f);
            i = i+0.1f;
            Debug.Log("Repeat");
        }
    }

标签: c#unity3d

解决方案


void Start()
{
    StartCoroutine(StartFadingIn());

}
IEnumerator StartFadingIn()
{
    float i = 0f;
    while (Mathf.Abs(i - 1f) > 1e-5)
    {
        Color color = Downward.material.color;
        color.a = i;
        Downward.material.color = color;
        yield return new WaitForSeconds(0.05f);
        i = i+0.1f;
        Debug.Log("Repeat");
    }
}

推荐阅读