0
這是我的代碼部分:如何在Unity Update中使用協程來等待幾秒鐘來旋轉攝像頭? (C#)
void Update(){
CameraFlip();
}
void CameraFlip(){
Quaternion target = Quaternion.Euler (0, 0, 180);
cameraTransform.rotation = Quaternion.Slerp (cameraTransform.rotation, target, Time.deltaTime * 4.0f);
Debug.Log (cameraTransform.rotation.ToString());
StartCoroutine("CameraFlipCoroutine");
}
public IEnumerator CameraFlipCoroutine(){
yield return new WaitForSeconds (Random.Range(6f,12f));
if (gameIsPlaying == false)
yield return null;
Quaternion target = Quaternion.Euler (0, 0, 0);
cameraTransform.rotation = Quaternion.Slerp (cameraTransform.rotation, target, Time.deltaTime * 4.0f);
Debug.Log (cameraTransform.rotation.ToString());
}
所以我想什麼做的是如果事情是在更新方法發生了180個角度來旋轉攝像頭。 (例如,玩家擊中敵人)幾秒鐘後,相機回到原來的位置。
使用我的代碼,第一部分是OK,它會變成我想要的,但是當協程部分到來時,它開始轉動,但它滯後,並且不光滑。
我不知道。有沒有其他方法可以做到這一點?
這是不好的,因爲'cameraTransform.rotation = Quaternion.Slerp(cameraTransform.rotation,target,Time.deltaTime * 4.0f);'這段代碼需要多次調用才能使其翻轉。 – Gabe