Unity5.5.0f3 Personal(2016年12月)
前回の続きです〜
今回はPhotonのネットワークに接続していきます〜
Photonのネットワークに接続!LobbyとRoom
①Photonに接続する。
②Lobbyに接続する。
③Roomに接続する。
という流れとなります、以下ソースです〜
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PhotonManager : Photon.MonoBehaviour { void Start () { // Photonと接続した後、自動的にロビーへ接続するか PhotonNetwork.autoJoinLobby = true; Debug.Log("PhotonNetwork.ConnectUsingSettings"); PhotonNetwork.ConnectUsingSettings("1.0"); } // Lobbyへ接続成功 void OnJoinedLobby() { Debug.Log("OnJoinedLobby"); // 現在あるRoomにランダムで接続 PhotonNetwork.JoinRandomRoom(); } //ランダムでRoomに接続失敗 void OnPhotonRandomJoinFailed() { Debug.Log("OnPhotonRandomJoinFailed"); // Room作成 PhotonNetwork.CreateRoom(null); } // Room作成成功 void OnCreatedRoom() { Debug.Log("OnCreatedRoom"); // 自動的にOnJoinedRoom呼び出し } // Room入室成功時 void OnJoinedRoom() { Debug.Log("OnJoinedRoom"); } }
PhotonManager.cs
順に見ていきます〜まずは継承部分からです!
Unityを使う場合、MonoBehaviourを継承することでStartメソッドやUpdateメソッドなど、Unity独自の便利メソッドを使うことができています!
同じように、Photon独自の便利メソッドを使うため、ここではPhoton.MonoBehaviour を継承しております!
①Photonに接続する。
StartメソッドのPhotonNetwork.autoJoinLobbyですが、こちらはPhotonに接続した際に自動的にLobbyに接続するかを決めています〜
ここらへんの設定はPhotonServerSettingsオブジェクト(Window>Photon Unity Networking>PUN Wizard>Locate PhotonServerSettings)にて設定することも出来ます!
PhotonNetwork.ConnectUsingSettings("1.0")を実行すると、Photonとの接続を開始します!
"1.0"はゲームバージョンを表し、ここの文字列が同じ端末同士でしか通信を行いません!
②Lobbyに接続する。
Photonと接続できたので、自動的にLobbyに接続し、OnJoinedLobbyメソッドが呼ばれます!
③Roomに接続する。
最後にLobbyからRoomへ接続します!
適当に今あるRoomに接続したいので、PhotonNetwork.JoinRandomRoomメソッドを呼んでいます!
無事に接続が成功すればOnJoinedRoomが呼ばれます!
Roomがひとつも無い場合は、OnPhotonRandomJoinFailedメソッドが呼ばれます!
その場合はPhotonNetwork.CreateRoomメソッドでRoomを自分で作ります!今回は特に部屋名無しのnullで作成しています!
無事にRoom作成が成功すると、自動的にRoomに接続します!
成功すればOnJoinedRoomメソッドが呼ばれます!
Photonと接続し、Lobbyに接続し、ランダムでRoom入室に失敗し、 Roomを作成し、Roomに接続しています!
また、既にRoomが完成している状態で接続すると・・・
PhotonNetwork.JoinRandomRoomメソッドでちゃんとRoomに接続できたため、OnJoinedRoomメソッドがすぐに実行されています〜
今回はここまでです〜
ありがとうございました〜