Photonでルームに参加しているメンバーの一覧を出してみる
前回
前回の記事では、ルームの作成や入室処理を実装してみました。
今回は、この流れで、ルームに参加しているメンバーの一覧を表示したいと思います。
今回の課題
- 参加者の名前の設定
- 参加者の一覧を出す
- 入退室時のコールバックを活用する
今回の課題としてはこんな感じです。
レッツゴー!
参加者の名前の設定
参加者の一覧を出すには、まず、その参加者を特定するために、名前を仮でもいいので定義する必要性があります。
PhotonNetwork.playerName
プレイヤーのニックネームを、入室したRoom内の全員に同期します。これはPhotonPlayer.nameを設定します。
playerNameはただのニックネームで、一意である必要はなく、アカウントと共にバックアップする必要もありません。
この値はいつ(たとえば接続前に)設定しても、プレイしている相手の誰に対しても有効です。
プレイヤー名には PhotonPlayer.name を使ってアクセスしてください。
PhotonNetwork.otherPlayersは他プレイヤーの一覧です。含んでいるどれもが、リモートプレイヤーが設定したplayerNameです。
一意である必要性はないんですね!
それであれば、適当に設定するんで大丈夫そうです。
今回は、こんな感じで適当に設定されるようにしておきます。
参加者の一覧を表示する
ルームへの他参加者は PhotonNetwork.otherPlayers
内に格納されているようです。
PhotonNetwork.otherPlayers
ローカルプレイヤーを含まない、他のPhotonPlayerです。
なるほど、自分は含んでいないんですね。
PhotonNetwork.playerList
PhotonPlayerすべての一覧です。ローカルプレイヤーも含みます。
お!こちらはプレイヤー自身も含んでいるんですね!
今回は、こちらを使用する事にしましょう。
参加者の一覧を出すためのコーディング
参加者の一覧を表示するにあたって、ルーム入退出時に呼び出されるコールバックがあると便利そうですよね!
先ほどの、OnJoinedRoom
はどうもローカルプレイヤーのみに反応しているようなので、
リモートプレイヤーに反応する OnPhotonPlayerConnected
の方を使う必要がありそうです。
うん。大丈夫そうですね!
次回に向けて
次回は、他プレイヤーが接続してきている事をハッキリ確認できたので、 画面上にキャラクターモデルを配置して同期をとるところまで試してみようと思います。