IEnumerator Sequence(InteractibleObject f, Item toRemove, bool removeObject, List <Spawnable> spawning, AudioClip toPlay, Sprite newPlayerSprite) { FadeIn(); yield return(new WaitForSeconds(fadeTime + 0.1f)); if (removeObject) { Destroy(f.gameObject); } if (toRemove != null) { inventory.DeleteItem(toRemove); } foreach (var spawnable in spawning) { Transform spawned = Instantiate(spawnable.toSpawn, spawnable.spawnLocation, quaternion.identity); } if (newPlayerSprite != null) { ClickToMoveController player = FindObjectOfType <ClickToMoveController>(); player.GetComponentInChildren <SpriteRenderer>().sprite = newPlayerSprite; } source.PlayOneShot(toPlay); yield return(new WaitForSeconds(toPlay.length + 0.1f)); FadeOut(); }