【Unity】Photonで同じ名前のルームがあるのにphoton game does not existエラーが出る場合の対応

問題

Photon Unity Networkingで、同じ名前のルームを作成/参加するときにphoton game does not existのエラーが出たり、Join出来ずに新規にルームが作成されてしまうことがある。
下記の関数で上手くいかない事象を確認している。

JoinOrCreateRoom
JoinRoom

原因

リージョンが違う可能性がある。
デフォルトでは、Photonが自動で最適な接続先サーバーを選択するが、同じ場所で接続しても違ったリージョンに繋がる場合がある。

現在接続中のリージョンは、下記のスクリプトを書けば確認できる。

Debug.Log(PhotonNetwork.CloudRegion);

対策

接続先のリージョンを指定する。
Assets > Photon > PhotonUnityNetworking > ResourcesにあるPhotonServerSettingsを選択し、Settings > Fixed Regionjpと入力する事で日本サーバーに接続する事ができる。

指定可能なリージョンは下記のサイトで確認できる。(Tokenの文字列を入力する)
doc.photonengine.com

海外展開を考えている場合は基本は自動接続設定にしておいて、必要に応じてユーザーにリージョン選択できる機能を作成するのが良いかもしれない。
その際は下記のようにスクリプトからリージョンを指定すると良い。

PhotonNetwork.PhotonServerSettings.AppSettings.FixedRegion = "jp";