从协程的统一运行功能

时间:2019-02-02 08:49:23

标签: unity3d coroutine

嗨,为什么这不起作用 我试图从cororotine旋转游戏对象的函数运行,但没有旋转。如果我把旋转在更新它运行良好IM混淆感谢您的帮助。

public class Timer : MonoBehaviour
{
    int timeLeft;
    void Start()
    {
        instruction = GetComponent<Text>();
        InvokeRepeating("time", 0, 1);

        if (SceneManager.GetActiveScene().buildIndex == 7)
        {
            timeLeft = 120;
        }
        else
        {
            timeLeft = 90;
        }
/*
        timeLeft = (SceneManager.GetActiveScene().buildIndex == 7) ? 120 : 90;
*/
    }
}

1 个答案:

答案 0 :(得分:1)

它在更新中起作用的原因是,在每个框架上调用了更新。因此,立方体的每一帧都会旋转6度,并按预期连续旋转

该协同例程仅执行两次旋转,一次旋转到6度,然后在3.1秒后返回0度。

如果要在协例程中轮换,则必须以不同的方式实现它:

例如:

        double time = 0.0f;

        while (time < 3.1f)
        {
            time += Time.deltaTime;
            rotateit();
            yield return null;
        }

这将使多维数据集连续旋转3.1秒,然后停止。