【问题标题】:Set NickName for photonplayers unity3d为 photonplayers unity3d 设置昵称
【发布时间】:2020-01-24 09:19:38
【问题描述】:

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

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


【解决方案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();
}

【讨论】:

  • 这里的问题是,当我离开房间时,例如,我是玩家 1 而你是玩家 2,那么仍然显示玩家 1,但玩家 2 是离开的人而不是正确的人。对吗?
  • 在这种情况下,您必须通过主客户端或播放器列表来管理播放器。
  • 你能给我举个例子吗
  • 当然我会给你另一个答案你可以试试。在我的代码中,它工作正常。
猜你喜欢
  • 2019-06-17
  • 2021-06-01
  • 2017-08-17
  • 2019-07-26
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多