Page Not Found | Unity Multiplayer Networking
人数制限、タイミング制限に利用します。
チェック必要ないかと思っていけど、ゲーム中にも接続できてしまうので途中参加はできないようにしました。
networkmanager で connection approvalにチェックします。
buffer tirはよくわかりませんが接続バッファなのでチェックしたい内容により max か +αで良いかなと思います。
// check max int approvedCount = 0; private void ApprovalCheck(byte[] connectionData, ulong clientId, NetworkManager.ConnectionApprovedDelegate callback) { //Your logic here bool approve = false; bool createPlayerObject = false; // check max players if( NetworkManager.Singleton.ConnectedClients.Count < maxPlayers && approvedCount < maxPlayers && isRoungeScene ) { approvedCount++; approve = true; createPlayerObject = true; } Debug.Log("Approvalcheck " + approvedCount.ToString()); //If approve is true, the connection gets added. If it's false. The client gets disconnected callback(createPlayerObject, null, approve, Vector3.zero, Quaternion.identity); }
最大接続数とホストが接続待ち状態かをチェックしています。
ConnectedClientsのタイミングではなくその手前で止めてしまうようにapprovedCountを先にチェックしています。
isRoungeSceneはゲーム開始時に変更しています。
コメント