読者です 読者をやめる 読者になる 読者になる

くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Unity+Android+Nend(広告)

Androidアプリを作ってますが、無料で出している代わりに広告をつけさせてもらってます。
お世話になっているのはnendさん

Unityで作ったゲームにもnendさんの広告が入れるそうなので、チャレンジしてみました。
そのときの備忘録。ちなみに、UnityはもちろんFreeな無料版

広告用のUnityプラグインをインストールして、広告を表示させる

  1. 下記のURLからUnityプラグインをダウンロードします。
  2. ダウンロードしたZipファイル(nendSDK_Unity_Plugin-1.1.1.zip)を解凍
  3. 中に入っているプラグイン(nend_unity_plugin-1.1.1.unitypackage)をUnityにインストール
  4. AssetsのPlugins配下にNendディレクトリが作成されます

あとは、NendディレクトリにあるNendAdBannerやNendAdIconを使えば、広告が表示されます
詳しい使い方は同梱されているPDF(nendSDK_Unity_Plugin-1.1.1_Guide.pdf)に書かれているので参考に

Unity上でAndroidアプリのビルドを完結させる

zipファイルに同梱されているPDFガイドを見ると、

  • UnityからProjectをExportして、
  • GooglePlayServiceのjarにパスを通したり、
  • AndroidManifest.xmlを修正するように

と書いてある
めんどくさいので、ごにょごにょしたらUnityだけでapkをビルドできた

1. GooglePlayServiceのjarを配置

Assets/Android配下にjarをおいておくと、Unityがビルド時に組み込んでくれるらしい
nendのプラグインもここにおいてあったりする

本体のjarはAndroid SDK Managerで「Extras/Google Play services」をインストールすると手に入る
場所は「【AndroidSDKのインストール先】\extras\google\google_play_services\libproject\google-play-services_lib\libs\google-play-services.jar」
ここのjarをAssets/Androidディレクトリ配下に配置すればOK

2. res/values/version.xmlの配置

Google Play serviceのjarと同様に、Google Play serviceのバージョン番号を記載したversion.xmlを用意しないといけない。
これも、1.と同様にコピペでOK
コピー元は「【AndroidSDKのインストール先】\extras\google\google_play_services\libproject\google-play-services_lib\res\values\version.xml」で、
コピー先はAssets/Android配下の「res/values」の中へ。「res/values」はないと思うので、ディレクトリを2個作らないといけない。

3. UnityのAndroidManifest.xmlのテンプレ修正

UnityにはAndroidアプリを作るためのテンプレが用意されている。
Andoridでビルドするときには、テンプレをベースにしているが、
ベースのテンプレだと、nendの広告をタッチしても広告に飛ぶことができない。
なので、PDFのガイドには、AndroidManifest.xmlの修正手順が書いてある。

しかし、テンプレ自体を修正すれば、ビルドごとに修正よくなるので、やってみた。

テンプレの置き場は、下記の場所。

  • 【Unityのインストール先】\Editor\Data\PlaybackEngines\androidplayer\AndroidManifest.xml

このAndroidManifest.xmlをガイド通り修正すればOK。
具体的には、28行目を下記のように修正する

- <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
+ <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
4. UnityのPlayer Settingsで設定してビルド

最後にUnityのPlayer SettingsでInternet Accessを有効(Require)にすれば、設定は完了。
これで実機テストすれば、広告が表示されて、タッチすれば広告にも飛べるようになる。

nendで広告を表示するときの注意点

nendのプラグインを使っていてハマった点をメモっとく

  1. シーンを移動しても自動で消えたりしない。

描画の処理が別な感じのためか、シーンを移動しても勝手に消えず、表示されたままだった。。。
なので、

  • 移動時にnendのスクリプトを持つオブジェクト自体をDestoryするか
  • オブジェクトに対し、GetComponent(NendAdBanner).Hide()で非表示にしないといけない
  1. 広告の位置はScriptのGravityオプションで設定する

位置をTransformのXYZで調整しても、変更されなかった。
広告の表示位置は、Gravityで設定するお作法のよう。

参考にしている書籍

ネットだけでも情報がたくさんあるけど、体系的に理解するにはやっぱり書籍だな~と

いつもかたわらに置いてある書籍たち

Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦

Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦

ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで

ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで