Photonネットワークに接続できない?
Unityでマルチプレイができるゲームを試作したい!と思って色々調べてみると、Photonというものを使えば簡単に実現できるとかで
数行のコードを書くだけで無料で使えるみたいです。ベンリ~~
実際に現在製作を進めているゲームに適用する前に仕組みに慣れるためにテストとして
Photon運営事務局さんの PUNを使ってネットワーク同期を行う -Vol.1- | Photon運営事務局Blog を参考にしながらネットワーク接続を試してみました。
直感的にも使えるわかりやすいコールバック関数などもたくさんあるっぽいので「バカにも優しいな~!」と考えながらチュートリアルを写経していました
繋がらねえ!!!!!!!
SwitchToProtocol: Udp PhotonNetwork.connected: False というメッセージが出て処理が止まってしまいました
コードはほぼコピペでチュートリアルの通りに進めていましたがなぜか出てくるはずのブロックが生成されません
色々試してみるとOnJoinedLobby()メソッドから呼ばれていないようで...
調べてもピンと来なかったので他の動いたコードと見比べていると、他のものにはOnConnectedToMaster()というメソッドも加えられていました。
【Unity、PUN】Photon Unity Networkingのコールバックメソッド一覧 | naichilab - Android iOSアプリ開発メモ
こちらのOnJoinedLobby()の詳細を読んでみると
/// マスターサーバー上のロビーに入った際に呼び出されます。 /// 部屋のリストが更新されるとOnReceivedRoomListUpdate()が呼び出されます。 /// </summary> /// <remarks> /// 注意:PhotonNetwork.autoJoinLobby が false の場合、 /// OnConnectedToMaster() が呼び出され、部屋のリストが利用可能になることはありません。
設定でautoJoinLobbyがOFF(false)になっているとOnConnectedToMaster()メソッドが呼び出されて処理が進まなくなっていたようでした。
修正するにはProjectにあるAssets/Photon Unity Networking/Resources/PhotonServerSettingsからautoJoinLobbyをtrueにするか、スクリプトに
void OnConnectedToMaster(){
PhotonNetwork.JoinRandomRoom();
}
を追加するだけで解決しそうです。
とりあえず自分は解決しましたがプログラミング初心者なので間違ってたら教えてください( ;∀;)