質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

1076閲覧

同じ部屋に入ることができない

HatanoMaruzou

総合スコア0

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/12/24 08:22

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問