0
我想用我的協程來平滑插入多個GameObjects的位置和旋轉,並附上腳本。當我啓動協程時,光滑的部分工作正常,但我的所有對象都移動到同一位置,這不是我想要的。我想明白爲什麼會這樣,以及是否有一個聰明的方法來處理它。協程調用堆棧
這是我的協同程序是什麼樣子:
IEnumerator interpolate_Plate(Transform targ)
{
float passedTime = 0;
while (!transform.Equals(targ))
{
passedTime += Time.deltaTime;
transform.position = Vector3.Lerp(transform.position, targ.position, passedTime);
transform.rotation = Quaternion.Lerp(transform.rotation, targ.rotation,passedTime);
yield return null;
}
yield break;
}
我在想,在它的列表創建mastercoroutine,然後調用平滑部分。 問題只是,Targ的引用總是被重置爲堆棧上的所有協程調用?
正如你所需要調用協程的功能:
public void move_Plate(Transform newPosition)
{
StartCoroutine(interpolate_Plate(newPosition));
}
你打算如何調用interpolate_Plate? –
您必須展示如何啓動協程。此外,你的最後一次休息是無用的,因爲協程在任何時候都會退出。 – Everts
無論如何,您可能不需要協程,在Update中移動邏輯可能足以滿足您的需求。 –