Ejemplo n.º 1
0
    // Should be here and not in manager.
    private void SetPlayerName()
    {
        ICharacterManager characterManager = GameManager.Instance.CharacterManager;

        if (GameRules.GamePlayerType == GamePlayerType.NetworkMultiplayer)
        {
            Name = PhotonView.Owner == null ? "Player 1" : PhotonView.Owner?.NickName;
        }
        else if (GameRules.GamePlayerType == GamePlayerType.SinglePlayer)
        {
            Name = _characterType.ToString().Split('.')[1];
        }
        else // split screen
        {
            int playerCount = characterManager.GetPlayerCount();
            if (playerCount == 1)
            {
                Name = "Player 1";
            }
            else if (playerCount == 2)
            {
                Name = "Player 2";
            }
            else
            {
                Logger.Error($"Unexpected number of players: {playerCount}");
            }
        }

        gameObject.name = Name;
        Logger.Warning($"Set name of {PlayerNumber} character to {Name}");
    }
Ejemplo n.º 2
0
    // The player number needs to be set from the player character, and not from the manager.
    // The reason is that in a network game, the character that is spawned by the other client will not be spawned here through the manager. However, it will go through the player character's Awake/Start function.
    protected void SetPlayerNumber()
    {
        ICharacterManager characterManager = GameManager.Instance.CharacterManager;

        if (GameRules.GamePlayerType == GamePlayerType.NetworkMultiplayer)
        {
            if (PhotonNetwork.IsMasterClient)
            {
                if (PhotonView.IsMine)
                {
                    PlayerNumber = PlayerNumber.Player1;
                }
                else
                {
                    PlayerNumber = PlayerNumber.Player2;
                }
            }
            else
            {
                if (PhotonView.IsMine)
                {
                    PlayerNumber = PlayerNumber.Player2;
                }
                else
                {
                    PlayerNumber = PlayerNumber.Player1;
                }
            }
        }
        else if (GameRules.GamePlayerType == GamePlayerType.SinglePlayer)
        {
            PlayerNumber = PlayerNumber.Player1;
        }
        else
        {
            if (characterManager.GetPlayerCount() == 0)
            {
                PlayerNumber = PlayerNumber.Player1;
            }
            else
            {
                PlayerNumber = PlayerNumber.Player2;
            }
        }
        Logger.Log(Logger.Initialisation, $"We set the player number to {PlayerNumber}");
    }