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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Photon Server

Photon Serverは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つで、サーバにインストールして使うサーバアプリケーションです。全てカスタマイズが可能で権限管理もできます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

1668閲覧

Unity、PUN2でPhoton Networkに接続できない

studyUSAAA

総合スコア17

Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Photon Server

Photon Serverは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つで、サーバにインストールして使うサーバアプリケーションです。全てカスタマイズが可能で権限管理もできます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2022/05/23 19:58

こちらの動画(https://www.youtube.com/watch?v=Kta88gOe95Q
)を参考にphotonでのマッチング機能を作ろうとしています。(PUNネットワークに繋がったらルームを作ったり入れたりするボタンが表示される機能)
動画に則ってPhotonの登録や開発を進めていったのですが、

UnassignedReferenceException: The variable loadingPanel of PhotonManager has not been assigned. 
You probably need to assign the loadingPanel variable of the PhotonManager script in the inspector.
PhotonManager.CloseMenuUI () (at Assets/Resources/Script/PhotonManager.cs:37)
PhotonManager.Start () (at Assets/Resources/Script/PhotonManager.cs:21)

というエラーが発生し、Photon Networkに接続できない状況です。

PhotonManager の変数 loadingPanel は割り当てられておらず、インスペクタでPhotonManagerスクリプトのloadingPanel変数を代入する必要があるという内容のエラーなのですが、コードも参考動画と同じことを書いてあるので何が原因かわかりません。(エラーの対象スクリプト部分の画像を添付しておきます
イメージ説明
イメージ説明

参考画像に添付している通り、 loadingPanelには対応オブジェクトをアタッチさせています。
詳しい方助けてください。
イメージ説明

C#

1using System.Collections.Generic; 2using UnityEngine; 3using UnityEngine.UI; 4using Photon.Pun; 5using Photon.Realtime; 6 7public class PhotonManager : MonoBehaviourPunCallbacks 8{ 9 public static PhotonManager instance; 10 public GameObject loadingPanel; 11 public Text loadingText; 12 public GameObject buttons; 13 14 private void Awake() 15 { 16 instance = this; 17 } 18 // Start is called before the first frame update 19 private void Start() 20 { 21 CloseMenuUI(); 22 23 loadingPanel.SetActive(true); 24 loadingText.text = "ネットワークに接続中..."; 25 26 if (!PhotonNetwork.IsConnected) 27 { 28 PhotonNetwork.ConnectUsingSettings(); 29 } 30 31 } 32 33 // Update is called once per frame 34 35 public void CloseMenuUI() 36 { 37 loadingPanel.SetActive(false); 38 buttons.SetActive(false); 39 } 40 41 public void LobbyMenuDisplay() 42 { 43 CloseMenuUI(); 44 buttons.SetActive(true); 45 } 46 47 public override void OnConnectedToMaster() 48 { 49 //PhotonNetwork.JoinRandomRoom(); 50 PhotonNetwork.JoinLobby(); 51 loadingText.text = "ロビーへ参加中..."; 52 } 53 54 public override void OnJoinedLobby() 55 { 56 LobbyMenuDisplay(); 57 } 58 59 60 61} 62

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

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

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

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

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

YOshim

2022/05/24 06:10 編集

エラーが発生するのはどのタイミングでしょうか。 エラー内容とPhotonは関連がなさそうですが、よりシンプルな内容で確認することをおすすめします。
studyUSAAA

2022/05/24 06:15

ご回答いただきありがとうございます。 loadingPanelのネットワークに接続中...が表示された状態で止まるので、photonネットワークに繋がっていないのではと考えております。(OnConnectedToMasterやOnJoinedLobbyが機能していないため)
YOshim

2022/05/24 06:32

スクリプトはPhotonManagerだけでしょうか。 他のスクリプトでオブジェクトを消したりしてないですかね。
guest

回答1

0

ベストアンサー

おそらく、loadingPanelの下にloadingTextがあるので、loadingPanelが非activeな状態でloadingTextを呼び出すことでエラーが出ているのではと思われます。

public override void OnConnectedToMaster() { //PhotonNetwork.JoinRandomRoom(); PhotonNetwork.JoinLobby(); loadingText.text = "ロビーへ参加中..."; }

ここで、ロビーに入ると LobbyMenuDisplay();が呼ばれ、その中でCloseMenuUI();が実行されます。結果loadingPanelが非アクティブになります。その直後にloadingTextが呼ばれても親要素が非アクティブなのでエラーになっていると思われます。多分。

loadingText.text = "ロビーへ参加中...";

の箇所を

loadingPanel.setActive(true); loadingText.text = "ロビーへ参加中...";

とすれば解決しませんかね。

投稿2022/05/24 06:45

編集2022/05/24 06:47
YOshim

総合スコア1085

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

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

YOshim

2022/05/24 06:52 編集

loadingText.text = "ロビーへ参加中..."; PhotonNetwork.JoinLobby(); と記述の順番を逆にするだけでも解決しそうな気がしますがどうですかね。
studyUSAAA

2022/05/25 04:43

お忙しい中、ご丁寧に教えていただきありがとうございました! YOshim様のアドバイスに沿って修正してみたところ、うまくいきました!本当にありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問