首页 文章

寻找其他网络玩家团结unet

提问于
浏览
0

我在获取其他想要存储的网络播放器时遇到问题 .

void Start ()
{
    GameObject[] players = GameObject.FindGameObjectsWithTag ("Player");
    for (int i = 0; i < players.Length; i++) {
        if (players [i].GetComponent <NetworkIdentity> ().isLocalPlayer) {
            minePlayer = players [i];
        }
        if (!players [i].GetComponent <NetworkIdentity> ().isLocalPlayer) {
            oppenentPlayer = players [i];
        }
    }
}

在服务器中我只找到我的玩家而在其他玩家中我找到了两个但没有正确提前感谢您的帮助

1 回答

  • 2

    你的问题和你的代码的 Headers 假设Unity游戏中只有两个玩家 . 游戏中最多可以有10名玩家,你也应该处理它们 . 您需要找到 PlayerController 中的玩家,这可以通过 NetworkManager.client.connection.playerControllers 进行检索 . 您还必须检查 IsValid 以确保 PlayerController 附有播放器 .

    以下是如何找到网络上的所有玩家:

    NetworkManager networkManager = NetworkManager.singleton;
    
    List<PlayerController> pc = networkManager.client.connection.playerControllers;
    
    for (int i = 0; i < pc.Count; i++)
    {
    
        if (pc[i].IsValid)
            Debug.Log(pc[i].gameObject.name);
    }
    

相关问题