同人イラスト・漫画・同人サークル|infernoayase-インフェルノアヤセ-

ケモノ・獣人の同人漫画を中心に活動してる「ふさもふ」の同人サークルです。

【Unity】ジョーカースクリプト”NEND バーナー広告を制御するプラグイン”【jokerscript】

こんにちわ。

ジョーカースクリプトからNENDの広告を制御するプラグインを開発しました。このプラグインを使用すれば、シナリオ上で必要なタイミングでNendのバーナー広告を表示したり、逆にタイトルとかセーブ画面などのUI画面など表示したくない時には隠すと言うよな動作が可能になります。

このプラグインで追加されるタグ

[Nend_show] 指定のバーナーを表示する

ゲームオブジェクト名を指定して表示したい広告を表示する

パラメーター名 必須 デフォルト 説明
 objname  ○  NendAd このパラメーターに指定されたGameObjectのバナーが表示されます。導入方法で説明するゲームオブジェクト名を指定してください

[Nend_hide] 指定のバーナーを隠す

ゲームオブジェクト名を指定して隠したいバナー広告を隠す。

パラメーター名 必須 デフォルト 説明
 objname  ○  NendAd このパラメーターに指定されたGameObjectのバナーが隠れされます。導入方法で説明するゲームオブジェクト名を指定してください

 導入方法

NENDに登録する

2015-02-10-05

 

詳しくはNENDさんに聞いてくださいw

Unityプラグインを組み込む

nendメディアパートナー向け資料一覧
http://nend.net/dl/mediapartner/

2015-02-10-06

上記UnityプラグインをDownloadして解凍してください。
ZIPの中にNEND様のわかりやすい説明書が有りますのでそれを読みます。

読んだらこれ以降のことは大体わかると思いますよw

プラグインパッケージの読み込み

Assetsを右クリックし「Import Package」「Custom Package…」を選択します。
unity-nend-plugin-1.1.2.unitypackageを選択してインポートします。

2015-02-10-07

以下の画面でImportボタンを押下します。

nendSDK_Unity_Plugin-1.1

NendAdBannerをシーンに設置

GameObject → CreateEmptyを選択し、空のGameObjectを作成します。
2015-02-10-08

作成したGameObjectの名前を他と被らない一意な名前に変更し、
Assets/Plugins/Nend/NendAdBanner.csをGameObjectに追加します。
※このGameObject名をあとでジョーカースクリプトプラグイン内で指定しますので忘れないで下さい。

2015-02-10-09

※複数の広告枠を設置する際は、ここまでの手順を設置する広告枠の数分
行ってください。
その際は、NendAdBannerコンポーネントを追加したGameObject同士で
名前が被らないようにしてください。

次に、Inspector上でアカウントや表示位置等の設定を行います。

2015-02-10-01

※この際にAutomatic Displayのチェックを必ず外してください。
そうしないとジョーカースクリプト内での指定にかかわらず常に表示されてしまします。

詳しいことについてはNENDさんのマニュアルを熟読ください。

周辺ライブラリ(GooglePleyService)の追加

Nendさんのプラグインを使うためにはマニュアルの通りGooglePleyServiceを追加しないとイケません。

GitHub-play-games-plugin-for-unity-
 https://github.com/playgameservices/play-games-plugin-for-unity

2015-02-10-10

ここからDownloadしてください。

解凍したらcurrent-build>GooglePlayGamesPlugin-0.9.12.unitypackageを読み込みます。

読み込みが完了したらUnityを再起動してください。
そうするとナビゲーションにGooglePlayGamesが追加されますのでそこでAndroid settingクリック

2015-02-10-11

2015-02-10-03

アプリケーションIDを指定してセットアップをクリックあとは指示に従ってください。

GooglePleyGameのアプリケーションIDは下記に記載されています。詳細はggr

2015-02-10-04

Androidマニフェストの修正とかIOSのライブラリ参照

これをしないと広告がクリック出来ません。

Androidの場合

Unityのバージョンが4.3以上の場合(※内容の検証がまだです。)

Androidプロジェクト内のAndroidManifest.xmlを下記の通りに
編集してください。

  • activityセクション内にあるmeta-dataタグのunityplayer.ForwardNativeEventsToDalvikをtrueに変更
  • ・permissionにINTERNETは自動で給付されるので不要の模様

サンプル実装

Asset>Plugins>Android>google-play-services_lib>AndroidManifest.xmlのサンプル実装
(※4.2以下と場所が違います)


<activity android:label="@string/app_name" android:name="com.unity3d.player.UnityPlayerProxyActivity" android:launchMode="singleTask" android:screenOrientation="sensor" android:configChanges="locale|mcc|mnc|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
</activity>

Unityのバージョンが4.2以下の場合

