問題
Photon Unity Networkingで、同じ名前のルームを作成/参加するときにphoton game does not exist
のエラーが出たり、Join出来ずに新規にルームが作成されてしまうことがある。
下記の関数で上手くいかない事象を確認している。
JoinOrCreateRoom JoinRoom
原因
リージョンが違う可能性がある。
デフォルトでは、Photonが自動で最適な接続先サーバーを選択するが、同じ場所で接続しても違ったリージョンに繋がる場合がある。
現在接続中のリージョンは、下記のスクリプトを書けば確認できる。
Debug.Log(PhotonNetwork.CloudRegion);
対策
接続先のリージョンを指定する。
Assets > Photon > PhotonUnityNetworking > Resources
にあるPhotonServerSettings
を選択し、Settings > Fixed Region
にjp
と入力する事で日本サーバーに接続する事ができる。
指定可能なリージョンは下記のサイトで確認できる。(Tokenの文字列を入力する)
doc.photonengine.com
海外展開を考えている場合は基本は自動接続設定にしておいて、必要に応じてユーザーにリージョン選択できる機能を作成するのが良いかもしれない。
その際は下記のようにスクリプトからリージョンを指定すると良い。
PhotonNetwork.PhotonServerSettings.AppSettings.FixedRegion = "jp";