private void InitializeComponentsInChildren() { environmentTransforms = GetComponentsInChildren <Transform> (); SpriteRenderer groundSprite = environmentTransforms [environmentTransforms.Length - 2].GetComponent <SpriteRenderer> (); npcSpawner = GetComponentInChildren <NPCSpawner> (); npcSpawner.Initialize(3, groundSprite); List <Transform> npcTransforms = npcSpawner.GetNPCTransforms(); platformSpawner = GetComponentInChildren <PlatformSpawner> (); platformSpawner.Initialize(npcTransforms, groundSprite); playerData = SaveSystem.LoadPlayer(); player.Initialize(this, playerData); player.transform.position = platformSpawner.GetPlayerSpawnPoint(); meteorSpawner = GetComponentInChildren <MeteorSpawner> (); meteorSpawner.Initialize(); uiInGameHandler = GetComponentInChildren <UIInGameHandler> (); uiInGameHandler.Initialize(player, npcTransforms); NPCController [] npcControllers = FindObjectsOfType <NPCController> (); foreach (NPCController npc in npcControllers) { npc.Initialize(this, player.playerData.upgradeLevels[1]); } }