Unity Mirror. Клиент и сервер

Делаю мультиплеерную игру - настольный теннис для двоих. В качестве игроков два разных префаба, которые должны спавнится в зависимости от того, есть ли уже игрок на сервере. Если никого нет, то ты игрок 1, если кто-то есть, значит ты игрок 2. Пока что мой свитчер работает лишь на стороне клиента из-за чего при первом подключении друг к другу игроки спавнятся с одинаковым префабом, если кто-то перезайдет, то свитчер переключает на другой префаб. Как вы понимаете, это плохое решение. Сам скрипт:

using Mirror;
using UnityEngine;

public class NetMan : NetworkManager
{
    public struct PlayerJoinMessage : NetworkMessage
    {
        public string name;
    }
    public GameObject PlayerPrefab1, PlayerPrefab2;
    PlayerJoinMessage Message = new PlayerJoinMessage { name = "Player 2" };
    

    
    public override void OnStartServer()
    {
        base.OnStartServer();
        NetworkServer.RegisterHandler<PlayerJoinMessage>(OnPlayerJoin);
    }
    public override void OnClientConnect()
    {
        if (Message.name != "Player 1")
        {
            Message.name = "Player 1";
        }
        else if (Message.name != "Player 2")
        {
            Message.name = "Player 2";
        }
        NetworkClient.Send(Message);
    }
    private void OnPlayerJoin(NetworkConnectionToClient conn, PlayerJoinMessage message)
    {
        if (message.name.Equals("Player 1"))
        {
            GameObject gameObject = Instantiate(PlayerPrefab1);
            player1behaviour player = gameObject.GetComponent<player1behaviour>();
            NetworkServer.AddPlayerForConnection(conn, gameObject);
        }
        else if (message.name.Equals("Player 2"))
        {
            GameObject gameObject = Instantiate(PlayerPrefab2);
            player2behaviour player = gameObject.GetComponent<player2behaviour>();
            NetworkServer.AddPlayerForConnection(conn, gameObject);
        }
    }
}

Ответы (0 шт):