// Player Unit Creation Functions public PlayerUnit CreatePlayerUnit(PlayerUnitRank rank, UnitClass unitClass) { // Create player unit object Transform playerUnitPrefab = GetPlayerUnitPrefabFromUnitClass(unitClass); PlayerUnit playerUnit = Instantiate(playerUnitPrefab, playerUnitSpawnLocation).GetComponent <PlayerUnit>(); // Initialize player unit data PlayerUnitData playerUnitData = unitFactory.CreatePlayerUnitData(rank, unitClass); playerUnit.InitializePlayerUnitGameObject(playerUnitData); // Prevent Stacking on Spawn MovePlayerUnitToOffset(playerUnit); // Check Achievement on every player unit creation GameEngine.GetInstance().achievementManager.CheckAchievementsForPlayerUnitCreation(); // Display message MessageType msgType = MessageType.INFO; if (playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.S || playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.X) { msgType = MessageType.POSITIVE; } GameEngine.GetInstance().messageQueue.PushMessage("[" + playerUnit.GetPlayerUnitData().GetRank() + " Rank Unit] " + Utils.CleanEnumString(playerUnit.GetPlayerUnitData().GetUnitClass().ToString()), msgType); // Sound Effect GameEngine.GetInstance().audioManager.PlayAudio(AudioManager.PLAYER_UNIT_CREATION_SOUND); return(playerUnit); }