我正在尝试使用Coroutines
旋转魔方的平面,这是我的代码:
IEnumerator RotateUpperFacecw(){
while(Mathf.Abs(totalRotation) < 90f){
totalRotation += 10;
Parent.transform.RotateAround(red.transform.position,Vector3.up,10);
yield return 0;
}
if(Mathf.Abs(totalRotation)>=90f){
totalRotation=0;
Update(UpperFace);
}
}
然而,当我尝试连续两次调用协程时,就像这样
StartCoroutine(RotateUpperFacecw());
StartCoroutine(RotateUpperFacecw());
它给出了错误的结果。
我试着调用第一个,等待一秒然后再次调用它很好,但是我没有得到它,不应该(yield return 0)阻止执行直到这个协程结束?
我错过了什么?
答案 0 :(得分:2)
yield return 0
与yield return false
相同,并等待一个框架
答案 1 :(得分:0)
第二个协程调用不会等待第一个完成,在某个时刻它们将同时运行,两个都试图旋转对象。你可以在第一次调用中第二次调用,但是你需要一个布尔值或者某些东西来避免无限期调用。