饂飩コーディング

iOSアプリやら、Unityやら、Cocos2dやらごにょごにょ書いております

Unityでnend広告を実装 Android編 Unityから実機テスト(非ADT)

Unityでnend広告を実装 iOS - 饂飩コーディング
↑コチラで過去にiOSでの実装に軽くふれましたが、Androidでももちろん簡単に実装できます

手順概要
nendにユーザー登録→広告枠の取得→SpotIDの取得 (ココまで完了しているものとします)
nendからPluginのDownload→実装手順PDFの熟読→UnityProjectへのPackage読み込み→
→GooglePlay関連JARを取り込む→AndroidManifest.xml のコピーと編集→実機でテスト

だいたい上記の感じです
この記事はUnityから実機テストする場合ですので、UnityからAndroid ProjectをExportして
やる方法とは違いますのでご注意ください。

以下順を追ってみます


1、nendのサイトからUnity用Pluginをダウンロードして解凍しておきます。
2、Unityで新規Projectを作成して、Nend PluginをImportします。
f:id:appdeappuappu:20140824210802p:plain
3、GameObjectをCreateしてそこにPluginからNendAdBanner.csをAddCompornentします
追加後はInspecterで広告IDとSpotIDの箇所をAndroid,iOSそれぞれ、nendで広告枠を作ってからそこに記載されている情報を入力します。
f:id:appdeappuappu:20140824211616p:plain
4、OSXの場合のAndroidManifest.xml は/Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayerからコピーして編集しましょう。こんな感じで開いていけばみつかるはずです。
f:id:appdeappuappu:20140824212218p:plain
5、nendのPDFにあるようにmanifest.xmlを変更していきます。
6、Assets/Plugins/Androidフォルダ下にassetsフォルダを作成しそのこPFDの指示にしたがって画像ファイルを配置します。
7、Assets/Plugins/Androidフォルダ下におのおのの環境/sdk/extras/google/google_play_services/libproject/google-play-services_libからgoogle-play-services.jarを配置します
f:id:appdeappuappu:20140824214110p:plain
8、Assets/Plugins/Androidフォルダ下にresフォルダを作成
9、Assets/Plugins/Android/resフォルダ下にvaluesフォルダを作成
10、9にGoogle Play services ライブラリプロジェクト内にある version.xml を追加
f:id:appdeappuappu:20140824214711p:plain
11、UnityのOtherSetting でInternet Access をRequieredにする
f:id:appdeappuappu:20140824215828p:plain
12、実機でテストする(UnityEditter上では確認できないため)
f:id:appdeappuappu:20140824215856p:plain



参考AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.nendSample"
	android:installLocation="preferExternal"
	android:theme="@android:style/Theme.NoTitleBar"
    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"
        android:debuggable="true">
        <activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
            <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
        </activity>
        <meta-data
	android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
        <uses-permission android:name="android.permission.INTERNET" />
    </application>
    <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="20" />
  	<uses-feature android:glEsVersion="0x00020000" />
</manifest>

2014/09/04追記
uses-permission android:name="android.permission.INTERNET"
はapplicationの外がいいかもです。