製作日誌(仮)

とらいくの製作日誌です

Photonネットワークに接続できない?

Unityでマルチプレイができるゲームを試作したい!と思って色々調べてみると、Photonというものを使えば簡単に実現できるとかで

photonengine.jp

数行のコードを書くだけで無料で使えるみたいです。ベンリ~~

 

実際に現在製作を進めているゲームに適用する前に仕組みに慣れるためにテストとして

Photon運営事務局さんの PUNを使ってネットワーク同期を行う -Vol.1- | Photon運営事務局Blog を参考にしながらネットワーク接続を試してみました。

f:id:trike1236:20161120025053j:plain

直感的にも使えるわかりやすいコールバック関数などもたくさんあるっぽいので「バカにも優しいな~!」と考えながらチュートリアルを写経していました

 

f:id:trike1236:20161120025545j:plain

繋がらねえ!!!!!!!

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からautoJoinLobbytrueにするか、スクリプト

void OnConnectedToMaster(){

PhotonNetwork.JoinRandomRoom();

}

 を追加するだけで解決しそうです。

とりあえず自分は解決しましたがプログラミング初心者なので間違ってたら教えてください(  ;∀;)