如果已经运行,则终止协同程序并启动新程序

时间:2016-10-02 12:30:53

标签: c# unity3d

使用C#构建Unity3D程序我是Unity和C#的新手。

这是代码,

void Update() {
    //do something with bool unit and eventually it gets to true
    if (Input.GetKeyDown (KeyCode.A)) {
        if (coRunning == true) {
            StopCoroutine ("Coroutine");
            coRunning = false;
        }
        StartCoroutine ("Coroutine");
    }
}

public IEnumerator Coroutine() {
    coRunning = true;
    while (!unit) {
        yield return null;
    }
    GetComponent<Rigidbody> ().transform.Rotate (0, 90, 0);
    coRunning = false;
}

当&#39; A&#39;按下,它应该等到bool&#39; unit&#39;在将身体旋转90度之前是正确的。如果单位在另一个&#39; A&#39;之前没有成立。按下,原始的Coroutine应该停止,新的应该开始。

然而,当我按下A&#39;两次,当单位变为真时,身体旋转180度。对这个问题有任何帮助吗?

提前致谢,

0 个答案:

没有答案