我在获取其他网络播放器时遇到问题 我想这样存储。
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];
}
}
}
在服务器中我只找到我的玩家而在其他玩家中我发现两者但不正确 预谢谢你的帮助
答案 0 :(得分:2)
你的问题的标题和你的代码假设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);
}