协程不工作,所有代码立即调用,没有任何收益或等待

r01*_*128 -2 unity-game-engine

我试图调用一个设置一些变量的协同程序,等待几秒钟,然后将它们设置回来.

不幸的是,整个协程都在同时开始,无需等待.在这种情况下,它几乎就像从未调用过该函数一样.

public void Dash(){
    lastDashTime = Time.time + dashWaitDuration;

    motionBlur (); //this call is not working as expected

    animator.SetFloat ("Speed", 0);
    playerRigidBody.MovePosition (playerRigidBody.position + transform.forward * 1.75f);
}


//this is the coroutine
IEnumerator motionBlur(){
    print ("Hello");
    camMotionBlur.jitter = 10;
    camMotionBlur.enabled = true;

    yield return new WaitForSeconds (2);

    camMotionBlur.enabled = false;
    camMotionBlur.jitter = 0.125f;
}
Run Code Online (Sandbox Code Playgroud)

Sam*_*ion 6

如果您尝试在C#中启动协程,则需要调用StartCoroutine:

StartCoroutine(motionBlur());
Run Code Online (Sandbox Code Playgroud)