Установить никнейм для фотоплееров unity3d - PullRequest
0 голосов
/ 24 января 2020

У меня проблема с отображением имени на стороне клиента, но на моей главной стороне отображаются имена игроков, поэтому я сделал это следующим образом

public override void OnPlayerEnteredRoom(Player newPlayer)
{
    PlayersName();
}

private void PlayersName()
{
    if (playerCount == 1)
    {
        playerNames[0].text = "Kingdom Player 1";
        playerNames[1].text = "";
    }
    else
    {
        playerNames[0].text = "Kingdom Player 1";
        playerNames[1].text = "Kingdom Player 2";
    }
}

public override void OnPlayerLeftRoom(Player otherPlayer)
{
    PlayersName();
}

Теперь он отображает проблему с обеих сторон. является то, что это не хорошо оптимизировать. Может кто-нибудь помочь мне, пожалуйста?

1 Ответ

1 голос
/ 24 января 2020

В фотоне вы должны проверить свою текущую комнату игроков. У вас слишком мало изменений в вашем коде. Вы не можете напрямую использовать количество игроков. после изменения этот код работает правильно.

public override void OnPlayerEnteredRoom(Player newPlayer)
{
    PlayersName();
}

public void PlayersName()
{
    if (PhotonNetwork.CurrentRoom.PlayerCount == 1)
    {
        playerNames[0].text = "Kingdom Player 1";
        playerNames[1].text = "";
    }
    else
    {
        playerNames[0].text = "Kingdom Player 1";
        playerNames[1].text = "Kingdom Player 2";
    }
}
public override void OnPlayerLeftRoom(Player otherPlayer)
{
    PlayersName();
}
...