public void SpawnPlayer(int playerNumber, bool recreateGameObject = true)
    {
        if (recreateGameObject == false)
        {
            switch (playerNumber)
            {
            case 1:
                players[playerNumber - 1].GetComponentInChildren <PlayerController>().transform.position = player1Spawn.position;
                break;

            case 2:
                players[playerNumber - 1].GetComponentInChildren <PlayerController>().transform.position = player2Spawn.position;
                break;

            case 3:
                players[playerNumber - 1].GetComponentInChildren <PlayerController>().transform.position = player3Spawn.position;
                break;

            case 4:
                players[playerNumber - 1].GetComponentInChildren <PlayerController>().transform.position = player4Spawn.position;
                break;

            default:
                break;
            }

            return;
        }

        // If we have a player in that spot, delete it
        if (players[playerNumber - 1] != null)
        {
            Destroy(players[playerNumber - 1]);
            players[playerNumber - 1] = null;
        }

        GameObject newPlayer = null;

        // Switch on the different players to spawn them in different spots
        switch (playerNumber)
        {
        case 1:
            newPlayer = Instantiate(playerPrefab, player1Spawn.position, player1Spawn.rotation) as GameObject;
            break;

        case 2:
            newPlayer = Instantiate(playerPrefab, player2Spawn.position, player2Spawn.rotation) as GameObject;
            break;

        case 3:
            newPlayer = Instantiate(playerPrefab, player3Spawn.position, player3Spawn.rotation) as GameObject;
            break;

        case 4:
            newPlayer = Instantiate(playerPrefab, player4Spawn.position, player4Spawn.rotation) as GameObject;
            break;

        default:
            break;
        }

        // Set the gameObject name
        newPlayer.name = "Player " + playerNumber.ToString();

        // Add to the player array in the correct spot
        players[playerNumber - 1] = newPlayer;

        PlayerController newPlayerController = newPlayer.GetComponentInChildren <PlayerController>();

        // Set each players number
        newPlayerController.playerNumber = playerNumber;
        // Set the controller number
        newPlayerController.controller = (XboxCtrlrInput.XboxController)playerNumber;
        // Set player as alive
        newPlayerController.isAlive = true;

        LookRotation newLookRotation = newPlayer.GetComponentInChildren <LookRotation>();

        newLookRotation.StartUp();
        newLookRotation.LookTowards(Vector3.back * 1000);

        playerColourPicker.SetUp(players);
    }
Example #2
0
    void RespawnPlayer(int playerNumber)
    {
        if (players[playerNumber - 1] != null)
        {
            if (zoneManager.zonePosition == ZoneManager.ZonePosition.Centre)                           // If the zone is in the centre
            {
                players[playerNumber - 1].transform.position = outerSpawns[playerNumber - 1].position; // Spawn on outer spawn
            }
            else
            {
                players[playerNumber - 1].transform.position = centreSpawns[playerNumber - 1].position; // Spawn in the centre
            }

            //// Switch on the different players to spawn them in respective spots
            //switch (playerNumber)
            //{
            //    case 1:
            //        players[playerNumber - 1].transform.position = player1Spawn.position;
            //        break;
            //    case 2:
            //        players[playerNumber - 1].transform.position = player2Spawn.position;
            //        break;
            //    case 3:
            //        players[playerNumber - 1].transform.position = player3Spawn.position;
            //        break;
            //    case 4:
            //        players[playerNumber - 1].transform.position = player4Spawn.position;
            //        break;
            //    default:
            //        break;
            //}

            // Set player as alive
            players[playerNumber - 1].GetComponent <PlayerController>().isAlive = true;

            players[playerNumber - 1].GetComponent <Rigidbody>().velocity = Vector3.zero;

            LookRotation lookRotation = players[playerNumber - 1].transform.parent.GetComponentInChildren <LookRotation>();
            lookRotation.LookTowards(zone.transform.position);
        }

        //// Set the gameObject name
        //newPlayer.name = "Player " + playerNumber.ToString();

        //// Add to the player array in the correct spot
        //players[playerNumber - 1] = newPlayer;

        //PlayerController newPlayerController = newPlayer.GetComponentInChildren<PlayerController>();
        //// Set each players number
        //newPlayerController.playerNumber = playerNumber;
        //// Set the controller number
        //newPlayerController.controller = (XboxCtrlrInput.XboxController)playerNumber;
        //// Set player as alive
        //newPlayerController.isAlive = true;

        //LookRotation newLookRotation = newPlayer.GetComponentInChildren<LookRotation>();
        //newLookRotation.StartUp();
        //newLookRotation.LookTowards(zone.transform.position);

        ////TODO do this is a better spot or a better way
        //playerColourPicker.SetUp(players);
    }