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());
    }
Exemple #2
0
    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());
    }