如何根据多人游戏中的标签随机化玩家(使用UNITY Networking Lobby Asset)?例如,我产生了标签为“逃离”的玩家,然后我想随机化以确定谁将成为“追逐者”。因此,如果有5个玩家,其中4个应该有“逃离”标签而另一个应该是“追逐者”。我一直在努力做到这一点,但发生的事情是在每个客户端,他们随机化数字,所以有时客户A将在他的视图中被标记为“追逐者”,而在其他视图中,他被标记为“逃离”。所以基本上发生的是它在每个客户端随机化,但我想要的是在服务器中随机化以确定“追逐者”标签。非常感谢帮助。谢谢!
答案 0 :(得分:0)
您需要覆盖OnServerAddPlayer NetworkManager功能或添加新脚本来控制NetworkManager OnServerAddPlayer。
我使用的是NetworkManger,我称之为CNetworkManger,然后在检查员中我将2个对象附加的NetworkIdentity添加到播放器预制件中。
public override void OnServerAddPlayer (NetworkConnection conn, short playerControllerId) {
var player = (GameObject)GameObject.Instantiate(spawnPrefabs[{{ YOUR TAG INDEX }}],
Vector3.zero,
Quaternion.identity);
}