▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
UnityでPUNを使ったオンラインマルチプレイの実装 -準備編-
Unity応用講座で使用するPUN(Photon Unity Networking)について解説していきます。
今回は準備編です。
環境構築と初期設定、とりあえず接続するところまでを紹介します。
※使用しているUnityのバージョンは5.6.1f1です。
※使用しているPUNのバージョンは1.73です。
[Unity_317×90]
Photon Unity Networking とは
インディー・プロのディベロッパー問わず、誰でもリアルタイムマルチプレイヤーゲームを開発してグローバルに配信可能です。- 公式より –
要するに、オリジナルでは難しいネットワークの設定を簡単に使えるよということです。
準備編
1.アカウント作成
まず公式サイトでアカウントを作成しましょう。

2.アプリケーションの登録
PUNにログインしたら、同サイト内のPhoton Realtime にて同期処理を実装したいアプリケーションを登録します。
Photon Realtime の ダッシュボード に移動し、下記のボタンをクリックします。
![]()
アプリケーション名を設定して、作成するボタンをクリックします。

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

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

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

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

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がルーターなどでフィルタリングされているケースへの対応です。

準備編は以上です。
次回は、同期編です。
マッチングと同期処理が行われてることが確認できるサンプルシーンを作成します。
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発