Androidプロジェクト内のAndroidManifest.xmlを下記の通りに
編集してください。
・activityセクション内にあるmeta-dataタグのunityplayer.ForwardNativeEventsToDalvikをtrueに変更


<meta-data
android:name="unityplayer.ForwardNativeEventsToDalvik"
android:value="true" />

・<application>~</application>セクション内に以下の記述を追加


<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

・permissionにINTERNETを追加


<uses-permission android:name="android.permission.INTERNET" />

サンプル実装

Asset>Plugins>Android>AndroidManifest.xmlのサンプル実装


<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
android:installLocation="preferExternal"
android:versionCode="1"
android:versionName="1.0">
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<application
android:icon="@drawable/app_icon"
android:label="@string/app_name">
<activity android:name="com.unity3d.player.UnityPlayerProxyActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
</activity>
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
</activity>
<activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
</activity>
<activity android:name="com.unity3d.player.VideoPlayer"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!-- patched manifest starts here -->
<activity android:name="com.unity3d.plugin.downloader.UnityDownloaderActivity" />
<service android:name="com.unity3d.plugin.downloader.UnityDownloaderService" />
<receiver android:name="com.unity3d.plugin.downloader.UnityAlarmReceiver" />
</application>
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

IOSの場合

エクスポートしたXcodeプロジェクトをXcodeで開き、プロジェクトに下記の
frameworkを追加してください。
• AdSupport.framework (Required → Optionalに変更)
• Security.framework
• ImageIO.framework
※詳細はAndroid・iOSそれぞれのSDKマニュアルをご参照ください。
Copyright(c)

NEND バーナー広告を制御するプラグインを読み込む

プラグインのDownload

下記の今すぐDownloadを押してZipファイルをゲットしましょう!

nowDownload

 

2.ファイルを解凍してプロジェクトに入れる

ファイルを解凍すると’Plugin_nend_ad.cs’というプラグイン本体が現れます。

それをAsset>JOKER_GAME>Pluginsに放り込みます。

2015-01-26-02

既知の不具合確認

2015-04-27 09:30 Unity4.3以降でバーナーがクリック出来ない

Unityの仕様変更が会った模様。リファレンスをアップデートするも、検証が取れてないので要検証
後日リファレンスを更新予定

2015-04-27 04:10 3/17以降 作成したアプリでゲームがスタートできない

2015/3/17のNend社API仕様変更により、ゲームをスタート出来ない不具合が発生しました。

修正アップデータ 1.0.2 配布 アップグレードしてください。

 

リリースノート

  • 2015/04/27 9:47 version 1.0.3
    2015/3/17のNend社API仕様変更により、ゲームをスタート出来ない不具合を修正
  • 2015/02/12 3:44 version 1.0.2
    プラグインタグコール時にクリック待が発生して次のスクリプトに進まない不具合を修正
  • 2015/02/10 3:37 version 1.0.0
    初回リリース

リファレンス修正

  • 2015/05/17 01:30 リファレンスからプラグインのダウンロードリンクがV1.0.2になっていた。
    最新版のV1.0.3にリンクを更新。4/27以降にも不具合が出る場合は再度DLし直してください。
  • 2015/04/27 10:00 Unity4.3以降で広告クリック出来ない不具合に合わせてβでリファレンス更新
    ※追加検証で状況が変わる可能性が有ります。
  • 2015/04/27 9:47 Nend社API仕様変更により、ゲームをスタート出来ない不具合を修正について

FAQ

  • Q:変数って何!
    A:シケモクP様のわかりやすいリファレンスを参照してください。
  • Q:objnameに何を指定したらいいの?
    A:上記導入方法で説明したNendAdBanner.csを追加(コンポーネントにアタッチ)したGameObject名を指定してください。
  • Q:表示場所を2箇所用意してそれぞれ別に制御できますか?
    A:できます。上記説明の通りGameObject名を被らないようにして追加しプラグインの”objname”のパラメータをそれぞれ指定してください。
  • Q:広告が表示されっぱなしで制御出来ません
    A:Inspectorの設定項目でAutomatic Displayのチェックを必ず外してください。
  • Q:UnityIDEでGameを実行しても広告が表示されません。
    A:Nendの仕様上、実機でデバックしないと表示されません。実機でデバックしてください。
  • Q:バーナータイプ以外の広告に使えますか?
  • A:バーナー専用のプラグインなので出来ません。
  • Q:ライセンスの表記とか必要?
    A:フリーですので、表記なしで全然OK自由につかってチョンマゲ!
    ただinfernoayaseを宣伝したりクレジットを入れてくれたりすると
    鼻水たらして喜びます。
LINEで送る
Pocket

この記事のトラックバックURL
followMe