ニフティクラウド mobile backend for Unity SDKをリリースして以来、ご要望の多かったプッシュ通知への対応版がリリースしました!組み込みも簡単で、Unityゲームへのプッシュ通知が実現します。ぜひお試しください。
今回はSDKに同梱しているサンプルプロジェクトを使って実際にプッシュ通知を試してみたいと思います。なお今回はAndroid向けになります。iOS向けについてはこちらの記事をご覧ください。
必要なもの
- ニフティクラウド mobile backnedのアカウントおよびアプリ
- ニフティクラウド mobile backend for Unity SDK
- ニフティクラウド mobile backend for iOS SDK(フレームワーク版)
- Unity
いずれも無料からはじめられます。ダウンロードまたはサインアップをお願いします。
Google Developers Consoleにて設定を行う
Google Developers Consoleにアクセスして、以下の手順を行ってください。
- プロジェクトの作成
- Google Cloud Messaging for Androidの有効化
- Public API accessの追加とキーの取得
- Sender IDの取得
こちらの手順についてはチュートリアル (Android) : GCMとの連携に必要な準備を参考にしてください。まずSender IDをメモした段階からスタートします。
Unityで新規プロジェクトを作成
Unityを立ち上げて、New Projectから新規プロジェクトを作成します。今回はサンプルを試しますので2Dとしています。
サンプルをインポート
Unity SDKを解凍してその内容にある NCMB.unitypackage および Sample.unitypackage を両方ともインポートします。ダブルクリックするとインポート画面が出ますのでそのままImportボタンを押してください。
設定変更
Asstes/Samples/PushSample にある NCMBPushSample を開きます。そのシーンの中にある NCMBSettings を開くと、Inspectorの中に Application Keyと Client Keyという項目が確認できると思います。それぞれ ニフティクラウド mobile backendの管理画面から得られるアプリケーションキー、クライアントキーを設定してください。また、Android Sender Idについて、先ほどのGoogle Developers Consoleにて得られたSender IDを設定してください。
Android SDK ManagerでGoogle Play servicesをインストール
Android SDK Managerを立ち上げて、Google Play servicesをインストールしてください。Extrasの中にあります。
NCMB for Android SDKをインストール
続いてニフティクラウド mobile backend for Android SDKをダウンロード、解凍します。解凍すると出てくる NCMB.jar を UnityプロジェクトのPlugins/Android/libsフォルダにコピーしてください。
AndroidManifestの修正
Plugins/Androidの中にあるAndroidManifestを修正します。
パッケージ名の修正
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.nifty.cloud.mb.RichPush" <-- この部分を修正してください :
レシーバーの修正
<!-- RECEIVER --> <receiver android:name="com.nifty.cloud.mb.NCMBGCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <!-- [WARNING] category android:name must be same your app package name. --> <category android:name="com.nifty.cloud.mb.RichPush" /> <-- パッケージ名と合わせます </intent-filter> </receiver>
パーミッションの設定
どちらもパッケージ名に合わせて修正します。パッケージ名.permission.〜という形にします。
<permission android:name="com.nifty.cloud.mb.RichPush.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.nifty.cloud.mb.RichPush.permission.C2D_MESSAGE" />
ビルド設定
FIleメニュー > Build Settingsを開きます。そしてPlatformをAndroidを選択してください。
ビルド実行
後はビルドを実行します。apkファイルの保存場所を聞かれますので適当な場所に保存し、できあがったapkファイルをAndroid実機に転送します。
Failed to compile resources with the following parameters:
というエラーが出た場合は、
$ sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
をターミナルで実行すると直るかも知れません(私はこのエラーでハマったので)。詳しくはunity3d - Unity - Failed to compile resources with the following parameters: - Stack Overflowを参考にしてください。
ニフティクラウド mobile backend側での準備
管理画面に入り、プッシュ通知の設定を行います。Google Developers Consoleにて作成したPublic API accessのキーを設定画面で指定します。
アプリ実行
アプリを立ち上げるとデモ画面が表示されます。
管理画面からのプッシュ作成
もちろんニフティクラウド mobile backendの管理画面からプッシュ通知を作成することもできます。プッシュ通知の設定についてはチュートリアル (Android) : GCMとの連携に必要な準備を参考にしてください。
いかがでしょうか。サンプルに入っているスクリプト、プラグインを参考にしてもらえればUnityゲームにプッシュ通知を組み込むのはとても簡単です。Unityアプリのアクティブを高めるためにも必須と言えるプッシュ通知、ぜひニフティクラウド mobile backendで実現してください!