UnityでPUNを使ったオンラインマルチプレイの実装 -準備編-
▶
【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ゲーム開発