はじめに
・photon pun2 の勉強したけど最近使わなくなったので、忘れる前にまとめておこうと思います
・必要な処理をすべて書くとコード量がすごいことになってしまうので、最低限の骨格だけを書いていきます
・photon pun2 の概要と、オンラインゲームの作り方がこの記事をみて少しでもわかるようになってくれれば嬉しいです
接続について
・下の図が接続の大まかな流れです
・ネームサーバーでは世界中にある photon cloud のリージョンサーバーから適切なリージョンを自動的に選択してくれるので実装する側はあまり気にしなくても大丈夫です、僕も初めて知りました
・実装する人はネームサーバーより後ろからみるとわかりやすいかもしれないです
コードについて
MonoBehaviour PunCallbacks
MonoBehaviour PunCallbacks を継承すれば ルームに参加や退出したときにコールバックを受け取れます
ユーザー → マスターサーバー
public void Start()
{
if (! PhotonNetwork.IsConnected)
{
// inspectorで設定したネットワークの設定でネットワークに接続する
PhotonNetwork.ConnectUsingSettings();
}
}
マスター → ロビー
public overrride void OnConnectedToMaster ()
{
// ロビーに参加する
PhotonNetwork.JoinLobby () ;
}
ロビーに接続したときの処理
public override void OnJoinedLobby ()
{
}
ルームを作成時の処理
RoomOptions options = new RoomOptions ();
// 無料版は20人まで
// 人数を増やしすぎると難しくなる
options. MaxPlayers = 8;
// ルーム作成
PhotonNetwork.CreateRoom ( roomName.text, options );
ルーム作成失敗時の処理
public override void OnCreateRoomFailed ( short returnCode, string message )
{
// message は なんで失敗したか教えてくれる
}
ルームに参加するときの処理
public void JoinRoom ( RoomInfo roomInfo )
{
PhotonNetwork. JoinRoom (roomInfo. Name);
}
ルームに参加した時の処理
public override void OnJoinedRoom ()
{
}
ルーム退出時の処理
public void LeaveRoom ()
{
// ルームから退出
PhotonNetwork. LeaveRoom () ;
}
// ルーム退出時に呼ばれる関数
public override void OnLeftRoom ()
{
}
参考, わかりやすいサイト
さいごに
・まだ初心者なので勘違いやミスがあると思います、もしあったら教えてもらえると嬉しいです
・結構 自分用みたいな感じになってしまいましたが誰かの役に立てたらうれしいです!
・以上です、お読みいただきありがとうございました。