PUNをちょっと使うことがあったので、まず導入からメモ。だいぶラクに通信ができそう。
目次
Photon Unity Network (PUN)とは
Photon Unity Networking (PUN)というのは、主にゲーム用途で使うUnity向けリアルタイム通信ライブラリです。
Photon Engineというゲーム向けリアルタイム通信ライブラリをUnity向けにラッピングしたもので、Photon Cloudの契約なども共通しています。
PUNではマルチユーザーのリアルタイム通信が可能で、それがクロスプラットフォームで動作するという、通信部分のめんどくさいところを良い感じに代行してくれるものになっていますね。
Photon Cloudに登録する
PUNを使用するにはサーバーを都合する必要があります。これはPhoton Cloudを契約する方法と、Photon Serverを自前のサーバーにインストールする方法です。
今回は前者の、Photon Cloudを契約することにします。20CCU (同時接続)までは無料で使用できるので、登録するだけです。
上のサイトの右上にある「サインイン」へ進むとログイン画面になりますが、アカウントを持っていないので「新規登録」に進みます。
で、メールアドレスを入力して「新規登録」。
するとメールが飛んできますので、そこに記載されたURLを開きます。
パスワードを入力したら「アカウントを作成する」で進みます。
この画面になったら、登録完了です。
「ダッシュボード」から「REALTIME」を開くと、メールアドレスでアプリケーションが一つできています。これはデフォルトで作成されるもので、無料プランなので特に問題はありません。
PUNは別にPUNという項目があるのですが、契約としてはREALTIMEと共通のようなので、こちらのアプリケーションで問題なさそうです。
バイキングデモを動かしてみる
さて、これでPhoton Cloudを使用して通信できるようになりました。
チュートリアルにある、「Walking the Viking」のデモを動かしてみます。
これは完成されたプロジェクトになるので、まず空のプロジェクトを用意して、そこにインポートします。
インポートが終了すると、AppIdの入力を求められるので、先ほどのダッシュボードにあった、「アプリケーションID」をコピーしてペーストし、「Setup Project」とします。
「Done!」となったらOK。Closeで閉じます。
このアプリケーションIDの設定は、「Window > Photon Unity Networking > Highlight Server Settings」からいつでも行うことが出来ます。
インポートが終わったら、「DemoViking > Scenes > VikingScenes」を開きます。
このデモは入った人数だけバイキングが出てくるものになりますが。とりあえずPCとEditor実行の2クライアントでやってみます。
まずUnityのほうで「File > Build Settings」からビルド設定を開き、「Build」で実行ファイルをビルド。
それを実行するとネームとルーム名を決める画面が出てきます。
最初にルームを作らないといけません。なので最初に起動したクライアントでは下の項目、「CREATE ROOM」のほうを「GO」します。
とりあえず1体、バイキングさんがPOPしました。
次にUnityに戻って、先ほどのSceneを実行します。
同じような画面になるので、今度は「JOIN ROOM」のほうを「GO」します。
するとほら、2体!
ここでPhotonのダッシュボードから「統計情報へ」で情報を見てみると、ちゃんとアクセスがあることが分かります。
このような感じで、サーバーはPhoton Cloudまかせでマルチプレイ対応ゲームを作ることが出来るというものです。
Photon Unity Networking(PUN)アセットを導入する
バイキングデモは完成プロジェクトだったので、普通にアセットを導入してみます。
まず空のプロジェクトを作成して、そこにPUNをインストールします。
アセットはAssetStoreよりインストールします。
こちらのアセットをダウンロード&インポート。
先ほどのバイキングデモのようにAppIdを入力したら完成です。
PUNとPUN+の違いは?
Photonにはもう一つ、Photon PUN+というアセットもあります。
こちらのPUN+は100CCUライセンス付の有料バージョンになり、フリー版とは以下の点で違いがあります。
・有料 ($95)
・100CCUライセンス付
・Unity 4.xでAndroid/iOSプラットフォームへの出力が可能
3つめがについてはおそらく歴史的経緯があって、Unity 4系ではAndroid/iOSは別ライセンスとなっていたので、Photonの出力も別ライセンスなのだと思います。
Unity 5ではフリー版でもAndroid/iOS向け出力は可能です。
あとは100CCUライセンスがどうかというところで、Photon Cloudダッシュボードでの100CCUと同じ60ヶ月契約のようですが、ダッシュボードからのお値段が17,339円のところ、PUN+は$95なのでお得かもしれませんね。
フリー版のほうとライブラリ的な違いはなさそうなので、Unity5であるなら特に理由がなければまずはフリー版でよいと思います。
次回:Photon Unity Networking (PUN)のチュートリアルをやってみる (1)