unity でオンラインボードゲーム開発をした記録を載せます
参考記事
pun2実装
ログイン画面から作成します
Pun2の仕組み
マスターサーバーにアクセスし、個別のルームを立ち上げる
マスターサーバーにアクセスする関数
PhotonNetwork.ConnectUsingSettings();
マスターサーバーにアクセスしたときのコールバック
コールバックはMonoBehaviourPunCallbacksを継承する必要がある。
public override void OnConnectedToMaster() {}
MonoBehaviourPunCallbacksの中にvertualでOnConnectedToMaster()が宣言されているのでoverride するよ
ルーム作成する関数
// "ルーム名"という名前のルームを作成する
PhotonNetwork.CreateRoom("ルーム名");
ルーム作成したときのコールバック
public override void OnCreatedRoom() {}
ルーム参加
PhotonNetwork.JoinRoom("ルーム名");
ルーム参加したときのコールバック
public override void OnJoinedRoom(){}
ルーム作成と参加を同時に行う
//"Room"があるなら参加、内なら作成し参加する
PhotonNetwork.JoinOrCreateRoom("Room", new RoomOptions(), TypedLobby.Default);
ルーム退出
PhotonNetwork.LeaveRoom();
ルーム退出のコールバック
public override void OnConnectedToMaster(){}
ロビー
ロビー参加
PhotonNetwork.JoinLobby();
ロビー参加したときのコールバック
public override void OnJoinedLobby(){}
ロビーから退出
PhotonNetwork.LeaveLobby();
オブジェクト生成
PhotonNetwork.Instantiate("生成したいオブジェクトの名前", position, Quaternion.identity);
第二引数: 生成するオブジェクト位置
第三引数: 生成するオブジェクト角度
ここで生成するオブジェクトはResourceフォルダに入れておく
オンラインボードゲーム作成
流れ
ログイン(名前入力)
roomに入る
スタートボタンで開始
ログイン画面
サーバー側とunityのUIとかSCENEを連動させることで分かりやすくなる
ロビー使用しなくてもできそう
UI左上に表示しておくとか