UnityでMAC用のソフトウェアを開発してます。
Unity上でアプリを動かした際はPhotonに接続できるのですが、ビルドしたものはPhotonに接続できず困っています。
原因と解決策がわかればご教授頂きたいです。
Unityのエディタはバージョン2021.3.4f1を使っています。
コードは下記のとおりです。
public override void OnDisconnected(DisconnectCause cause)のcauseに入っているエラーは下記でした。
DnsExceptionOnConnect
using Photon.Pun; using Photon.Realtime; using UnityEngine; using TMPro; using UnityEngine.UI; public class MatchmakingView : MonoBehaviourPunCallbacks { [SerializeField] private string gameVersion = "0.1"; private string nickName = "Trainer"; [SerializeField] private string roomName = "TestRoom"; [SerializeField] private TMP_InputField passwordInputField = default; [SerializeField] private Button joinRoomButton = default; [SerializeField] Text statusText; [SerializeField] Text btnText; private CanvasGroup canvasGroup; public static bool roomenterdflag = false; public BPM BPM; void Awake() { PhotonNetwork.AutomaticallySyncScene = true; PhotonNetwork.GameVersion = gameVersion; PhotonNetwork.NickName = nickName; } private void Start() { canvasGroup = GetComponent<CanvasGroup>(); // パスワードを入力する前は、ルーム参加ボタンを押せないようにする joinRoomButton.interactable = false; passwordInputField.onValueChanged.AddListener(OnPasswordInputFieldValueChanged); joinRoomButton.onClick.AddListener(OnJoinRoomButtonClick); } public override void OnJoinedRoom() { bool enter = false; foreach (var p in PhotonNetwork.PlayerListOthers) { if (p.NickName == "Student") { enter = true; } } if (enter) { statusText.text = "生徒はログイン済みです"; Invoke(nameof(DelayMethod), 3.0f); ; BPM.bpm_rpc_match(); } else { statusText.text = "生徒のログインを待機中"; } } public override void OnPlayerEnteredRoom(Player newPlayer) { bool enter = false; foreach (var p in PhotonNetwork.PlayerListOthers) { if (p.NickName == "Student") { enter = true; } } if (enter) { statusText.text = "生徒がログインしました"; BPM.bpm_rpc_match(); Invoke(nameof(DelayMethod), 3.0f); ; } } private void OnPasswordInputFieldValueChanged(string value) { // パスワードを6桁入力した時のみ、ルーム参加ボタンを押せるようにする value = value.Replace(" ", "").Replace(" ", ""); joinRoomButton.interactable = (value.Length == 11); } private void OnJoinRoomButtonClick() { if (!PhotonNetwork.InRoom) { switch (Application.internetReachability) { case NetworkReachability.NotReachable: //("ネットワークには到達不可"); canvasGroup.interactable = true; btnText.text = "Login"; statusText.text = "オンライン接続してください"; Invoke(nameof(DelayMethod), 3.0f); ; break; default: joinRoomButton.interactable = true; btnText.text = "Logout"; PhotonNetwork.ConnectUsingSettings(); passwordInputField.interactable = false; break; } } else { btnText.text = "Login"; canvasGroup.interactable = true; PhotonNetwork.Disconnect(); Invoke(nameof(DelayMethod), 3.0f); ; } } public override void OnConnectedToMaster() { // ルーム参加処理中は、入力できないようにする // canvasGroup.interactable = false; // ルームを非公開に設定する(新規でルームを作成する場合) var roomOptions = new RoomOptions(); // roomOptions.MaxPlayers = 2; roomOptions.IsVisible = false; // パスワードと同じ名前のルームに参加する(ルームが存在しなければ作成してから参加する) PhotonNetwork.JoinOrCreateRoom(roomName, roomOptions, TypedLobby.Default); roomenterdflag = true; // Debug.Log("パスワードと同じ名前のルームに参加する"); } void DelayMethod() { statusText.text = ""; } public override void OnJoinRoomFailed(short returnCode, string message) { canvasGroup.interactable = true; btnText.text = "Login"; statusText.text = "サーバーへの接続に失敗しました"; Invoke(nameof(DelayMethod), 3.0f); ; } public override void OnDisconnected(DisconnectCause cause) { statusText.text = "ログアウトしました"; passwordInputField.text = string.Empty; btnText.text = "Login"; passwordInputField.interactable = true; } }
回答1件
あなたの回答
tips
プレビュー