前提・実現したいこと
UnityとPUN2を使い、対戦ゲームのiOSアプリを作成しています。
その中で、マッチメイキング機能を実装しているのですが、Unityのエディタ上では同じ部屋に入ることができるのですが、実際に実機で試すと、それぞれ別の部屋に飛ばされてしまい、理由が分からず困っています。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using Photon.Pun; 5using Photon.Realtime; 6 7public class NetworkManager : MonoBehaviourPunCallbacks { 8 9 static public bool isJoined = false; 10 11 // Start is called before the first frame update 12 void Start() { 13 PhotonNetwork.ConnectUsingSettings(); 14 PhotonNetwork.NickName = PlayerPrefs.GetString("name", "no name"); 15 16 } 17 18 void OnGUI() { 19 20 GUI.skin.label.fontSize = 48; 21 22 23 //ログインの状態を画面上に出力 24 GUILayout.Label(PhotonNetwork.NetworkClientState.ToString()); 25 GUILayout.Label(GameManager.isIndexOne.ToString()); 26 foreach (var player in PhotonNetwork.PlayerList) { 27 GUILayout.Label($"{player.NickName}({player.ActorNumber}) - {player.GetScore()} - {player.GetPlayerIsFinished()}"); 28 } 29 } 30 31 //ルームに入室前に呼び出される 32 public override void OnConnectedToMaster() { 33 // "room"という名前のルームに参加する(ルームが無ければ作成してから参加する) 34 //PhotonNetwork.JoinOrCreateRoom("room", new RoomOptions(), TypedLobby.Default); 35 36 PhotonNetwork.JoinRandomRoom(); 37 38 } 39 40 // ランダムで参加できるルームが存在しないなら、新規でルームを作成する 41 public override void OnJoinRandomFailed(short returnCode, string message) { 42 43 // ルームの参加人数を2人に設定する 44 var roomOptions = new RoomOptions(); 45 roomOptions.MaxPlayers = 2; 46 47 // ルームオプションにカスタムプロパティを設定 48 ExitGames.Client.Photon.Hashtable customRoomProperties = new ExitGames.Client.Photon.Hashtable 49 { 50 { "stage1", 1 }, 51 { "stage2", 1 }, 52 { "stage3", 1 }, 53 { "stage4", 1 }, 54 55 }; 56 roomOptions.CustomRoomProperties = customRoomProperties; 57 58 PhotonNetwork.CreateRoom(null, roomOptions); 59 } 60 61 public override void OnJoinedRoom() { 62 63 isJoined = true; 64 65 // ルームが満員になったら、以降そのルームへの参加を不許可にする 66 if (PhotonNetwork.CurrentRoom.PlayerCount == PhotonNetwork.CurrentRoom.MaxPlayers) { 67 PhotonNetwork.CurrentRoom.IsOpen = false; 68 } 69 70 ExitGames.Client.Photon.Hashtable customRoomProperties = PhotonNetwork.CurrentRoom.CustomProperties; 71 72 PhotonNetwork.CurrentRoom.SetCustomProperties(customRoomProperties); 73 74 } 75 76 public override void OnDisconnected(DisconnectCause cause) { 77 FadeManager.Instance.LoadScene ("Title", 0.1f); 78 } 79 80 public override void OnPlayerLeftRoom(Player otherPlayer) { 81 Debug.Log($"{otherPlayer.NickName}が退出しました"); 82 } 83 84 public override void OnLeftLobby() { 85 Debug.Log("ロビーから退出しました"); 86 } 87 88}
試したこと
Unityエディタと実機で試した結果、同じ部屋に入ることができました。
補足情報(FW/ツールのバージョンなど)
Unity - 2020.3.19f1
あなたの回答
tips
プレビュー