public IEnumerator RealReset(float resetTime) { if (resetting) { yield break; } resetting = true; resetStartedAt = Time.fixedTime; last = MakeTTFs(); Debug.Log("Starting reset!"); var eoff = new WaitForFixedUpdate(); for (float t = 0.0f; t < resetTime; t += Time.unscaledDeltaTime) { float it = Mathf.Clamp01(t / resetTime); it *= it; for (int i = 0; i < initial.Length; i++) { var newTF = TF.Lerp(last[i].tf, initial[i].tf, it); newTF.Apply(initial[i].transform); } yield return(eoff); } ResetNow(); resetting = false; yield break; }