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

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

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

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メソッドがすぐに実行されています〜

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