Tips

UnityでPUNを使ったオンラインマルチプレイの実装 -ルームオプション編-

UnityでPUNを使ったオンラインマルチプレイの実装 -ルームオプション編-

UnityでPUNを使ったオンラインマルチプレイの実装 -ルームオプション編-


UnityのネットワークエンジンサービスであるPUN(Photon Unity Networking)について解説していくシリーズ記事です。

<前回までの記事一覧>
⇒ UnityでPUNを使ったオンラインマルチプレイの実装 -準備編-
⇒ UnityでPUNを使ったオンラインマルチプレイの実装 -同期編-

今回はシリーズ3回目、ルームオプション編です。PUNのルーム作成時のオプション設定方法について紹介していきます。

PUNはバージョン1.73を使用しています。
[Unity_317×90]

ルームオプションの設定


1.ルームオプションの作成

PUNのルームは、作成時にRoomOptionsクラスを使用してオプションを設定することができます。

■ルームオプションを用いたルーム作成のサンプルスクリプトです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// ロビーに入ると呼ばれる
void OnJoinedLobby() {
    Debug.Log("ロビーに入りました。");
 
    /* ルームオプションの設定 */
 
    // RoomOptionsのインスタンスを生成
    RoomOptions roomOptions = new RoomOptions();
 
    // ルームに入室できる最大人数。0を代入すると上限なし。
    roomOptions.MaxPlayers = 4;
 
    // ルームへの入室を許可するか否か
    roomOptions.IsOpen = true;
 
    // ロビーのルーム一覧にこのルームが表示されるか否か
    roomOptions.IsVisible = true;
 
    /* ルームの作成 */
    /* ルームオプションを設定する場合、CreateRoomメソッドは引数3つのオーバーロードを使用します。 */
 
    // 第1引数はルーム名、第2引数はルームオプション、第3引数はロビーです。
    PhotonNetwork.CreateRoom("RoomName", roomOptions, null);
 
}

RoomOptionsのインスタンスを生成し、設定用のプロパティに値を代入してCreateRoom()に渡しています。
RoomOptionsを使用してのオプション設定は、ルーム作成時のみ可能となっています。
もしルーム入室後にこれらのオプションを変更したい場合は、入室時の各設定をそのまま引き継いでいるRoomクラスを使用します。

また、各設定項目はRoomOptionsクラス内でプロパティとして宣言されているため、以下のようにンスタンス生成時に直接渡すこともできます。

1
2
3
4
5
RoomOptions roomOptions = new RoomOptions() {
    MaxPlayers = 4,
    IsOpen = true,
    IsVisible = true,
};

ルームオプション編は以上です。

次回は、カスタムプロパティ編です。
ルームに任意の設定を追加できるようになります。

ゲーム制作関連のオススメ連載リンク

とっても手軽なゲーム制作体験!
Unityゲーム開発基礎

実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発

Recent News

Recent Tips

Tag Search