読者です 読者をやめる 読者になる 読者になる

Unity5(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity】Photonのネットワークに接続!LobbyとRoom【Photon4】

いつもひよこのたまごをご利用下さいましてありがとうございます!
おかげ様でチュートリアル数も10ゲーム目となりました!
チュートリアル一覧は
こちら からどうぞ!


スポンサーリンク

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)にて設定することも出来ます!

f:id:hiyotama:20161205163934p:plain

f:id:hiyotama:20161205163945p:plain


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メソッドが呼ばれます!

f:id:hiyotama:20161205171436p:plain

Photonと接続し、Lobbyに接続し、ランダムでRoom入室に失敗し、 Roomを作成し、Roomに接続しています!
また、既にRoomが完成している状態で接続すると・・・

f:id:hiyotama:20161205171938p:plain

PhotonNetwork.JoinRandomRoomメソッドでちゃんとRoomに接続できたため、OnJoinedRoomメソッドがすぐに実行されています〜

今回はここまでです〜
ありがとうございました〜