为photonplayers unity3d设置昵称

问题描述 投票:-2回答:2

我在查看客户端名称时遇到问题,但是在我的主机名称中显示了播放器的名称,所以我所做的就是这样

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();
}

现在它在双方都显示问题是它的优化效果不佳。有人可以帮我吗?

c# unity3d networking photon
2个回答
1
投票

在光子中,您必须检查当前的房间播放器。您的代码更改很少。您不能直接使用玩家人数。更改后,此代码正常工作。

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();
}

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

    public void PlayersName()
    {
        if (PhotonNetwork.CurrentRoom.PlayerCount == 1)
        {
            if (PhotonNetwork.IsMasterClient)
            {
                playerNames[0].text = "Kingdom Player 1";
                playerNames[1].text = "";
            }
        }
        else
        {
            if (PhotonNetwork.IsMasterClient)
            {
                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)
    {
        if (PhotonNetwork.IsMasterClient)
        {
            PlayersName();
        }
        else
        {
           PlayersName();
        }
     }

主客户端是您的第一玩家。您可以使用此代码作为玩家的名字。如果您同样遇到任何问题,请告诉我,否则将其标记为Answerupvote。因此其他人使用此代码。

© www.soinside.com 2019 - 2024. All rights reserved.