UnityでPUNを使ったオンラインマルチプレイの実装 -準備編-


UnityでPUNを使ったオンラインマルチプレイの実装 -準備編-


Unity応用講座で使用するPUN(Photon Unity Networking)について解説していきます。

今回は準備編です。
環境構築と初期設定、とりあえず接続するところまでを紹介します。

PUNはバージョン1.73を使用しています。

Photon Unity Networking とは


インディー・プロのディベロッパー問わず、誰でもリアルタイムマルチプレイヤーゲームを開発してグローバルに配信可能です。- 公式より –

要するに、オリジナルでは難しいネットワークの設定を簡単に使えるよということです。

準備編


1.アカウント作成

まず公式サイトでアカウントを作成しましょう。
WS000374

2.アプリケーションの登録

PUNにログインしたら、同サイト内のPhoton Realtime にて同期処理を実装したいアプリケーションを登録します。
Photon Realtime の ダッシュボード に移動し、下記のボタンをクリックします。
WS000376

アプリケーション名を設定して、作成するボタンをクリックします。
WS000378

登録することによりIDが発行されます。後でこれをUnityと紐づけます。
WS000379

3.アセットをインポート

Asset Store から、Photon Unity Networking Free をダウンロードします。
有料版もありますが、開発段階での動作テストであれば無料版でも大丈夫です。
WS000372

ダウンロードが済んだらインポートします。
WS000373

4.PUN Wizard の設定

インポートが終わったらPUN Wizardが開くので、アプリケーションIDを入力してPhotonサーバーの設定に移行します。
WS000380

5.Photon Server Settings

基本的には初期値のままでも大丈夫ですが、一部変更しておきましょう。
Regionは接続する環境から一番近いものが良いです。日本からの接続なら『Jp』に変更しましょう。
Auto-Join Lobby にもチェックを入れておきます。ゲーム開始時に自動的にロビーに接続します。
WS000381

6.接続用スクリプトを作成する

Photonサーバー →  ロビー → ルーム の順に接続するための最小構成のスクリプトです。C#で記述しています。

using UnityEngine;
using System.Collections;

public class NetWork_01 : MonoBehaviour {

	void Start() {
		// Photonに接続する(引数でゲームのバージョンを指定できる)
		PhotonNetwork.ConnectUsingSettings(null);
	}

	// ロビーに入ると呼ばれる
	void OnJoinedLobby() {
		Debug.Log("ロビーに入りました。");

		// ルームに入室する
		PhotonNetwork.JoinRandomRoom();
	}

	// ルームに入室すると呼ばれる
	void OnJoinedRoom() {
		Debug.Log("ルームへ入室しました。");
	}

	// ルームの入室に失敗すると呼ばれる
	void OnPhotonRandomJoinFailed() {
		Debug.Log("ルームの入室に失敗しました。");

		// ルームがないと入室に失敗するため、その時は自分で作る
		// 引数でルーム名を指定できる
		PhotonNetwork.CreateRoom("myRoomName");
	}
}

7.スクリプトの適用

作成したスクリプトを適当なオブジェクトに貼り付けて、ゲームシーンを実行してみましょう。
以下のログが流れたら接続成功です。
失敗してしまう場合は、Photon Server Settings の Protocol を『 Tcp 』に変更してみてください。
※Udpがルーターなどでフィルタリングされているケースへの対応です。
WS000382

準備編は以上です。

次回は、同期編です。
マッチングと同期処理が行われてることが確認できるサンプルシーンを作成します。

最近よく読まれている記事

【Unityのプログラミング力向上】C# 練習問題 4
【Unityのプログラミング力向上】C# 練習問題 3

記事一覧にもどる

  • このエントリーをはてなブックマークに追加

PAGE TOP