IEnumerator ResetRoom(GameObject player, Animator anim) { yield return(new WaitForSeconds(1f)); Vector3 startingVector = newLifeObject.transform.position; float lerpAmount = 0; player.transform.position = startingVector; player.transform.rotation = respawnRotation; Destroy(newLifeObject); anim.SetBool(hash.boolDead, false); AudioSource.PlayClipAtPoint(newLifeSFX, transform.position, StaticVariables.defaultVolume); yield return(new WaitForSeconds(0.5f)); while (player.transform.position != respawnPosition) { player.transform.position = Vector3.Lerp(startingVector, respawnPosition, lerpAmount * Time.fixedDeltaTime); lerpAmount += 40 * Time.fixedDeltaTime; yield return(new WaitForFixedUpdate()); } Enums.inputMode = Enums.InputMode.GAMEPLAY; StartCoroutine(spawner.Spawner()); }
IEnumerator SpawnAnim() { float rotationValue = 360 / 8; while (Enums.inputMode == Enums.InputMode.POST_VICTORY) { yield return(new WaitForFixedUpdate()); } while (chunks.Count != 0) { foreach (GameObject[] chunk in chunks) { for (int i = 0; i < chunk.Length; i++) { chunk[i].transform.RotateAround(core.transform.position, Vector3.forward, rotateSpeed * Time.fixedDeltaTime); } } if (chunks[0][2].transform.localRotation.eulerAngles.z >= rotationValue) { AudioSource.PlayClipAtPoint(lockIn, transform.position, StaticVariables.defaultVolume); chunks.RemoveAt(chunks.Count - 1); rotationValue += 360 / 8; } if (chunks.Count == 1 && chunks[0][2].transform.localRotation.eulerAngles.z <= 0f) { AudioSource.PlayClipAtPoint(lockIn, transform.position, StaticVariables.defaultVolume); chunks.RemoveAt(chunks.Count - 1); } yield return(new WaitForFixedUpdate()); } Enums.inputMode = Enums.InputMode.GAMEPLAY; StartCoroutine(spawner.Spawner()); }