Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@VeyronSakai

Photon(PUN2)でサーバーに接続してルームを作成する際のメモ

More than 1 year has passed since last update.

概要

PUN2を使ってサーバーに接続してルームを作成する際に、どのようなコードを書いていけばいいのか迷ってしまった時の為の備忘録的なメモです。

環境

  • PUN2
  • Unity 2018.3以降

実装

MasterClientに同期

PhotonNetwork.AutomaticallySyncScene = true;

このように設定すると、MasterClient以外のClientがシーンの切り替えを、MasterClientのシーンの切り替えに同期して行うことができます。

Awake()メソッド内などに書くと良いと思います

サーバーに接続する

1.PhotonServerSettingsで設定を行う

Assets/Photon/PhotonUnityNetworking/Resources/にあるPhotonServerSettingsで設定を行います。

とりあえずApp VersionとFixed Regionを設定しておけば大丈夫だと思います。

App Version : 1.0
Fixed Region : jp

のように設定します。

2.ゲームのバージョンを設定する

PhotonNetwork.GameVersion = "1.0";

バージョンの異なるClient同士はマッチングすることができないので注意しましょう。

3.次にPhotonのサーバーに接続する

サーバーに接続したい場所で

PhotonNetwork.ConnectUsingSettings();

を実行すればサーバーに接続することができます。

ルームが既に作られている場合はルームに入る

public override void OnConnectedToMaster()
{
    PhotonNetwork.JoinRandomRoom();         
}

サーバーに接続した際に呼ばれるコールバックであるOnConnectedToMaster()メソッド内に処理を記述します。

ここではランダムなルームに入る場合について考えます。

ランダムなルームに入る処理はPhotonNetwork.JoinRandomRoom()です。
なのでこれをOnConnectedToMaster()内に記述します。

ルームが無い場合はルームを作る

public override void OnJoinRandomFailed(short returnCode, string message)
{
    PhotonNetwork.CreateRoom(null, new RoomOptions { MaxPlayers = 4});
}

もしルームが1つも作られていない状態で上記のようにルームに入ろうとすると失敗します。

この時に呼ばれるコールバックがOnJoinRandomFailed()です。

なので、このOnJoinRandomFailed()メソッド内にルームを作る処理を書きます。

ルームを作る処理はPhotonNetwork.CreateRoom()です。

PhotonNetwork.CreateRoom()の第一引数にはルーム名を記述できますが、ルーム名を特に設定したくない場合はnullと書きます。

PhotonNetwork.CreateRoom()の第二引数にはRoomOptionsクラスのインスタンスを代入します。

RoomOptionsクラスは様々なプロパティを持ち、これらを色々と調整することによって、作成する部屋の設定を決めることができます。

ここでは部屋の最大の人数が4人になるようにMaxPlayers = 4設定しています。

他の設定をしたい場合は次のページをご覧ください。
Photon Unity Networking 2: RoomOptions Class Reference

参考文献

2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?