├── .gitignore ├── EclipseProject ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── AndroidManifest.xml ├── ic_launcher-web.png ├── libs │ ├── GoogleAdMobAdsSdk-6.4.1.jar │ ├── Unity-4.1-androidplayer.jar │ └── android-support-v4.jar ├── proguard-project.txt ├── project.properties ├── res │ ├── drawable-hdpi │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ └── ic_launcher.png │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ └── values │ │ ├── strings.xml │ │ └── styles.xml └── src │ └── com │ └── guillermonkey │ └── unity │ └── admob │ ├── AdMobConfiguration.java │ ├── AdMobPlugin.java │ ├── AdMobTarget.java │ └── AdMobUtil.java ├── Images ├── Manual │ ├── banner.jpg │ ├── debug.png │ ├── lgpl3.png │ ├── mockup.png │ ├── prefab.png │ ├── sample-scene.png │ ├── setup.png │ └── test-mode.jpg └── logo.png ├── README.md ├── Releases ├── AdMobPlugin-1.0.unitypackage ├── AdMobPlugin-1.1-Unity3.5.unitypackage ├── AdMobPlugin-1.1-Unity4.3.unitypackage └── AdMobPlugin-1.1.unitypackage └── UnityProject ├── Assets ├── AdMobPlugin.meta ├── AdMobPlugin │ ├── AdMobPlugin Manual.html │ ├── AdMobPlugin Manual.html.meta │ ├── AdMobPlugin.prefab │ ├── AdMobPlugin.prefab.meta │ ├── Images.meta │ ├── Images │ │ ├── Actions.meta │ │ ├── Actions │ │ │ ├── action_download.png │ │ │ ├── action_download.png.meta │ │ │ ├── action_safari.png │ │ │ ├── action_safari.png.meta │ │ │ ├── action_world.png │ │ │ └── action_world.png.meta │ │ ├── Backgrounds.meta │ │ ├── Backgrounds │ │ │ ├── dark.png │ │ │ ├── dark.png.meta │ │ │ ├── light.png │ │ │ └── light.png.meta │ │ ├── Icons.meta │ │ ├── Icons │ │ │ ├── biz.png │ │ │ ├── biz.png.meta │ │ │ ├── com.png │ │ │ ├── com.png.meta │ │ │ ├── edu.png │ │ │ ├── edu.png.meta │ │ │ ├── ent.png │ │ │ ├── ent.png.meta │ │ │ ├── life.png │ │ │ ├── life.png.meta │ │ │ ├── mov.png │ │ │ ├── mov.png.meta │ │ │ ├── music.png │ │ │ ├── music.png.meta │ │ │ ├── news.png │ │ │ ├── news.png.meta │ │ │ ├── search.png │ │ │ ├── search.png.meta │ │ │ ├── uti.png │ │ │ └── uti.png.meta │ │ ├── Manual.meta │ │ ├── Manual │ │ │ ├── banner.jpg │ │ │ ├── banner.jpg.meta │ │ │ ├── debug.png │ │ │ ├── debug.png.meta │ │ │ ├── lgpl3.png │ │ │ ├── lgpl3.png.meta │ │ │ ├── mockup.png │ │ │ ├── mockup.png.meta │ │ │ ├── prefab.png │ │ │ ├── prefab.png.meta │ │ │ ├── sample-scene.png │ │ │ ├── sample-scene.png.meta │ │ │ ├── setup.png │ │ │ ├── setup.png.meta │ │ │ ├── test-mode.jpg │ │ │ └── test-mode.jpg.meta │ │ ├── logo.png │ │ └── logo.png.meta │ ├── LICENSE.txt │ ├── LICENSE.txt.meta │ ├── Materials.meta │ ├── Materials │ │ ├── AdPlugin.mat │ │ └── AdPlugin.mat.meta │ ├── Readme.markdown │ ├── Readme.markdown.meta │ ├── Scenes.meta │ ├── Scenes │ │ ├── AdMobPluginTest.unity │ │ └── AdMobPluginTest.unity.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── AdMobPlugin.cs │ │ ├── AdMobPlugin.cs.meta │ │ ├── AdMobPluginDebug.cs │ │ ├── AdMobPluginDebug.cs.meta │ │ ├── AdMobPluginMockup.cs │ │ └── AdMobPluginMockup.cs.meta ├── Plugins.meta └── Plugins │ ├── Android.meta │ └── Android │ ├── AndroidManifest.xml │ ├── AndroidManifest.xml.meta │ ├── GoogleAdMobAdsSdk-6.4.1.jar │ ├── GoogleAdMobAdsSdk-6.4.1.jar.meta │ ├── admob-plugin.jar │ └── admob-plugin.jar.meta └── ProjectSettings ├── AudioManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── InputManager.asset ├── NavMeshLayers.asset ├── NetworkManager.asset ├── ProjectSettings.asset ├── QualitySettings.asset ├── TagManager.asset └── TimeManager.asset /.gitignore: -------------------------------------------------------------------------------- 1 | /UnityProject/*.csproj 2 | /UnityProject/*.csproj 3 | /UnityProject/*.pidb 4 | /UnityProject/*.sln 5 | /UnityProject/*.userprefs 6 | /UnityProject/Library 7 | /UnityProject/Temp 8 | /EclipseProject/bin 9 | /EclipseProject/gen 10 | -------------------------------------------------------------------------------- /EclipseProject/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /EclipseProject/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | AdMob-Plugin 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /EclipseProject/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 4 | org.eclipse.jdt.core.compiler.compliance=1.6 5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 7 | org.eclipse.jdt.core.compiler.source=1.6 8 | -------------------------------------------------------------------------------- /EclipseProject/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 9 | 10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /EclipseProject/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/EclipseProject/ic_launcher-web.png -------------------------------------------------------------------------------- /EclipseProject/libs/GoogleAdMobAdsSdk-6.4.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/EclipseProject/libs/GoogleAdMobAdsSdk-6.4.1.jar -------------------------------------------------------------------------------- /EclipseProject/libs/Unity-4.1-androidplayer.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/EclipseProject/libs/Unity-4.1-androidplayer.jar -------------------------------------------------------------------------------- /EclipseProject/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/EclipseProject/libs/android-support-v4.jar -------------------------------------------------------------------------------- /EclipseProject/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | 22 | -injars bin/admob-unity-plugin.jar 23 | -outjars bin/proguard-admob-unity-plugin.jar 24 | #-libraryjars /lib/rt.jar 25 | #-libraryjars /libs/android-support-v4.jar 26 | -libraryjars /platforms/android-16/android.jar 27 | -libraryjars /libs/GoogleAdMobAdsSdk-6.4.1.jar 28 | -libraryjars /libs/Unity-4.1-androidplayer.jar 29 | -printusage bin/proguard.txt 30 | -printmapping bin/proguard-out.map 31 | 32 | -renamesourcefileattribute SourceFile 33 | -dontusemixedcaseclassnames 34 | -keepattributes Exceptions,InnerClasses,Signature,Deprecated, 35 | SourceFile,LineNumberTable,*Annotation*,EnclosingMethod 36 | 37 | # Keep - Library. Keep all public and protected classes, fields, and methods. 38 | -keep public class * { 39 | public protected ; 40 | public protected ; 41 | } 42 | 43 | # Keep names - _class method names. Keep all .class method names. This may be 44 | # useful for libraries that will be obfuscated again with different obfuscators. 45 | -keepclassmembers, allowshrinking class * { 46 | java.lang.Class class$(java.lang.String); 47 | java.lang.Class class$(java.lang.String, boolean); 48 | } 49 | 50 | # Keep names - Native method names. Keep all native class/method names. 51 | -keepclasseswithmembers, allowshrinking class * { 52 | native ; 53 | } 54 | 55 | # Also keep - Enumerations. Keep the special static methods that are required in 56 | # enumeration classes. 57 | -keepclassmembers enum * { 58 | public static **[] values(); 59 | public static ** valueOf(java.lang.String); 60 | } 61 | 62 | -keepclassmembers class * extends java.io.Serializable { 63 | static final long serialVersionUID; 64 | private static final java.io.ObjectStreamField[] serialPersistentFields; 65 | private void writeObject(java.io.ObjectOutputStream); 66 | private void readObject(java.io.ObjectInputStream); 67 | java.lang.Object writeReplace(); 68 | java.lang.Object readResolve(); 69 | } 70 | -------------------------------------------------------------------------------- /EclipseProject/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-17 15 | android.library=true 16 | -------------------------------------------------------------------------------- /EclipseProject/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/EclipseProject/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /EclipseProject/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/EclipseProject/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /EclipseProject/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/EclipseProject/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /EclipseProject/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/EclipseProject/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /EclipseProject/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /EclipseProject/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /EclipseProject/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | AdMobPlugin 4 | 5 | -------------------------------------------------------------------------------- /EclipseProject/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /EclipseProject/src/com/guillermonkey/unity/admob/AdMobConfiguration.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * This file is part of AdMobPlugin 4 | * 5 | * Copyright (c) 2013 Guillermo Calvo 6 | * 7 | * AdMobPlugin is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published 9 | * by the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * AdMobPlugin is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html) 16 | * for more details. 17 | * 18 | */ 19 | 20 | package com.guillermonkey.unity.admob; 21 | 22 | 23 | import java.util.Arrays; 24 | 25 | import android.util.Log; 26 | import android.view.Gravity; 27 | import android.widget.LinearLayout; 28 | 29 | import com.google.ads.AdSize; 30 | 31 | 32 | class AdMobConfiguration{ 33 | 34 | final String publisherId; 35 | final boolean isTesting; 36 | final String[] testDeviceIds; 37 | final boolean guessSelfDeviceId; 38 | final String selfDeviceId; 39 | final AdSize size; 40 | final int orientation; 41 | final int gravity; 42 | 43 | AdMobConfiguration( 44 | String publisherId, 45 | boolean isTesting, 46 | String[] testDeviceIds, 47 | boolean guessSelfDeviceId, 48 | int size, 49 | /* 50 | 0: BANNER Phones and Tablets/Standard Banner(320x50) 51 | 1: IAB_MRECT Tablets/IAB Medium Rectangle(300x250) 52 | 2: IAB_BANNER Tablets/IAB Full-Size Banner(468x60) 53 | 3: IAB_LEADERBOARD Tablets/IAB Leaderboard(728x90) 54 | 4: SMART_BANNER Phones and Tablets/Smart Banner(Device will decide) 55 | */ 56 | int orientation, 57 | int horizontalPosition, 58 | /* 59 | 0: CENTER_HORIZONTAL 60 | 1: LEFT 61 | 2: RIGHT 62 | */ 63 | int verticalPosition 64 | /* 65 | 0: CENTER_VERTICAL 66 | 1: TOP 67 | 2: BOTTOM 68 | */ 69 | ){ 70 | this.publisherId = publisherId; 71 | this.isTesting = isTesting; 72 | this.testDeviceIds = testDeviceIds; 73 | this.guessSelfDeviceId = guessSelfDeviceId; 74 | this.selfDeviceId = (guessSelfDeviceId ? AdMobUtil.guessSelfDeviceId() : null); 75 | this.size = AdMobConfiguration.parseAdSize(size); 76 | this.orientation = AdMobConfiguration.parseOrientation(orientation); 77 | this.gravity = AdMobConfiguration.parseGravity(horizontalPosition, verticalPosition); 78 | } 79 | 80 | private static AdSize parseAdSize(int size){ 81 | 82 | switch(size){ 83 | case 0: return(AdSize.BANNER); 84 | case 1: return(AdSize.IAB_MRECT); 85 | case 2: return(AdSize.IAB_BANNER); 86 | case 3: return(AdSize.IAB_LEADERBOARD); 87 | case 4: return(AdSize.SMART_BANNER); 88 | } 89 | 90 | Log.w(AdMobPlugin.LOGTAG, "Unknown banner size: " + size + "! Resolving to BANNER..."); 91 | 92 | return(AdSize.BANNER); 93 | } 94 | 95 | private static int parseOrientation(int orientation){ 96 | 97 | switch(orientation){ 98 | 99 | case 0: 100 | return(LinearLayout.HORIZONTAL); 101 | 102 | case 1: 103 | return(LinearLayout.VERTICAL); 104 | 105 | } 106 | 107 | Log.w(AdMobPlugin.LOGTAG, "Unknown orientation: " + orientation + "! Resolving to HORIZONTAL..."); 108 | 109 | return(LinearLayout.HORIZONTAL); 110 | } 111 | 112 | private static int parseGravity(int horizontalPosition, int verticalPosition){ 113 | 114 | int gravity = Gravity.NO_GRAVITY; 115 | 116 | switch(horizontalPosition){ 117 | 118 | case 0: 119 | gravity = Gravity.CENTER_HORIZONTAL; 120 | break; 121 | 122 | case 1: 123 | gravity = Gravity.LEFT; 124 | break; 125 | 126 | case 2: 127 | gravity = Gravity.RIGHT; 128 | break; 129 | 130 | default: 131 | 132 | Log.w(AdMobPlugin.LOGTAG, "Unknown horizontal position: " + horizontalPosition + "! Resolving to CENTER_HORIZONTAL..."); 133 | gravity = Gravity.CENTER_HORIZONTAL; 134 | } 135 | 136 | switch(verticalPosition){ 137 | 138 | case 0: 139 | gravity |= Gravity.CENTER_VERTICAL; 140 | break; 141 | 142 | case 1: 143 | gravity |= Gravity.TOP; 144 | break; 145 | 146 | case 2: 147 | gravity |= Gravity.BOTTOM; 148 | break; 149 | 150 | default: 151 | 152 | Log.w(AdMobPlugin.LOGTAG, "Unknown vertical position: " + horizontalPosition + "! Resolving to CENTER_VERTICAL..."); 153 | gravity = Gravity.BOTTOM; 154 | } 155 | 156 | return(gravity); 157 | } 158 | 159 | @Override 160 | public String toString(){ 161 | 162 | String tmp; 163 | 164 | // Work around SMART_BANNER bug 165 | try{ 166 | 167 | tmp = this.size.toString(); 168 | 169 | }catch(Exception error){ 170 | 171 | tmp = ( this.size == AdSize.SMART_BANNER ? "SMART_BANNER" : "???" ); 172 | } 173 | 174 | return( 175 | "AdMobConfiguration{" + 176 | "publisherId: " + this.publisherId + ", " + 177 | "isTesting: " + this.isTesting + ", " + 178 | "testDeviceIds: " + Arrays.toString( this.testDeviceIds ) + ", " + 179 | "guessSelfDeviceId: " + this.guessSelfDeviceId + (this.guessSelfDeviceId ? " (" + this.selfDeviceId + "), " : ", ") + 180 | "size: " + tmp + ", " + 181 | "orientation: " + this.orientation + ", " + 182 | "gravity: " + this.gravity + 183 | "}" 184 | ); 185 | } 186 | } 187 | -------------------------------------------------------------------------------- /EclipseProject/src/com/guillermonkey/unity/admob/AdMobPlugin.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * This file is part of AdMobPlugin 4 | * 5 | * Copyright (c) 2013 Guillermo Calvo 6 | * 7 | * AdMobPlugin is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published 9 | * by the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * AdMobPlugin is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html) 16 | * for more details. 17 | * 18 | */ 19 | 20 | package com.guillermonkey.unity.admob; 21 | 22 | 23 | import android.app.Activity; 24 | import android.util.Log; 25 | import android.view.View; 26 | import android.widget.LinearLayout; 27 | import android.widget.RelativeLayout.LayoutParams; 28 | 29 | import com.google.ads.Ad; 30 | import com.google.ads.AdListener; 31 | import com.google.ads.AdRequest; 32 | import com.google.ads.AdRequest.ErrorCode; 33 | import com.google.ads.AdView; 34 | 35 | import com.unity3d.player.UnityPlayer; 36 | 37 | 38 | public class AdMobPlugin{ 39 | 40 | static String LOGTAG = "AdMobPlugin"; 41 | 42 | private static final AdMobPlugin instance = new AdMobPlugin(); 43 | 44 | private Activity activity; 45 | private AdMobConfiguration config; 46 | private AdMobTarget target; 47 | private LinearLayout layout; 48 | private AdView view; 49 | private int received; 50 | private ErrorCode lastError; 51 | 52 | private Runnable CONF = new Runnable(){ @Override public void run(){ _conf(); } }; 53 | private Runnable SHOW = new Runnable(){ @Override public void run(){ _show(); } }; 54 | private Runnable HIDE = new Runnable(){ @Override public void run(){ _hide(); } }; 55 | private Runnable LOAD = new Runnable(){ @Override public void run(){ _load(); } }; 56 | private AdListener AD_LISTENER = new AdListener(){ 57 | 58 | @Override 59 | public void onReceiveAd(Ad ad){ 60 | 61 | received++; 62 | 63 | Log.i(AdMobPlugin.LOGTAG, "Ad received (total: " + received + ")"); 64 | } 65 | 66 | @Override 67 | public void onFailedToReceiveAd(Ad ad, ErrorCode errorCode){ 68 | 69 | Log.e(AdMobPlugin.LOGTAG, "Failed to receive ad: " + errorCode); 70 | 71 | lastError = errorCode; 72 | } 73 | 74 | @Override 75 | public void onPresentScreen(Ad ad){ 76 | 77 | //Log.d(AdMobPlugin.LOGTAG, "On present screen"); 78 | } 79 | 80 | @Override 81 | public void onDismissScreen(Ad ad){ 82 | 83 | //Log.d(AdMobPlugin.LOGTAG, "On dismiss screen"); 84 | } 85 | 86 | @Override 87 | public void onLeaveApplication(Ad ad){ 88 | 89 | //Log.d(AdMobPlugin.LOGTAG, "On leaving application"); 90 | } 91 | }; 92 | 93 | public static AdMobPlugin getInstance( 94 | String publisherId, 95 | boolean isTesting, 96 | String[] testDeviceIds, 97 | boolean guessSelfDeviceId, 98 | int size, 99 | int orientation, 100 | int horizontalPosition, 101 | int verticalPosition 102 | ){ 103 | 104 | if(AdMobPlugin.instance.config == null){ 105 | 106 | Log.d(AdMobPlugin.LOGTAG, "Initializing..."); 107 | 108 | AdMobPlugin.instance.activity = UnityPlayer.currentActivity; 109 | AdMobPlugin.instance.config = new AdMobConfiguration(publisherId, isTesting, testDeviceIds, guessSelfDeviceId, size, orientation, horizontalPosition, verticalPosition); 110 | 111 | AdMobPlugin.instance.activity.runOnUiThread(AdMobPlugin.instance.CONF); 112 | 113 | Log.i(AdMobPlugin.LOGTAG, "Initialized."); 114 | } 115 | 116 | return(AdMobPlugin.instance); 117 | } 118 | 119 | private AdMobPlugin(){ 120 | 121 | /* ... */ 122 | } 123 | 124 | public void reconfigure( 125 | String publisherId, 126 | boolean isTesting, 127 | String[] testDeviceIds, 128 | boolean guessSelfDeviceId, 129 | int size, 130 | int orientation, 131 | int horizontalPosition, 132 | int verticalPosition 133 | ){ 134 | 135 | Log.d(AdMobPlugin.LOGTAG, "Reconfiguring... "); 136 | 137 | this.config = new AdMobConfiguration(publisherId, isTesting, testDeviceIds, guessSelfDeviceId, size, orientation, horizontalPosition, verticalPosition); 138 | 139 | this.activity.runOnUiThread(this.CONF); 140 | 141 | Log.i(AdMobPlugin.LOGTAG, "Reconfigured: " + this.config); 142 | } 143 | 144 | private void _conf(){ 145 | 146 | boolean uninitialized = (this.layout == null); 147 | 148 | Log.d(AdMobPlugin.LOGTAG, "Config: " + this.config); 149 | 150 | try{ 151 | 152 | if(uninitialized){ 153 | 154 | this.layout = new LinearLayout(this.activity); 155 | } 156 | 157 | if(this.view != null){ 158 | 159 | Log.d(AdMobPlugin.LOGTAG, "Removing previous AdView..."); 160 | 161 | this.layout.removeViewInLayout(this.view); 162 | } 163 | 164 | Log.d(AdMobPlugin.LOGTAG, "Setting up the layout..."); 165 | 166 | this.layout.setOrientation(config.orientation); 167 | this.layout.setGravity(config.gravity); 168 | 169 | Log.d(AdMobPlugin.LOGTAG, "Creating new AdView..."); 170 | 171 | this.view = new AdView(activity, config.size, config.publisherId); 172 | 173 | Log.d(AdMobPlugin.LOGTAG, "Setting up ad listener..."); 174 | 175 | this.view.setAdListener(this.AD_LISTENER); 176 | 177 | Log.d(AdMobPlugin.LOGTAG, "Adding the view to the layout..."); 178 | 179 | // Add the view to the layout 180 | this.layout.addView(this.view); 181 | 182 | Log.d(AdMobPlugin.LOGTAG, "View added."); 183 | 184 | if(uninitialized){ 185 | 186 | this.activity.addContentView( this.layout, new LayoutParams(-1, -1) ); 187 | } 188 | 189 | }catch(Exception error){ 190 | 191 | Log.e(AdMobPlugin.LOGTAG, "Unexpected error while applying config: " + error); 192 | 193 | error.printStackTrace(); 194 | } 195 | 196 | Log.d(AdMobPlugin.LOGTAG, "Config OK."); 197 | } 198 | 199 | public void show(){ 200 | 201 | Log.d(AdMobPlugin.LOGTAG, "Showing ad view..."); 202 | 203 | this.activity.runOnUiThread(this.SHOW); 204 | } 205 | 206 | private void _show(){ 207 | 208 | try{ 209 | 210 | this.view.setVisibility(View.VISIBLE); 211 | 212 | }catch(Exception error){ 213 | 214 | Log.e(AdMobPlugin.LOGTAG, "Unexpected error while showing ad view: " + error); 215 | 216 | error.printStackTrace(); 217 | } 218 | 219 | Log.i(AdMobPlugin.LOGTAG, "Ad view shown."); 220 | } 221 | 222 | public void hide(){ 223 | 224 | Log.d(AdMobPlugin.LOGTAG, "Hiding ad view..."); 225 | 226 | this.activity.runOnUiThread(this.HIDE); 227 | } 228 | 229 | private void _hide(){ 230 | 231 | try{ 232 | 233 | this.view.setVisibility(View.GONE); 234 | 235 | }catch(Exception error){ 236 | 237 | Log.e(AdMobPlugin.LOGTAG, "Unexpected error while hiding ad view: " + error); 238 | 239 | error.printStackTrace(); 240 | } 241 | 242 | Log.i(AdMobPlugin.LOGTAG, "Ad view hidden."); 243 | } 244 | 245 | public void load(){ 246 | 247 | Log.d(AdMobPlugin.LOGTAG, "Loading Ad..."); 248 | 249 | this.activity.runOnUiThread(this.LOAD); 250 | } 251 | 252 | private void _load(){ 253 | 254 | try{ 255 | 256 | // Create the ad request 257 | AdRequest adRequest = new AdRequest(); 258 | 259 | if( this.config.isTesting ){ 260 | 261 | // Add this just to make sure that we are in test mode 262 | adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 263 | 264 | Log.d(AdMobPlugin.LOGTAG, "Added dummy device ID: TEST_DEVICE_ID"); 265 | 266 | if(this.config.guessSelfDeviceId && this.config.selfDeviceId != null){ 267 | 268 | adRequest.addTestDevice(this.config.selfDeviceId); 269 | 270 | Log.d(AdMobPlugin.LOGTAG, "Added self device ID: " + this.config.selfDeviceId); 271 | } 272 | 273 | if(this.config.testDeviceIds != null){ 274 | 275 | for(String testDeviceId : this.config.testDeviceIds){ 276 | 277 | adRequest.addTestDevice(testDeviceId); 278 | 279 | Log.d(AdMobPlugin.LOGTAG, "Added test device ID: " + testDeviceId); 280 | } 281 | } 282 | 283 | if(this.target != null){ 284 | 285 | if(this.target.birthday != null){ 286 | 287 | adRequest.setBirthday(this.target.birthday); 288 | } 289 | 290 | if(this.target.gender != null){ 291 | 292 | adRequest.setGender(this.target.gender); 293 | } 294 | 295 | if(this.target.location != null){ 296 | 297 | adRequest.setLocation(this.target.location); 298 | } 299 | 300 | if(this.target.keywords != null){ 301 | 302 | adRequest.setKeywords(this.target.keywords); 303 | } 304 | } 305 | } 306 | 307 | // Load the ad 308 | this.view.loadAd(adRequest); 309 | 310 | Log.i(AdMobPlugin.LOGTAG, "Ad request sent."); 311 | 312 | }catch(Exception error){ 313 | 314 | Log.e(AdMobPlugin.LOGTAG, "Unexpected error while loading ad: " + error); 315 | 316 | error.printStackTrace(); 317 | } 318 | } 319 | 320 | public String getLastError(){ 321 | 322 | String error; 323 | 324 | if(this.lastError == null){ 325 | 326 | //Log.d(AdMobPlugin.LOGTAG, "Last error: no error"); 327 | 328 | return(null); 329 | } 330 | 331 | error = this.lastError.toString(); 332 | 333 | Log.i(AdMobPlugin.LOGTAG, "Last error: " + error); 334 | 335 | this.lastError = null; 336 | 337 | return(error); 338 | } 339 | 340 | public int getReceived(){ 341 | 342 | //Log.i(AdMobPlugin.LOGTAG, "Getting number of ads received: " + this.received); 343 | 344 | return(this.received); 345 | } 346 | 347 | public void setTarget(int gender, int birthYear, int birthMonth, int birthDay, String[] keywords, double latitude, double longitude, double altitude){ 348 | 349 | Log.d(AdMobPlugin.LOGTAG, "Setting target... "); 350 | 351 | try{ 352 | 353 | this.target = new AdMobTarget(gender, birthYear, birthMonth, birthDay, keywords, latitude, longitude, altitude); 354 | 355 | }catch(Exception error){ 356 | 357 | Log.e(AdMobPlugin.LOGTAG, "Unexpected error while setting target: " + error); 358 | 359 | error.printStackTrace(); 360 | } 361 | 362 | Log.i(AdMobPlugin.LOGTAG, "Target set: " + this.target); 363 | } 364 | } 365 | -------------------------------------------------------------------------------- /EclipseProject/src/com/guillermonkey/unity/admob/AdMobTarget.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * This file is part of AdMobPlugin 4 | * 5 | * Copyright (c) 2013 Guillermo Calvo 6 | * 7 | * AdMobPlugin is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published 9 | * by the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * AdMobPlugin is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html) 16 | * for more details. 17 | * 18 | */ 19 | 20 | package com.guillermonkey.unity.admob; 21 | 22 | 23 | import java.util.Arrays; 24 | import java.util.Date; 25 | import java.util.GregorianCalendar; 26 | import java.util.HashSet; 27 | import java.util.Set; 28 | 29 | import android.location.Location; 30 | import android.location.LocationManager; 31 | import android.util.Log; 32 | 33 | import com.google.ads.AdRequest.Gender; 34 | 35 | 36 | class AdMobTarget{ 37 | 38 | public final Gender gender; 39 | public final Date birthday; 40 | public final Location location; 41 | public final Set keywords; 42 | 43 | AdMobTarget(int gender, int birthYear, int birthMonth, int birthDay, String[] keywords, double latitude, double longitude, double altitude){ 44 | 45 | this.gender = AdMobTarget.parseGender(gender); 46 | this.birthday = AdMobTarget.parseBirthday(birthYear, birthMonth, birthDay); 47 | this.keywords = AdMobTarget.parseKeywords(keywords); 48 | this.location = AdMobTarget.parseLocation(latitude, longitude, altitude); 49 | } 50 | 51 | private static Gender parseGender(int gender){ 52 | 53 | Log.d(AdMobPlugin.LOGTAG, "Parsing gender (" + gender + ")..."); 54 | 55 | switch(gender){ 56 | 57 | case 1: 58 | return(Gender.MALE); 59 | 60 | case 2: 61 | return(Gender.FEMALE); 62 | } 63 | 64 | Log.w(AdMobPlugin.LOGTAG, "Unknown gender: " + gender + "! Resolving to UNKNOWN..."); 65 | 66 | return(Gender.UNKNOWN); 67 | } 68 | 69 | private static Date parseBirthday(int year, int month, int day){ 70 | 71 | Date birthday = null; 72 | 73 | Log.d(AdMobPlugin.LOGTAG, "Parsing birthday (year: " + year + ", month: " + month + ", day: " + day + ")..."); 74 | 75 | try{ 76 | 77 | birthday = new GregorianCalendar(year, month, day).getTime(); 78 | 79 | }catch(Exception error){ 80 | 81 | Log.e(AdMobPlugin.LOGTAG, "Could not parse birthday (year: " + year + ", month: " + month + ", day: " + day + "): " + error); 82 | } 83 | 84 | return(birthday); 85 | } 86 | 87 | private static Set parseKeywords(String[] keywords){ 88 | 89 | Set set = new HashSet(); 90 | 91 | Log.d(AdMobPlugin.LOGTAG, "Parsing keywords (" + Arrays.toString(keywords) + ")..."); 92 | 93 | for(String keyword : keywords){ 94 | 95 | if(keyword != null && !set.contains(keyword)){ 96 | 97 | Log.d(AdMobPlugin.LOGTAG, "Parsed keyword: " + keyword); 98 | 99 | set.add(keyword); 100 | } 101 | } 102 | 103 | return(set); 104 | } 105 | 106 | private static Location parseLocation(double latitude, double longitude, double altitude){ 107 | 108 | Location location = null; 109 | 110 | Log.d(AdMobPlugin.LOGTAG, "Parsing location (lat: " + latitude + ", lon: " + longitude + ", alt: " + altitude + ")..."); 111 | 112 | try{ 113 | if(latitude != Double.NaN || longitude != Double.NaN || altitude != Double.NaN){ 114 | 115 | location = new Location(LocationManager.PASSIVE_PROVIDER); 116 | 117 | if(latitude != Double.NaN){ 118 | 119 | location.setLatitude(latitude); 120 | } 121 | 122 | if(longitude != Double.NaN){ 123 | 124 | location.setLongitude(longitude); 125 | } 126 | 127 | if(altitude != Double.NaN){ 128 | 129 | location.setAltitude(altitude); 130 | } 131 | } 132 | }catch(Exception error){ 133 | 134 | Log.e(AdMobPlugin.LOGTAG, "Could not parse location (lat: " + latitude + ", lon: " + longitude + ", alt: " + altitude + "): " + error); 135 | } 136 | 137 | return(location); 138 | } 139 | 140 | @Override 141 | public String toString(){ 142 | return( 143 | "AdMobTarget{" + 144 | "birthday: " + birthday + ", " + 145 | "gender: " + gender + ", " + 146 | "location: " + location + ", " + 147 | "keywords: " + keywords + 148 | "}" 149 | ); 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /EclipseProject/src/com/guillermonkey/unity/admob/AdMobUtil.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * This file is part of AdMobPlugin 4 | * 5 | * Copyright (c) 2013 Guillermo Calvo 6 | * 7 | * AdMobPlugin is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published 9 | * by the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * AdMobPlugin is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html) 16 | * for more details. 17 | * 18 | */ 19 | 20 | package com.guillermonkey.unity.admob; 21 | 22 | 23 | import java.math.BigInteger; 24 | import java.security.MessageDigest; 25 | import java.security.NoSuchAlgorithmException; 26 | import java.util.Locale; 27 | 28 | import android.app.Activity; 29 | import android.content.Context; 30 | import android.provider.Settings.Secure; 31 | import android.util.Log; 32 | 33 | import com.unity3d.player.UnityPlayer; 34 | 35 | 36 | class AdMobUtil{ 37 | 38 | static String getAndroidId(Context context){ 39 | 40 | String androidId; 41 | 42 | Log.d(AdMobPlugin.LOGTAG, "Getting Android ID..."); 43 | 44 | androidId = Secure.getString(context.getContentResolver(), "android_id"); 45 | 46 | Log.d(AdMobPlugin.LOGTAG, "Android ID: " + androidId); 47 | 48 | return(androidId); 49 | } 50 | 51 | static String getMD5(String string) throws NoSuchAlgorithmException{ 52 | 53 | String hash = null; 54 | 55 | Log.d(AdMobPlugin.LOGTAG, "Getting MD5(" + string + ")..."); 56 | 57 | if(string != null && string.length() > 0){ 58 | 59 | MessageDigest localMessageDigest = MessageDigest.getInstance("MD5"); 60 | 61 | localMessageDigest.update(string.getBytes(), 0, string.length()); 62 | 63 | hash = String.format(Locale.US, "%032X", new Object[]{ new BigInteger(1, localMessageDigest.digest()) } ); 64 | } 65 | 66 | Log.d(AdMobPlugin.LOGTAG, "MD5(" + string + "): " + hash); 67 | 68 | return(hash); 69 | } 70 | 71 | static String getDeviceId(String androidId){ 72 | 73 | String deviceId; 74 | 75 | Log.d(AdMobPlugin.LOGTAG, "Getting device ID(" + androidId + ")..."); 76 | 77 | try{ 78 | 79 | deviceId = AdMobUtil.getMD5(androidId); 80 | 81 | }catch(NoSuchAlgorithmException localNoSuchAlgorithmException){ 82 | 83 | deviceId = androidId.substring(0, 32); 84 | } 85 | 86 | Log.d(AdMobPlugin.LOGTAG, "Android ID(" + androidId + ") => " + deviceId); 87 | 88 | return(deviceId); 89 | } 90 | 91 | static String guessSelfDeviceId(){ 92 | 93 | Activity currentActivity; 94 | String androidId; 95 | String testDeviceId = null; 96 | 97 | Log.d(AdMobPlugin.LOGTAG, "Guessing self device id..."); 98 | 99 | try{ 100 | 101 | currentActivity = UnityPlayer.currentActivity; 102 | androidId = AdMobUtil.getAndroidId( currentActivity.getApplicationContext() ); 103 | testDeviceId = AdMobUtil.getDeviceId(androidId); 104 | 105 | Log.i(AdMobPlugin.LOGTAG, "Guessed self device id: " + testDeviceId); 106 | 107 | }catch(Exception error){ 108 | 109 | Log.e(AdMobPlugin.LOGTAG, "Could not guess self device id: " + error); 110 | } 111 | 112 | return(testDeviceId); 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /Images/Manual/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/Manual/banner.jpg -------------------------------------------------------------------------------- /Images/Manual/debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/Manual/debug.png -------------------------------------------------------------------------------- /Images/Manual/lgpl3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/Manual/lgpl3.png -------------------------------------------------------------------------------- /Images/Manual/mockup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/Manual/mockup.png -------------------------------------------------------------------------------- /Images/Manual/prefab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/Manual/prefab.png -------------------------------------------------------------------------------- /Images/Manual/sample-scene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/Manual/sample-scene.png -------------------------------------------------------------------------------- /Images/Manual/setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/Manual/setup.png -------------------------------------------------------------------------------- /Images/Manual/test-mode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/Manual/test-mode.jpg -------------------------------------------------------------------------------- /Images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Images/logo.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AdMobPlugin # 2 | 3 | > Monetize your Unity games as from today! 4 | 5 | ## Overview ## 6 | 7 | **AdMobPlugin** is an extension for **[Unity3d](http://unity3d.com/)** which allows you to place **[Google AdMob](http://www.admob.com/)** banners in your **[Android](http://www.android.com/)** games. 8 | 9 | You can choose size and position, refresh interval and switch on the test mode while you are developing your game. Location and demographic information may also be specified (if that information is already used by your game) to better target ads. 10 | 11 | ![](Images/Manual/banner.jpg) 12 | 13 | ## Requirements ## 14 | 15 | Please read this document in order to understand how this extension works and how you can integrate it into your own games. You must also understand the terms of the [license](#license) this plugin is released under. 16 | 17 | First of all, you need an **AdMob** site ID or **DoubleClick for Publishers** account. 18 | 19 | **AdMobPlugin** connects to native libraries which control the banners. This libraries must be kept under `Plugins/Android` along with your assets. Current **AdMob Ads SDK** native library is version 6.4.1 (works on Android 1.5 or later). 20 | 21 | In addition, a default *Android Manifest* is provided. You might need to modify it to ensure your game is configured properly. 22 | 23 | ![](Images/Manual/setup.png) 24 | 25 | You should [test](#test-mode) thoroughly on multiple platforms before releasing your game. 26 | 27 | ## Usage ## 28 | 29 | You just need to add the `AdMobPlugin` component to some game object on your scene (or simply drag & drop the *AdMobPlugin prefab*). Remember to specify your own *publisher id* and off you go! 30 | 31 | You can set most of the options from the editor. Click your *AdMobPlugin object* and change the values right from the inspector. These options can also be accessed and modified programmatically through the `AdMobPlugin` [fields and methods](#admobplugin-api). 32 | 33 | ## Banner Sizes ## 34 | 35 | You can choose from several banner sizes, depending on the target platform: 36 | 37 | * `BANNER`: *Standard Banner*, available for phones and tablets (320x50) 38 | * `IAB_MRECT`: *IAB Medium Rectangle*, available for tablets (300x250) 39 | * `IAB_BANNER`: *IAB Full-Size Banner*, available for tablets (468x60) 40 | * `IAB_LEADERBOARD`: *IAB Leaderboard*, available for tablets (728x90) 41 | * `SMART_BANNER`: *Smart Banner*, available for phones and tablets, (device will decide) 42 | 43 | If you intend to change the size of the banner once the plugin has been initialized, you need to invoke the method `Reconfigure` after modifying it. 44 | 45 | ## Banner Position ## 46 | 47 | You can choose where you want the banners to be shown: 48 | 49 | Horizontal position: 50 | 51 | * `CENTER_HORIZONTAL` 52 | * `LEFT` 53 | * `RIGHT` 54 | 55 | Vertical position: 56 | 57 | * `CENTER_VERTICAL` 58 | * `TOP` 59 | * `BOTTOM` 60 | 61 | If you intend to change the position of the banner once the plugin has been initialized, you need to invoke the method `Reconfigure` after modifying it. 62 | 63 | ## Ad Loading ## 64 | 65 | Once the plugin is initialized, you can start loading ads. To do so, you invoke the method `Load` of the `AdMobPlugin` component. The first ad can also be loaded automatically by switching on the field `loadOnStart`. 66 | 67 | Next ads will be loaded by invoking the method `Load` again. Instead of that, you might want to specify a `refreshInterval` and successive ads will be loaded automatically. The minimum refresh interval is 30 seconds. 68 | 69 | Please remember that you may also set the refresh interval for the ads from [the AdMob website](http://www.admob.com/my_sites/tools/?mt=sss). 70 | 71 | If you reconfigure banner size or position, you need to load a new ad by invoking `Load`. You can also switch on the field `loadOnReconfigure`. 72 | 73 | ## Test Mode ## 74 | 75 | Requesting test ads is recommended when testing your application so you do not request invalid impressions. In addition, you can always count on a test ad being available. 76 | 77 | ![](Images/Manual/test-mode.jpg) 78 | 79 | You can requests test ads by turning on the field `isTesting` and specifying the ID of the devices you are going to test your game on (field `testDeviceIds`). 80 | 81 | Typically you can find your *device ID* in the *[logcat](http://developer.android.com/tools/help/logcat.html) output* by requesting an ad when [debugging](#debug) on your device, but **AdMobPlugin** can "guess" it for you, so you don't need to dive into the log. If you want to do so, turn on the field `guessSelfDeviceId`. 82 | 83 | Remember to turn the testing flag off before deploying your app if you want to receive real ads. 84 | 85 | ## Targeting ## 86 | 87 | You can add the user's *location*, *gender*, and *birthday* to your requests. These are not required, but can be used by networks to serve more finely targeted ads. This way you can improve your [click through rate (CTR)](http://media.admob.com/mobile_ad_guide/#glossary "The number of times ads are clicked divided by the number of impressions."). 88 | 89 | To enable targeting, you must set appropriate values to any of these fields: 90 | 91 | * `gender`: target user's sex (choose from `UNKNOWN`, `MALE` and `FEMALE`). 92 | * `birthday`: the user's date of birth. 93 | * `keywords`: a set of words related to your game. 94 | * `location`: the user's *geolocation*. 95 | 96 | You then need to invoke the method `SetTarget`. All subsequent ad requests will use this information. The target can also be set automatically by switching on the field `setTargetOnStart `. 97 | 98 | ## Debug ## 99 | 100 | An instance of `AdMobPluginDebug` can be attached to your `AdMobPlugin` object and then a simple GUI will be shown to help you debug the plugin. When enabled, it will draw a set of buttons on screen to control ad loading, size and position. 101 | 102 | ![](Images/Manual/debug.png) 103 | 104 | This mechanism can be used to force ad loading while watching the *[logcat](http://developer.android.com/tools/help/logcat.html) output*. In addition, it may come in handy for testing different configurations on a device in a dynamic way. 105 | 106 | ## Mockup ## 107 | 108 | Ads will only be loaded at run-time on an actual device, that's why you won't see anything on screen while you are developing your game in *Unity*... unless you attach an instance of `AdMobPluginMockup` to your `AdMobPlugin` object. 109 | 110 | When enabled, a dummy banner will be drawn on screen, so you can preview what your ad will look like. Please take into account that the ad might be bigger or smaller on your device. The mock-up is a mere approach to the actual banner. 111 | 112 | ![](Images/Manual/mockup.png) 113 | 114 | You can customize the look of the mock-up, for instance, you can make it `dark` or `bright`, or provide a different set of images and texts (they will be randomly chosen). You may want to play around with `AdMobPlugin` on the editor; the options are pretty much self-explanatory. 115 | 116 | ## Prefab ## 117 | 118 | The extension includes a *prefab AdMobPlugin* which already includes the components: 119 | 120 | * `AdMobPlugin` 121 | * `AdMobPluginDebug` 122 | * `AdMobPluginMockUp` 123 | 124 | It is configured with default values; you can enter your own *publisher id* and hit *play*! 125 | 126 | ![](Images/Manual/prefab.png) 127 | 128 | ## Sample Scene ## 129 | 130 | A sample scene is provided for convenience so you can test this extension off-the-box. Once again, please remember to set your *publisher id* before you build and run your game. 131 | 132 | ![](Images/Manual/sample-scene.png) 133 | 134 | ## AdMobPlugin API ## 135 | 136 | ### Fields ### 137 | 138 | * `publisherId`: you must enter your publisher ID here. 139 | * `isTesting`: will enable/disable [test mode](#test-mode). 140 | * `testDeviceIds`: a list of test device IDs. 141 | * `guessSelfDeviceId`: if enabled, the plugin will try to guess the current device ID. 142 | * `size`: choose from `BANNER`, `IAB_MRECT`, `IAB_BANNER`, `IAB_LEADERBOARD` and `SMART_BANNER`. 143 | * `orientation`: either `HORIZONTAL` or `VERTICAL`. 144 | * `horizontalPosition`: choose from `CENTER_HORIZONTAL`, `LEFT` and `RIGHT`. 145 | * `verticalPosition`: choose from `CENTER_VERTICAL`, `TOP` and `BOTTOM`. 146 | * `refreshInterval`: specify the amount of time (in seconds) to wait for a new ad to be loaded. 147 | * `loadOnStart`: if enabled, the first ad will be loaded automatically. 148 | * `setTargetOnStart`: if enabled, the target will be set automatically. 149 | * `loadOnReconfigure`: if enabled, an ad will be loaded automatically after reconfiguring size or position. 150 | * `target` 151 | * `gender`: user's sex. 152 | * `birthday`: user's date of birth (`year`, `month` and `year`). 153 | * `keywords`: game-related set of words. 154 | * `location`: user's geolocation (`latitude`, `longitude` and `altitude`). 155 | 156 | ### Methods ### 157 | 158 | * `Reconfigure`: this method must be invoked after modifying [size](#banner-sizes) or [position](#banner-position). 159 | * `SetTarget`: this method must be invoked after specifying [location or demographic information](#targeting). 160 | * `Load`: loads [a new ad](#ad-loading). 161 | * `Hide`: makes the ad invisible. 162 | * `Show`: makes the ad visible. 163 | * `IsVisible`: returns whether the ad is visible or not. 164 | * `GetLastError`: returns the last error (if any) which prevented the ad from being received. 165 | * `GetReceived`: returns the number of ads loaded so far. 166 | 167 | ## License ## 168 | 169 | **AdMobPlugin** is *free software*; you can redistribute it and/or modify it under the terms of the **GNU Lesser General Public License** as published by the **Free Software Foundation**; either version 3 of the License, or (at your option) any later version. 170 | 171 | **AdMobPlugin** is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU Lesser General Public License](http://www.gnu.org/copyleft/lesser.html) for more details. 172 | 173 | The source code is freely available from [GitHub](https://github.com/guillermocalvo/admob-unity-plugin/). You may want to check it out and download latest release. In case you find a bug, you can report it [here](https://github.com/guillermocalvo/admob-unity-plugin/issues). 174 | 175 | ![](Images/Manual/lgpl3.png) 176 | 177 | The *GNU Lesser General Public License* grants your right to: 178 | 179 | * Use custom versions of the plugin, to support bug fixes and other enhancements. 180 | * Allow any improvements made to the plugin for one project to benefit the community as a whole. 181 | 182 | To comply with this license, you must give prominent notice that you use **AdMobPlugin**, and that it is included under the terms of the LGPL license. You must provide a copy of the LGPL license. 183 | 184 | You should also make available the source code to the version of the plugin you provide, including any customizations you have made. If you did not modify the plugin, simply referring to the [AdMobPlugin project page](https://github.com/guillermocalvo/admob-unity-plugin/) is sufficient. 185 | 186 | ## Legal Notice ## 187 | 188 | **AdMobPlugin** is not endorsed or certified by *Unity Technologies* or *Google AdMob*. All trademarks are the property of their respective owners. 189 | 190 | You will find further information here: 191 | 192 | * [Admob Terms of Use](http://www.admob.com/home/terms) 193 | * [AdMob Help](http://support.google.com/admob/) 194 | * [AdMob Ads SDK](https://developers.google.com/mobile-ads-sdk/) 195 | 196 | ## About the Author ## 197 | 198 | **AdMobPlugin** is developed by Guillermo Calvo, freelance programmer, based in [Zaragoza, Spain](http://en.wikipedia.org/wiki/Zaragoza). Currently diving into game design, but always open to interesting software projects of any kind. 199 | 200 | If you have any questions, suggestions or ideas about **AdMobPlugin** you can reach me on [twitter](https://twitter.com/guillermonkey). 201 | 202 | ![](http://www.gravatar.com/avatar/8866f980f00923a323f752e57fda0302) 203 | -------------------------------------------------------------------------------- /Releases/AdMobPlugin-1.0.unitypackage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Releases/AdMobPlugin-1.0.unitypackage -------------------------------------------------------------------------------- /Releases/AdMobPlugin-1.1-Unity3.5.unitypackage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Releases/AdMobPlugin-1.1-Unity3.5.unitypackage -------------------------------------------------------------------------------- /Releases/AdMobPlugin-1.1-Unity4.3.unitypackage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Releases/AdMobPlugin-1.1-Unity4.3.unitypackage -------------------------------------------------------------------------------- /Releases/AdMobPlugin-1.1.unitypackage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/Releases/AdMobPlugin-1.1.unitypackage -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7b1b2dd801b77d4b8ece31ff9e66cc1 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/AdMobPlugin Manual.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Readme 5 | 6 | 302 | 303 | 304 |

AdMobPlugin Manual

305 |
306 |

Monetize your Unity games as from today!

307 |
308 |

309 |

Table of contents

310 |
    311 |
  1. Overview
  2. 312 |
  3. Requirements
  4. 313 |
  5. Usage
  6. 314 |
  7. Banner Sizes
  8. 315 |
  9. Banner Position
  10. 316 |
  11. Ad Loading
  12. 317 |
  13. Test Mode
  14. 318 |
  15. Targeting
  16. 319 |
  17. Debug
  18. 320 |
  19. Mockup
  20. 321 |
  21. Prefab
  22. 322 |
  23. Sample Scene
  24. 323 |
  25. AdMobPlugin API
  26. 324 |
  27. License
  28. 325 |
  29. Legal Notice
  30. 326 |
  31. About the Author
  32. 327 |
328 |

329 |

Overview

330 |

AdMobPlugin is an extension for Unity3d which allows you to place Google AdMob banners in your Android games.

331 |

You can choose size and position, refresh interval and switch on the test mode while you are developing your game. Location and demographic information may also be specified (if that information is already used by your game) to better target ads.

332 |

333 |
334 |

-

335 |
336 |

337 |

Requirements

338 |

Please read this document in order to understand how this extension works and how you can integrate it into your own games. You must also understand the terms of the license this plugin is released under.

339 |

First of all, you need an AdMob site ID or DoubleClick for Publishers account.

340 |

AdMobPlugin connects to native libraries which control the banners. This libraries must be kept under Plugins/Android along with your assets. Current AdMob Ads SDK native library is version 6.4.1 (works on Android 1.5 or later).

341 |

In addition, a default Android Manifest is provided. You might need to modify it to ensure your game is configured properly.

342 |

343 |

You should test thoroughly on multiple platforms before releasing your game.

344 |
345 |

-

346 |
347 |

348 |

Usage

349 |

You just need to add the AdMobPlugin component to some game object on your scene (or simply drag & drop the AdMobPlugin prefab). Remember to specify your own publisher id and off you go!

350 |

You can set most of the options from the editor. Click your AdMobPlugin object and change the values right from the inspector. These options can also be accessed and modified programmatically through the AdMobPlugin fields and methods.

351 |
352 |

-

353 |
354 |

355 |

Banner Sizes

356 |

You can choose from several banner sizes, depending on the target platform:

357 |
    358 |
  • BANNER: Standard Banner, available for phones and tablets (320x50)
  • 359 |
  • IAB_MRECT: IAB Medium Rectangle, available for tablets (300x250)
  • 360 |
  • IAB_BANNER: IAB Full-Size Banner, available for tablets (468x60)
  • 361 |
  • IAB_LEADERBOARD: IAB Leaderboard, available for tablets (728x90)
  • 362 |
  • SMART_BANNER: Smart Banner, available for phones and tablets, (device will decide)
  • 363 |
364 |

If you intend to change the size of the banner once the plugin has been initialized, you need to invoke the method Reconfigure after modifying it.

365 |
366 |

-

367 |
368 |

369 |

Banner Position

370 |

You can choose where you want the banners to be shown:

371 |

Horizontal position:

372 |
    373 |
  • CENTER_HORIZONTAL
  • 374 |
  • LEFT
  • 375 |
  • RIGHT
  • 376 |
377 |

Vertical position:

378 |
    379 |
  • CENTER_VERTICAL
  • 380 |
  • TOP
  • 381 |
  • BOTTOM
  • 382 |
383 |

If you intend to change the position of the banner once the plugin has been initialized, you need to invoke the method Reconfigure after modifying it.

384 |
385 |

-

386 |
387 |

388 |

Ad Loading

389 |

Once the plugin is initialized, you can start loading ads. To do so, you invoke the method Load of the AdMobPlugin component. The first ad can also be loaded automatically by switching on the field loadOnStart.

390 |

Next ads will be loaded by invoking the method Load again. Instead of that, you might want to specify a refreshInterval and successive ads will be loaded automatically. The minimum refresh interval is 30 seconds.

391 |

Please remember that you may also set the refresh interval for the ads from the AdMob website.

392 |

If you reconfigure banner size or position, you need to load a new ad by invoking Load. You can also switch on the field loadOnReconfigure.

393 |
394 |

-

395 |
396 |

397 |

Test Mode

398 |

Requesting test ads is recommended when testing your application so you do not request invalid impressions. In addition, you can always count on a test ad being available.

399 |

400 |

You can requests test ads by turning on the field isTesting and specifying the ID of the devices you are going to test your game on (field testDeviceIds).

401 |

Typically you can find your device ID in the logcat output by requesting an ad when debugging on your device, but AdMobPlugin can "guess" it for you, so you don't need to dive into the log. If you want to do so, turn on the field guessSelfDeviceId.

402 |

Remember to turn the testing flag off before deploying your app if you want to receive real ads.

403 |
404 |

-

405 |
406 |

407 |

Targeting

408 |

You can add the user's location, gender, and birthday to your requests. These are not required, but can be used by networks to serve more finely targeted ads. This way you can improve your click through rate (CTR).

409 |

To enable targeting, you must set appropriate values to any of these fields:

410 |
    411 |
  • gender: target user's sex (choose from UNKNOWN, MALE and FEMALE).
  • 412 |
  • birthday: the user's date of birth.
  • 413 |
  • keywords: a set of words related to your game.
  • 414 |
  • location: the user's geolocation.
  • 415 |
416 |

You then need to invoke the method SetTarget. All subsequent ad requests will use this information.

417 |
418 |

-

419 |
420 |

421 |

Debug

422 |

An instance of AdMobPluginDebug can be attached to your AdMobPlugin object and then a simple GUI will be shown to help you debug the plugin. When enabled, it will draw a set of buttons on screen to control ad loading, size and position.

423 |

424 |

This mechanism can be used to force ad loading while watching the logcat output. In addition, it may come in handy for testing different configurations on a device in a dynamic way.

425 |
426 |

-

427 |
428 |

429 |

Mockup

430 |

Ads will only be loaded at run-time on an actual device, that's why you won't see anything on screen while you are developing your game in Unity... unless you attach an instance of AdMobPluginMockup to your AdMobPlugin object.

431 |

When enabled, a dummy banner will be drawn on screen, so you can preview what your ad will look like. Please take into account that the ad might be bigger or smaller on your device. The mock-up is a mere approach to the actual banner.

432 |

433 |

You can customize the look of the mock-up, for instance, you can make it dark or bright, or provide a different set of images and texts (they will be randomly chosen). You may want to play around with AdMobPlugin on the editor; the options are pretty much self-explanatory.

434 |
435 |

-

436 |
437 |

438 |

Prefab

439 |

The extension includes a prefab AdMobPlugin which already includes the components:

440 |
    441 |
  • AdMobPlugin
  • 442 |
  • AdMobPluginDebug
  • 443 |
  • AdMobPluginMockUp
  • 444 |
445 |

It is configured with default values; you can enter your own publisher id and hit play!

446 |

447 |
448 |

-

449 |
450 |

451 |

Sample Scene

452 |

A sample scene is provided for convenience so you can test this extension off-the-box. Once again, please remember to set your publisher id before you build and run your game.

453 |

454 |
455 |

-

456 |
457 |

458 |

AdMobPlugin API

459 |

Fields

460 |
    461 |
  • publisherId: you must enter your publisher ID here.
  • 462 |
  • isTesting: will enable/disable test mode.
  • 463 |
  • testDeviceIds: a list of test device IDs.
  • 464 |
  • guessSelfDeviceId: if enabled, the plugin will try to guess the current device ID.
  • 465 |
  • size: choose from BANNER, IAB_MRECT, IAB_BANNER, IAB_LEADERBOARD and SMART_BANNER.
  • 466 |
  • orientation: either HORIZONTAL or VERTICAL.
  • 467 |
  • horizontalPosition: choose from CENTER_HORIZONTAL, LEFT and RIGHT.
  • 468 |
  • verticalPosition: choose from CENTER_VERTICAL, TOP and BOTTOM.
  • 469 |
  • refreshInterval: specify the amount of time (in seconds) to wait for a new ad to be loaded.
  • 470 |
  • loadOnStart: if enabled, the first ad will be loaded automatically.
  • 471 |
  • loadOnReconfigure: if enabled, an ad will be loaded automatically after reconfiguring size or position.
  • 472 |
  • 473 | target 474 |
      475 |
    • gender: user's sex.
    • 476 |
    • birthday: user's date of birth (year, month and year).
    • 477 |
    • keywords: game-related set of words.
    • 478 |
    • location: user's geolocation (latitude, longitude and altitude).
    • 479 |
    480 |
  • 481 |
482 |

Methods

483 |
    484 |
  • Reconfigure: this method must be invoked after modifying size or position.
  • 485 |
  • SetTarget: this method must be invoked after specifying location or demographic information.
  • 486 |
  • Load: loads a new ad.
  • 487 |
  • Hide: makes the ad invisible.
  • 488 |
  • Show: makes the ad visible.
  • 489 |
  • IsVisible: returns whether the ad is visible or not.
  • 490 |
  • GetLastError: returns the last error (if any) which prevented the ad from being received.
  • 491 |
  • GetReceived: returns the number of ads loaded so far.
  • 492 |
493 |
494 |

-

495 |
496 |

497 |

License

498 |

AdMobPlugin is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

499 |

AdMobPlugin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

500 |

The source code is freely available from GitHub. You may want to check it out and download latest release. In case you find a bug, you can report it here.

501 |
502 |

503 |
504 |

The GNU Lesser General Public License grants your right to:

505 |
    506 |
  • Use custom versions of the plugin, to support bug fixes and other enhancements.
  • 507 |
  • Allow any improvements made to the plugin for one project to benefit the community as a whole.
  • 508 |
509 |

To comply with this license, you must give prominent notice that you use AdMobPlugin, and that it is included under the terms of the LGPL license. You must provide a copy of the LGPL license.

510 |

You should also make available the source code to the version of the plugin you provide, including any customizations you have made. If you did not modify the plugin, simply referring to the AdMobPlugin project page is sufficient.

511 |
512 |

-

513 |
514 |

515 |

Legal Notice

516 |

AdMobPlugin is not endorsed or certified by Unity Technologies or Google AdMob. All trademarks are the property of their respective owners.

517 |

You will find further information here:

518 | 523 |
524 |

-

525 |
526 |

527 |

About the Author

528 |

AdMobPlugin is developed by Guillermo Calvo, freelance programmer, based in Zaragoza, Spain. Currently diving into game design, but always open to interesting software projects of any kind.

529 |

If you have any questions, suggestions or ideas about AdMobPlugin you can reach me on twitter.

530 |
531 |

532 |

-

533 |
534 | 535 | 536 | 537 | 538 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/AdMobPlugin Manual.html.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f41778d69686f5f498a7b899fc25145d 3 | TextScriptImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/AdMobPlugin.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &100000 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 100100000} 8 | serializedVersion: 4 9 | m_Component: 10 | - 4: {fileID: 400000} 11 | - 114: {fileID: 11400000} 12 | - 114: {fileID: 11400004} 13 | - 114: {fileID: 11400002} 14 | m_Layer: 0 15 | m_Name: AdMobPlugin 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!4 &400000 22 | Transform: 23 | m_ObjectHideFlags: 1 24 | m_PrefabParentObject: {fileID: 0} 25 | m_PrefabInternal: {fileID: 100100000} 26 | m_GameObject: {fileID: 100000} 27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 28 | m_LocalPosition: {x: 0, y: 0, z: 0} 29 | m_LocalScale: {x: 1, y: 1, z: 1} 30 | m_Children: [] 31 | m_Father: {fileID: 0} 32 | --- !u!114 &11400000 33 | MonoBehaviour: 34 | m_ObjectHideFlags: 1 35 | m_PrefabParentObject: {fileID: 0} 36 | m_PrefabInternal: {fileID: 100100000} 37 | m_GameObject: {fileID: 100000} 38 | m_Enabled: 1 39 | m_EditorHideFlags: 0 40 | m_Script: {fileID: 11500000, guid: 1bdf14effc102404ab6a46bc6a50a821, type: 3} 41 | m_Name: 42 | publisherId: YOUR_PUBLISHER_ID 43 | isTesting: 1 44 | testDeviceIds: 45 | - TEST_DEVICE_ID 46 | guessSelfDeviceId: 1 47 | size: 0 48 | orientation: 0 49 | horizontalPosition: 0 50 | verticalPosition: 2 51 | refreshInterval: 30 52 | loadOnStart: 1 53 | loadOnReconfigure: 1 54 | target: 55 | gender: 0 56 | birthday: 57 | year: 0 58 | month: 0 59 | day: 0 60 | keywords: [] 61 | location: 62 | latitude: NaN 63 | longitude: NaN 64 | altitude: NaN 65 | --- !u!114 &11400002 66 | MonoBehaviour: 67 | m_ObjectHideFlags: 1 68 | m_PrefabParentObject: {fileID: 0} 69 | m_PrefabInternal: {fileID: 100100000} 70 | m_GameObject: {fileID: 100000} 71 | m_Enabled: 1 72 | m_EditorHideFlags: 0 73 | m_Script: {fileID: 11500000, guid: 4bcdadf56b0d1e54e906ae9deec40c57, type: 3} 74 | m_Name: 75 | executeInEditMode: 1 76 | style: 0 77 | texts: 78 | - Bugs that go away by themselves come back by themselves. 79 | - When in doubt, use brute force. 80 | - Deleted code is debugged code. 81 | - Premature optimization is the root of all evil. 82 | - Simplicity is the ultimate sophistication. 83 | - With diligence it is possible to make anything run slowly. 84 | - Simplicity carried to the extreme becomes elegance. 85 | - The best is the enemy of the good. 86 | - A data structure is just a stupid programming language. 87 | - Software gets slower faster than hardware gets faster. 88 | - If it doesn't work, it doesn't matter how fast it doesn't work. 89 | - If it works, it's obsolete. 90 | - The common language of programmers is Profanity. 91 | - There is no place like 127.0.0.1. 92 | - The code is 100% complete, it just doesn't work yet. 93 | - Programming is hard, let's go shopping. 94 | icons: 95 | - {fileID: 2800000, guid: 42f0fee300d07b347874caf6491a8e1e, type: 3} 96 | - {fileID: 2800000, guid: a0eff840123186b4a97e58764a06116a, type: 3} 97 | - {fileID: 2800000, guid: 13ac363ff191c2648b2b4adae2553a7e, type: 3} 98 | - {fileID: 2800000, guid: fbf551ccd05c60540877234ccbe0f135, type: 3} 99 | - {fileID: 2800000, guid: ca76f053bcdffaf4bad67609b6b8c854, type: 3} 100 | - {fileID: 2800000, guid: 8e5ce85e4d1b6404d9840eebe6224f77, type: 3} 101 | - {fileID: 2800000, guid: 91db7cb3febcec4419d4ab042f0f2f5d, type: 3} 102 | - {fileID: 2800000, guid: d502f1730be94304e98d7deeb2736ba8, type: 3} 103 | - {fileID: 2800000, guid: 9af03d6d762bd4f4a8e8d9c435989f81, type: 3} 104 | - {fileID: 2800000, guid: aa33e0a9e023cdf4b8adabbb7bd8bd23, type: 3} 105 | actions: 106 | - {fileID: 2800000, guid: 87cb40c70b3249c4896cb0ef2bff4e61, type: 3} 107 | - {fileID: 2800000, guid: cf53756917301da499205cef5c050738, type: 3} 108 | - {fileID: 2800000, guid: 8dfbace6cba0c764aa4d45617a306291, type: 3} 109 | darkBackground: {fileID: 2800000, guid: 5b39f3498b3c64b429ec2741e91a7673, type: 3} 110 | lightBackground: {fileID: 2800000, guid: 975975dbb2b2710468aa64f84f24d99e, type: 3} 111 | currentAd: 112 | icon: {fileID: 2800000, guid: fbf551ccd05c60540877234ccbe0f135, type: 3} 113 | action: {fileID: 2800000, guid: 87cb40c70b3249c4896cb0ef2bff4e61, type: 3} 114 | text: Some people get confused when a sentence does not end as they potato. 115 | --- !u!114 &11400004 116 | MonoBehaviour: 117 | m_ObjectHideFlags: 1 118 | m_PrefabParentObject: {fileID: 0} 119 | m_PrefabInternal: {fileID: 100100000} 120 | m_GameObject: {fileID: 100000} 121 | m_Enabled: 1 122 | m_EditorHideFlags: 0 123 | m_Script: {fileID: 11500000, guid: 36da46230c88f0e44ba41ec202f52749, type: 3} 124 | m_Name: 125 | --- !u!1001 &100100000 126 | Prefab: 127 | m_ObjectHideFlags: 1 128 | serializedVersion: 2 129 | m_Modification: 130 | m_TransformParent: {fileID: 0} 131 | m_Modifications: [] 132 | m_RemovedComponents: [] 133 | m_ParentPrefab: {fileID: 0} 134 | m_RootGameObject: {fileID: 100000} 135 | m_IsPrefabParent: 1 136 | m_IsExploded: 1 137 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/AdMobPlugin.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e3676865462d674e9eba99e8724cada 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a05a1d38b070284c946f744bb6681cd 3 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Actions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2ec860c79df63e4297065ffaab2abe7 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Actions/action_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Actions/action_download.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Actions/action_download.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87cb40c70b3249c4896cb0ef2bff4e61 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Actions/action_safari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Actions/action_safari.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Actions/action_safari.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf53756917301da499205cef5c050738 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Actions/action_world.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Actions/action_world.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Actions/action_world.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8dfbace6cba0c764aa4d45617a306291 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Backgrounds.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4b712a40ee77cc45b70b71c0651ecca 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Backgrounds/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Backgrounds/dark.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Backgrounds/dark.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b39f3498b3c64b429ec2741e91a7673 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Backgrounds/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Backgrounds/light.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Backgrounds/light.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 975975dbb2b2710468aa64f84f24d99e 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cf93b14ca98c0d4fb628ae6003148a2 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/biz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/biz.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/biz.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42f0fee300d07b347874caf6491a8e1e 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/com.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/com.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0eff840123186b4a97e58764a06116a 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/edu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/edu.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/edu.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13ac363ff191c2648b2b4adae2553a7e 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/ent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/ent.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/ent.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbf551ccd05c60540877234ccbe0f135 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/life.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/life.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/life.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca76f053bcdffaf4bad67609b6b8c854 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/mov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/mov.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/mov.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e5ce85e4d1b6404d9840eebe6224f77 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/music.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/music.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 91db7cb3febcec4419d4ab042f0f2f5d 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/news.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/news.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d502f1730be94304e98d7deeb2736ba8 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/search.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/search.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9af03d6d762bd4f4a8e8d9c435989f81 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/uti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Icons/uti.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Icons/uti.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa33e0a9e023cdf4b8adabbb7bd8bd23 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b4448bb444b8a94da64c1972ca9118b 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Manual/banner.jpg -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/banner.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 347c200326b5541408d0fd271922d815 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Manual/debug.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/debug.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c3576e9404ed4e5438902f80a275c1b1 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/lgpl3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Manual/lgpl3.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/lgpl3.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 709c919efff00104da20786eb4ebf273 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/mockup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Manual/mockup.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/mockup.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0c995887a60a2c4aad3083f69e3aa9d 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/prefab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Manual/prefab.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/prefab.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1542a3cda54d8642b8218034cf6c809 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/sample-scene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Manual/sample-scene.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/sample-scene.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18e0bd0ed8a67454f8b0070d2ff344c9 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Manual/setup.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/setup.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88e42c97edb483242ac19d87e5062e95 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/test-mode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/Manual/test-mode.jpg -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/Manual/test-mode.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 314451de0c4aa18488d9c78a174f9bd1 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/AdMobPlugin/Images/logo.png -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Images/logo.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f69fb202e27d0744bb867a29b13fc33e 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: -1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | textureType: -1 34 | buildTargetSettings: [] 35 | userData: 36 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/LICENSE.txt: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | 9 | This version of the GNU Lesser General Public License incorporates 10 | the terms and conditions of version 3 of the GNU General Public 11 | License, supplemented by the additional permissions listed below. 12 | 13 | 0. Additional Definitions. 14 | 15 | As used herein, "this License" refers to version 3 of the GNU Lesser 16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU 17 | General Public License. 18 | 19 | "The Library" refers to a covered work governed by this License, 20 | other than an Application or a Combined Work as defined below. 21 | 22 | An "Application" is any work that makes use of an interface provided 23 | by the Library, but which is not otherwise based on the Library. 24 | Defining a subclass of a class defined by the Library is deemed a mode 25 | of using an interface provided by the Library. 26 | 27 | A "Combined Work" is a work produced by combining or linking an 28 | Application with the Library. The particular version of the Library 29 | with which the Combined Work was made is also called the "Linked 30 | Version". 31 | 32 | The "Minimal Corresponding Source" for a Combined Work means the 33 | Corresponding Source for the Combined Work, excluding any source code 34 | for portions of the Combined Work that, considered in isolation, are 35 | based on the Application, and not on the Linked Version. 36 | 37 | The "Corresponding Application Code" for a Combined Work means the 38 | object code and/or source code for the Application, including any data 39 | and utility programs needed for reproducing the Combined Work from the 40 | Application, but excluding the System Libraries of the Combined Work. 41 | 42 | 1. Exception to Section 3 of the GNU GPL. 43 | 44 | You may convey a covered work under sections 3 and 4 of this License 45 | without being bound by section 3 of the GNU GPL. 46 | 47 | 2. Conveying Modified Versions. 48 | 49 | If you modify a copy of the Library, and, in your modifications, a 50 | facility refers to a function or data to be supplied by an Application 51 | that uses the facility (other than as an argument passed when the 52 | facility is invoked), then you may convey a copy of the modified 53 | version: 54 | 55 | a) under this License, provided that you make a good faith effort to 56 | ensure that, in the event an Application does not supply the 57 | function or data, the facility still operates, and performs 58 | whatever part of its purpose remains meaningful, or 59 | 60 | b) under the GNU GPL, with none of the additional permissions of 61 | this License applicable to that copy. 62 | 63 | 3. Object Code Incorporating Material from Library Header Files. 64 | 65 | The object code form of an Application may incorporate material from 66 | a header file that is part of the Library. You may convey such object 67 | code under terms of your choice, provided that, if the incorporated 68 | material is not limited to numerical parameters, data structure 69 | layouts and accessors, or small macros, inline functions and templates 70 | (ten or fewer lines in length), you do both of the following: 71 | 72 | a) Give prominent notice with each copy of the object code that the 73 | Library is used in it and that the Library and its use are 74 | covered by this License. 75 | 76 | b) Accompany the object code with a copy of the GNU GPL and this license 77 | document. 78 | 79 | 4. Combined Works. 80 | 81 | You may convey a Combined Work under terms of your choice that, 82 | taken together, effectively do not restrict modification of the 83 | portions of the Library contained in the Combined Work and reverse 84 | engineering for debugging such modifications, if you also do each of 85 | the following: 86 | 87 | a) Give prominent notice with each copy of the Combined Work that 88 | the Library is used in it and that the Library and its use are 89 | covered by this License. 90 | 91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license 92 | document. 93 | 94 | c) For a Combined Work that displays copyright notices during 95 | execution, include the copyright notice for the Library among 96 | these notices, as well as a reference directing the user to the 97 | copies of the GNU GPL and this license document. 98 | 99 | d) Do one of the following: 100 | 101 | 0) Convey the Minimal Corresponding Source under the terms of this 102 | License, and the Corresponding Application Code in a form 103 | suitable for, and under terms that permit, the user to 104 | recombine or relink the Application with a modified version of 105 | the Linked Version to produce a modified Combined Work, in the 106 | manner specified by section 6 of the GNU GPL for conveying 107 | Corresponding Source. 108 | 109 | 1) Use a suitable shared library mechanism for linking with the 110 | Library. A suitable mechanism is one that (a) uses at run time 111 | a copy of the Library already present on the user's computer 112 | system, and (b) will operate properly with a modified version 113 | of the Library that is interface-compatible with the Linked 114 | Version. 115 | 116 | e) Provide Installation Information, but only if you would otherwise 117 | be required to provide such information under section 6 of the 118 | GNU GPL, and only to the extent that such information is 119 | necessary to install and execute a modified version of the 120 | Combined Work produced by recombining or relinking the 121 | Application with a modified version of the Linked Version. (If 122 | you use option 4d0, the Installation Information must accompany 123 | the Minimal Corresponding Source and Corresponding Application 124 | Code. If you use option 4d1, you must provide the Installation 125 | Information in the manner specified by section 6 of the GNU GPL 126 | for conveying Corresponding Source.) 127 | 128 | 5. Combined Libraries. 129 | 130 | You may place library facilities that are a work based on the 131 | Library side by side in a single library together with other library 132 | facilities that are not Applications and are not covered by this 133 | License, and convey such a combined library under terms of your 134 | choice, if you do both of the following: 135 | 136 | a) Accompany the combined library with a copy of the same work based 137 | on the Library, uncombined with any other library facilities, 138 | conveyed under the terms of this License. 139 | 140 | b) Give prominent notice with the combined library that part of it 141 | is a work based on the Library, and explaining where to find the 142 | accompanying uncombined form of the same work. 143 | 144 | 6. Revised Versions of the GNU Lesser General Public License. 145 | 146 | The Free Software Foundation may publish revised and/or new versions 147 | of the GNU Lesser General Public License from time to time. Such new 148 | versions will be similar in spirit to the present version, but may 149 | differ in detail to address new problems or concerns. 150 | 151 | Each version is given a distinguishing version number. If the 152 | Library as you received it specifies that a certain numbered version 153 | of the GNU Lesser General Public License "or any later version" 154 | applies to it, you have the option of following the terms and 155 | conditions either of that published version or of any later version 156 | published by the Free Software Foundation. If the Library as you 157 | received it does not specify a version number of the GNU Lesser 158 | General Public License, you may choose any version of the GNU Lesser 159 | General Public License ever published by the Free Software Foundation. 160 | 161 | If the Library as you received it specifies that a proxy can decide 162 | whether future versions of the GNU Lesser General Public License shall 163 | apply, that proxy's public statement of acceptance of any version is 164 | permanent authorization for you to choose that version for the 165 | Library. 166 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/LICENSE.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a337a33600626343803b63e965e508e 3 | TextScriptImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dab00621ed5501340bd60002330a0935 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Materials/AdPlugin.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 3 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: AdPlugin 10 | m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} 11 | m_SavedProperties: 12 | serializedVersion: 2 13 | m_TexEnvs: 14 | data: 15 | first: 16 | name: _MainTex 17 | second: 18 | m_Texture: {fileID: 2800000, guid: f69fb202e27d0744bb867a29b13fc33e, type: 3} 19 | m_Scale: {x: 1, y: 1} 20 | m_Offset: {x: 0, y: 0} 21 | m_Floats: {} 22 | m_Colors: 23 | data: 24 | first: 25 | name: _Color 26 | second: {r: 1, g: 1, b: 1, a: 1} 27 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Materials/AdPlugin.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 515d8a64a44acde44af2fe7bd8c8263c 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Readme.markdown: -------------------------------------------------------------------------------- 1 | # AdMobPlugin Manual # 2 | 3 | > Monetize your Unity games as from today! 4 | 5 | 6 | ## **Table of contents** ## 7 | 8 | 1. [Overview](#overview) 9 | 2. [Requirements](#requirements) 10 | 3. [Usage](#usage) 11 | 4. [Banner Sizes](#banner-sizes) 12 | 5. [Banner Position](#banner-position) 13 | 6. [Ad Loading](#ad-loading) 14 | 7. [Test Mode](#test-mode) 15 | 8. [Targeting](#targeting) 16 | 9. [Debug](#debug) 17 | 10. [Mockup](#mockup) 18 | 11. [Prefab](#prefab) 19 | 12. [Sample Scene](#sample-scene) 20 | 13. [AdMobPlugin API](#admobplugin-api) 21 | 14. [License](#license) 22 | 15. [Legal Notice](#legal-notice) 23 | 16. [About the Author](#about-the-author) 24 | 25 | 26 | ## Overview ## 27 | 28 | **AdMobPlugin** is an extension for **[Unity3d](http://unity3d.com/)** which allows you to place **[Google AdMob](http://www.admob.com/)** banners in your **[Android](http://www.android.com/)** games. 29 | 30 | You can choose size and position, refresh interval and switch on the test mode while you are developing your game. Location and demographic information may also be specified (if that information is already used by your game) to better target ads. 31 | 32 | ![](Images/Manual/banner.jpg) 33 | 34 | > [*-*](#table-of-contents) 35 | 36 | 37 | ## Requirements ## 38 | 39 | Please read this document in order to understand how this extension works and how you can integrate it into your own games. You must also understand the terms of the [license](#license) this plugin is released under. 40 | 41 | First of all, you need an **AdMob** site ID or **DoubleClick for Publishers** account. 42 | 43 | **AdMobPlugin** connects to native libraries which control the banners. This libraries must be kept under `Plugins/Android` along with your assets. Current **AdMob Ads SDK** native library is version 6.4.1 (works on Android 1.5 or later). 44 | 45 | In addition, a default *Android Manifest* is provided. You might need to modify it to ensure your game is configured properly. 46 | 47 | ![](Images/Manual/setup.png) 48 | 49 | You should [test](#test-mode) thoroughly on multiple platforms before releasing your game. 50 | 51 | > [*-*](#table-of-contents) 52 | 53 | 54 | ## Usage ## 55 | 56 | You just need to add the `AdMobPlugin` component to some game object on your scene (or simply drag & drop the *AdMobPlugin prefab*). Remember to specify your own *publisher id* and off you go! 57 | 58 | You can set most of the options from the editor. Click your *AdMobPlugin object* and change the values right from the inspector. These options can also be accessed and modified programmatically through the `AdMobPlugin` [fields and methods](#admobplugin-api). 59 | 60 | > [*-*](#table-of-contents) 61 | 62 | 63 | ## Banner Sizes ## 64 | 65 | You can choose from several banner sizes, depending on the target platform: 66 | 67 | * `BANNER`: *Standard Banner*, available for phones and tablets (320x50) 68 | * `IAB_MRECT`: *IAB Medium Rectangle*, available for tablets (300x250) 69 | * `IAB_BANNER`: *IAB Full-Size Banner*, available for tablets (468x60) 70 | * `IAB_LEADERBOARD`: *IAB Leaderboard*, available for tablets (728x90) 71 | * `SMART_BANNER`: *Smart Banner*, available for phones and tablets, (device will decide) 72 | 73 | If you intend to change the size of the banner once the plugin has been initialized, you need to invoke the method `Reconfigure` after modifying it. 74 | 75 | > [*-*](#table-of-contents) 76 | 77 | 78 | ## Banner Position ## 79 | 80 | You can choose where you want the banners to be shown: 81 | 82 | Horizontal position: 83 | 84 | * `CENTER_HORIZONTAL` 85 | * `LEFT` 86 | * `RIGHT` 87 | 88 | Vertical position: 89 | 90 | * `CENTER_VERTICAL` 91 | * `TOP` 92 | * `BOTTOM` 93 | 94 | If you intend to change the position of the banner once the plugin has been initialized, you need to invoke the method `Reconfigure` after modifying it. 95 | 96 | > [*-*](#table-of-contents) 97 | 98 | 99 | ## Ad Loading ## 100 | 101 | Once the plugin is initialized, you can start loading ads. To do so, you invoke the method `Load` of the `AdMobPlugin` component. The first ad can also be loaded automatically by switching on the field `loadOnStart`. 102 | 103 | Next ads will be loaded by invoking the method `Load` again. Instead of that, you might want to specify a `refreshInterval` and successive ads will be loaded automatically. The minimum refresh interval is 30 seconds. 104 | 105 | Please remember that you may also set the refresh interval for the ads from [the AdMob website](http://www.admob.com/my_sites/tools/?mt=sss). 106 | 107 | If you reconfigure banner size or position, you need to load a new ad by invoking `Load`. You can also switch on the field `loadOnReconfigure`. 108 | 109 | > [*-*](#table-of-contents) 110 | 111 | 112 | ## Test Mode ## 113 | 114 | Requesting test ads is recommended when testing your application so you do not request invalid impressions. In addition, you can always count on a test ad being available. 115 | 116 | ![](Images/Manual/test-mode.jpg) 117 | 118 | You can requests test ads by turning on the field `isTesting` and specifying the ID of the devices you are going to test your game on (field `testDeviceIds`). 119 | 120 | Typically you can find your *device ID* in the *[logcat](http://developer.android.com/tools/help/logcat.html) output* by requesting an ad when [debugging](#debug) on your device, but **AdMobPlugin** can "guess" it for you, so you don't need to dive into the log. If you want to do so, turn on the field `guessSelfDeviceId`. 121 | 122 | Remember to turn the testing flag off before deploying your app if you want to receive real ads. 123 | 124 | > [*-*](#table-of-contents) 125 | 126 | 127 | ## Targeting ## 128 | 129 | You can add the user's *location*, *gender*, and *birthday* to your requests. These are not required, but can be used by networks to serve more finely targeted ads. This way you can improve your [click through rate (CTR)](http://media.admob.com/mobile_ad_guide/#glossary "The number of times ads are clicked divided by the number of impressions."). 130 | 131 | To enable targeting, you must set appropriate values to any of these fields: 132 | 133 | * `gender`: target user's sex (choose from `UNKNOWN`, `MALE` and `FEMALE`). 134 | * `birthday`: the user's date of birth. 135 | * `keywords`: a set of words related to your game. 136 | * `location`: the user's *geolocation*. 137 | 138 | You then need to invoke the method `SetTarget`. All subsequent ad requests will use this information. 139 | 140 | > [*-*](#table-of-contents) 141 | 142 | 143 | ## Debug ## 144 | 145 | An instance of `AdMobPluginDebug` can be attached to your `AdMobPlugin` object and then a simple GUI will be shown to help you debug the plugin. When enabled, it will draw a set of buttons on screen to control ad loading, size and position. 146 | 147 | ![](Images/Manual/debug.png) 148 | 149 | This mechanism can be used to force ad loading while watching the *[logcat](http://developer.android.com/tools/help/logcat.html) output*. In addition, it may come in handy for testing different configurations on a device in a dynamic way. 150 | 151 | > [*-*](#table-of-contents) 152 | 153 | 154 | ## Mockup ## 155 | 156 | Ads will only be loaded at run-time on an actual device, that's why you won't see anything on screen while you are developing your game in *Unity*... unless you attach an instance of `AdMobPluginMockup` to your `AdMobPlugin` object. 157 | 158 | When enabled, a dummy banner will be drawn on screen, so you can preview what your ad will look like. Please take into account that the ad might be bigger or smaller on your device. The mock-up is a mere approach to the actual banner. 159 | 160 | ![](Images/Manual/mockup.png) 161 | 162 | You can customize the look of the mock-up, for instance, you can make it `dark` or `bright`, or provide a different set of images and texts (they will be randomly chosen). You may want to play around with `AdMobPlugin` on the editor; the options are pretty much self-explanatory. 163 | 164 | > [*-*](#table-of-contents) 165 | 166 | 167 | ## Prefab ## 168 | 169 | The extension includes a *prefab AdMobPlugin* which already includes the components: 170 | 171 | * `AdMobPlugin` 172 | * `AdMobPluginDebug` 173 | * `AdMobPluginMockUp` 174 | 175 | It is configured with default values; you can enter your own *publisher id* and hit *play*! 176 | 177 | ![](Images/Manual/prefab.png) 178 | 179 | > [*-*](#table-of-contents) 180 | 181 | 182 | ## Sample Scene ## 183 | 184 | A sample scene is provided for convenience so you can test this extension off-the-box. Once again, please remember to set your *publisher id* before you build and run your game. 185 | 186 | ![](Images/Manual/sample-scene.png) 187 | 188 | > [*-*](#table-of-contents) 189 | 190 | 191 | ## AdMobPlugin API ## 192 | 193 | ### Fields ### 194 | 195 | * `publisherId`: you must enter your publisher ID here. 196 | * `isTesting`: will enable/disable [test mode](#test-mode). 197 | * `testDeviceIds`: a list of test device IDs. 198 | * `guessSelfDeviceId`: if enabled, the plugin will try to guess the current device ID. 199 | * `size`: choose from `BANNER`, `IAB_MRECT`, `IAB_BANNER`, `IAB_LEADERBOARD` and `SMART_BANNER`. 200 | * `orientation`: either `HORIZONTAL` or `VERTICAL`. 201 | * `horizontalPosition`: choose from `CENTER_HORIZONTAL`, `LEFT` and `RIGHT`. 202 | * `verticalPosition`: choose from `CENTER_VERTICAL`, `TOP` and `BOTTOM`. 203 | * `refreshInterval`: specify the amount of time (in seconds) to wait for a new ad to be loaded. 204 | * `loadOnStart`: if enabled, the first ad will be loaded automatically. 205 | * `loadOnReconfigure`: if enabled, an ad will be loaded automatically after reconfiguring size or position. 206 | * `target` 207 | * `gender`: user's sex. 208 | * `birthday`: user's date of birth (`year`, `month` and `year`). 209 | * `keywords`: game-related set of words. 210 | * `location`: user's geolocation (`latitude`, `longitude` and `altitude`). 211 | 212 | ### Methods ### 213 | 214 | * `Reconfigure`: this method must be invoked after modifying [size](#banner-sizes) or [position](#banner-position). 215 | * `SetTarget`: this method must be invoked after specifying [location or demographic information](#targeting). 216 | * `Load`: loads [a new ad](#ad-loading). 217 | * `Hide`: makes the ad invisible. 218 | * `Show`: makes the ad visible. 219 | * `IsVisible`: returns whether the ad is visible or not. 220 | * `GetLastError`: returns the last error (if any) which prevented the ad from being received. 221 | * `GetReceived`: returns the number of ads loaded so far. 222 | 223 | > [*-*](#table-of-contents) 224 | 225 | 226 | ## License ## 227 | 228 | **AdMobPlugin** is *free software*; you can redistribute it and/or modify it under the terms of the **GNU Lesser General Public License** as published by the **Free Software Foundation**; either version 3 of the License, or (at your option) any later version. 229 | 230 | **AdMobPlugin** is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU Lesser General Public License](http://www.gnu.org/copyleft/lesser.html) for more details. 231 | 232 | The source code is freely available from [GitHub](https://github.com/guillermocalvo/admob-unity-plugin/). You may want to check it out and download latest release. In case you find a bug, you can report it [here](https://github.com/guillermocalvo/admob-unity-plugin/issues). 233 | 234 | > ![](Images/Manual/lgpl3.png) 235 | 236 | The *GNU Lesser General Public License* grants your right to: 237 | 238 | * Use custom versions of the plugin, to support bug fixes and other enhancements. 239 | * Allow any improvements made to the plugin for one project to benefit the community as a whole. 240 | 241 | To comply with this license, you must give prominent notice that you use **AdMobPlugin**, and that it is included under the terms of the LGPL license. You must provide a copy of the LGPL license. 242 | 243 | You should also make available the source code to the version of the plugin you provide, including any customizations you have made. If you did not modify the plugin, simply referring to the [AdMobPlugin project page](https://github.com/guillermocalvo/admob-unity-plugin/) is sufficient. 244 | 245 | > [*-*](#table-of-contents) 246 | 247 | 248 | ## Legal Notice ## 249 | 250 | **AdMobPlugin** is not endorsed or certified by *Unity Technologies* or *Google AdMob*. All trademarks are the property of their respective owners. 251 | 252 | You will find further information here: 253 | 254 | * [Admob Terms of Use](http://www.admob.com/home/terms) 255 | * [AdMob Help](http://support.google.com/admob/) 256 | * [AdMob Ads SDK](https://developers.google.com/mobile-ads-sdk/) 257 | 258 | > [*-*](#table-of-contents) 259 | 260 | 261 | ## About the Author ## 262 | 263 | **AdMobPlugin** is developed by Guillermo Calvo, freelance programmer, based in [Zaragoza, Spain](http://en.wikipedia.org/wiki/Zaragoza). Currently diving into game design, but always open to interesting software projects of any kind. 264 | 265 | If you have any questions, suggestions or ideas about **AdMobPlugin** you can reach me on [twitter](https://twitter.com/guillermonkey). 266 | 267 | > ![](http://www.gravatar.com/avatar/8866f980f00923a323f752e57fda0302) 268 | 269 | > [*-*](#table-of-contents) 270 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Readme.markdown.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5b45edaabbf0f24696835512619db20 3 | TextScriptImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ba28fab47f3fd543bf2b4b782cf09f6 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scenes/AdMobPluginTest.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | SceneSettings: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_QueryMode: 1 8 | m_PVSObjectsArray: [] 9 | m_PVSPortalsArray: [] 10 | m_OcclusionBakeSettings: 11 | viewCellSize: 1 12 | bakeMode: 2 13 | memoryUsage: 10485760 14 | --- !u!104 &2 15 | RenderSettings: 16 | m_Fog: 0 17 | m_FogColor: {r: .5, g: .5, b: .5, a: 1} 18 | m_FogMode: 3 19 | m_FogDensity: .00999999978 20 | m_LinearFogStart: 0 21 | m_LinearFogEnd: 300 22 | m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} 23 | m_SkyboxMaterial: {fileID: 0} 24 | m_HaloStrength: .5 25 | m_FlareStrength: 1 26 | m_HaloTexture: {fileID: 0} 27 | m_SpotCookie: {fileID: 0} 28 | m_ObjectHideFlags: 0 29 | --- !u!127 &3 30 | GameManager: 31 | m_ObjectHideFlags: 0 32 | --- !u!157 &4 33 | LightmapSettings: 34 | m_ObjectHideFlags: 0 35 | m_LightProbes: {fileID: 0} 36 | m_Lightmaps: [] 37 | m_LightmapsMode: 1 38 | m_BakedColorSpace: 0 39 | m_UseDualLightmapsInForward: 0 40 | m_LightmapEditorSettings: 41 | m_Resolution: 50 42 | m_LastUsedResolution: 0 43 | m_TextureWidth: 1024 44 | m_TextureHeight: 1024 45 | m_BounceBoost: 1 46 | m_BounceIntensity: 1 47 | m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} 48 | m_SkyLightIntensity: 0 49 | m_Quality: 0 50 | m_Bounces: 1 51 | m_FinalGatherRays: 1000 52 | m_FinalGatherContrastThreshold: .0500000007 53 | m_FinalGatherGradientThreshold: 0 54 | m_FinalGatherInterpolationPoints: 15 55 | m_AOAmount: 0 56 | m_AOMaxDistance: .100000001 57 | m_AOContrast: 1 58 | m_LODSurfaceMappingDistance: 1 59 | m_Padding: 0 60 | m_TextureCompression: 0 61 | m_LockAtlas: 0 62 | --- !u!196 &5 63 | NavMeshSettings: 64 | m_ObjectHideFlags: 0 65 | m_BuildSettings: 66 | agentRadius: .400000006 67 | agentHeight: 1.79999995 68 | agentSlope: 45 69 | agentClimb: .400000006 70 | ledgeDropHeight: 0 71 | maxJumpAcrossDistance: 0 72 | accuratePlacement: 0 73 | minRegionArea: 2 74 | widthInaccuracy: 16.666666 75 | heightInaccuracy: 10 76 | m_NavMesh: {fileID: 0} 77 | --- !u!1001 &255415443 78 | Prefab: 79 | m_ObjectHideFlags: 0 80 | serializedVersion: 2 81 | m_Modification: 82 | m_TransformParent: {fileID: 0} 83 | m_Modifications: [] 84 | m_RemovedComponents: [] 85 | m_ParentPrefab: {fileID: 100100000, guid: 8e3676865462d674e9eba99e8724cada, type: 2} 86 | m_RootGameObject: {fileID: 565367908} 87 | m_IsPrefabParent: 0 88 | m_IsExploded: 1 89 | --- !u!1 &384876009 90 | GameObject: 91 | m_ObjectHideFlags: 0 92 | m_PrefabParentObject: {fileID: 0} 93 | m_PrefabInternal: {fileID: 0} 94 | serializedVersion: 4 95 | m_Component: 96 | - 4: {fileID: 384876010} 97 | - 20: {fileID: 384876011} 98 | m_Layer: 0 99 | m_Name: Main Camera 100 | m_TagString: MainCamera 101 | m_Icon: {fileID: 0} 102 | m_NavMeshLayer: 0 103 | m_StaticEditorFlags: 0 104 | m_IsActive: 1 105 | --- !u!4 &384876010 106 | Transform: 107 | m_ObjectHideFlags: 0 108 | m_PrefabParentObject: {fileID: 0} 109 | m_PrefabInternal: {fileID: 0} 110 | m_GameObject: {fileID: 384876009} 111 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 112 | m_LocalPosition: {x: 0, y: 0, z: -10} 113 | m_LocalScale: {x: 1, y: 1, z: 1} 114 | m_Children: [] 115 | m_Father: {fileID: 0} 116 | --- !u!20 &384876011 117 | Camera: 118 | m_ObjectHideFlags: 0 119 | m_PrefabParentObject: {fileID: 0} 120 | m_PrefabInternal: {fileID: 0} 121 | m_GameObject: {fileID: 384876009} 122 | m_Enabled: 1 123 | serializedVersion: 2 124 | m_ClearFlags: 1 125 | m_BackGroundColor: {r: 0, g: 0, b: .250980407, a: 0} 126 | m_NormalizedViewPortRect: 127 | serializedVersion: 2 128 | x: 0 129 | y: 0 130 | width: 1 131 | height: 1 132 | near clip plane: .300000012 133 | far clip plane: 1000 134 | field of view: 60 135 | orthographic: 0 136 | orthographic size: 100 137 | m_Depth: 0 138 | m_CullingMask: 139 | serializedVersion: 2 140 | m_Bits: 4294967295 141 | m_RenderingPath: -1 142 | m_TargetTexture: {fileID: 0} 143 | m_HDR: 0 144 | --- !u!1 &565367908 145 | GameObject: 146 | m_ObjectHideFlags: 0 147 | m_PrefabParentObject: {fileID: 100000, guid: 8e3676865462d674e9eba99e8724cada, type: 2} 148 | m_PrefabInternal: {fileID: 255415443} 149 | serializedVersion: 4 150 | m_Component: 151 | - 4: {fileID: 565367909} 152 | - 114: {fileID: 565367910} 153 | - 114: {fileID: 565367911} 154 | - 114: {fileID: 565367912} 155 | m_Layer: 0 156 | m_Name: AdMobPlugin 157 | m_TagString: Untagged 158 | m_Icon: {fileID: 0} 159 | m_NavMeshLayer: 0 160 | m_StaticEditorFlags: 0 161 | m_IsActive: 1 162 | --- !u!4 &565367909 163 | Transform: 164 | m_ObjectHideFlags: 0 165 | m_PrefabParentObject: {fileID: 400000, guid: 8e3676865462d674e9eba99e8724cada, type: 2} 166 | m_PrefabInternal: {fileID: 255415443} 167 | m_GameObject: {fileID: 565367908} 168 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 169 | m_LocalPosition: {x: 0, y: 0, z: 0} 170 | m_LocalScale: {x: 1, y: 1, z: 1} 171 | m_Children: [] 172 | m_Father: {fileID: 0} 173 | --- !u!114 &565367910 174 | MonoBehaviour: 175 | m_ObjectHideFlags: 0 176 | m_PrefabParentObject: {fileID: 11400000, guid: 8e3676865462d674e9eba99e8724cada, 177 | type: 2} 178 | m_PrefabInternal: {fileID: 255415443} 179 | m_GameObject: {fileID: 565367908} 180 | m_Enabled: 1 181 | m_EditorHideFlags: 0 182 | m_Script: {fileID: 11500000, guid: 1bdf14effc102404ab6a46bc6a50a821, type: 3} 183 | m_Name: 184 | publisherId: YOUR_PUBLISHER_ID 185 | isTesting: 1 186 | testDeviceIds: 187 | - TEST_DEVICE_ID 188 | guessSelfDeviceId: 1 189 | size: 0 190 | orientation: 0 191 | horizontalPosition: 0 192 | verticalPosition: 2 193 | refreshInterval: 30 194 | loadOnStart: 1 195 | loadOnReconfigure: 1 196 | target: 197 | gender: 0 198 | birthday: 199 | year: 0 200 | month: 0 201 | day: 0 202 | keywords: [] 203 | location: 204 | latitude: NaN 205 | longitude: NaN 206 | altitude: NaN 207 | --- !u!114 &565367911 208 | MonoBehaviour: 209 | m_ObjectHideFlags: 0 210 | m_PrefabParentObject: {fileID: 11400004, guid: 8e3676865462d674e9eba99e8724cada, 211 | type: 2} 212 | m_PrefabInternal: {fileID: 255415443} 213 | m_GameObject: {fileID: 565367908} 214 | m_Enabled: 1 215 | m_EditorHideFlags: 0 216 | m_Script: {fileID: 11500000, guid: 36da46230c88f0e44ba41ec202f52749, type: 3} 217 | m_Name: 218 | rectangles: 219 | loadButton: 220 | serializedVersion: 2 221 | x: 32 222 | y: 32 223 | width: 64 224 | height: 48 225 | exitButton: 226 | serializedVersion: 2 227 | x: 104 228 | y: 32 229 | width: 64 230 | height: 48 231 | showButton: 232 | serializedVersion: 2 233 | x: 32 234 | y: 88 235 | width: 64 236 | height: 48 237 | hideButton: 238 | serializedVersion: 2 239 | x: 104 240 | y: 88 241 | width: 64 242 | height: 48 243 | horizontalPositionButton: 244 | serializedVersion: 2 245 | x: 176 246 | y: 32 247 | width: 240 248 | height: 48 249 | verticalPositionButton: 250 | serializedVersion: 2 251 | x: 176 252 | y: 88 253 | width: 240 254 | height: 48 255 | orientationButton: 256 | serializedVersion: 2 257 | x: 176 258 | y: 144 259 | width: 240 260 | height: 48 261 | genderButton: 262 | serializedVersion: 2 263 | x: 32 264 | y: 144 265 | width: 136 266 | height: 48 267 | sizeButton: 268 | serializedVersion: 2 269 | x: 176 270 | y: 200 271 | width: 240 272 | height: 50 273 | lastErrorRectButton: 274 | serializedVersion: 2 275 | x: 32 276 | y: 256 277 | width: 384 278 | height: 50 279 | receivedLabel: 280 | serializedVersion: 2 281 | x: 32 282 | y: 256 283 | width: 384 284 | height: 50 285 | --- !u!114 &565367912 286 | MonoBehaviour: 287 | m_ObjectHideFlags: 0 288 | m_PrefabParentObject: {fileID: 11400002, guid: 8e3676865462d674e9eba99e8724cada, 289 | type: 2} 290 | m_PrefabInternal: {fileID: 255415443} 291 | m_GameObject: {fileID: 565367908} 292 | m_Enabled: 1 293 | m_EditorHideFlags: 0 294 | m_Script: {fileID: 11500000, guid: 4bcdadf56b0d1e54e906ae9deec40c57, type: 3} 295 | m_Name: 296 | executeInEditMode: 1 297 | style: 0 298 | texts: 299 | - Bugs that go away by themselves come back by themselves. 300 | - When in doubt, use brute force. 301 | - Deleted code is debugged code. 302 | - Premature optimization is the root of all evil. 303 | - Simplicity is the ultimate sophistication. 304 | - With diligence it is possible to make anything run slowly. 305 | - Simplicity carried to the extreme becomes elegance. 306 | - The best is the enemy of the good. 307 | - A data structure is just a stupid programming language. 308 | - Software gets slower faster than hardware gets faster. 309 | - If it doesn't work, it doesn't matter how fast it doesn't work. 310 | - If it works, it's obsolete. 311 | - The common language of programmers is Profanity. 312 | - There is no place like 127.0.0.1. 313 | - The code is 100% complete, it just doesn't work yet. 314 | - Programming is hard, let's go shopping. 315 | icons: 316 | - {fileID: 2800000, guid: 42f0fee300d07b347874caf6491a8e1e, type: 3} 317 | - {fileID: 2800000, guid: a0eff840123186b4a97e58764a06116a, type: 3} 318 | - {fileID: 2800000, guid: 13ac363ff191c2648b2b4adae2553a7e, type: 3} 319 | - {fileID: 2800000, guid: fbf551ccd05c60540877234ccbe0f135, type: 3} 320 | - {fileID: 2800000, guid: ca76f053bcdffaf4bad67609b6b8c854, type: 3} 321 | - {fileID: 2800000, guid: 8e5ce85e4d1b6404d9840eebe6224f77, type: 3} 322 | - {fileID: 2800000, guid: 91db7cb3febcec4419d4ab042f0f2f5d, type: 3} 323 | - {fileID: 2800000, guid: d502f1730be94304e98d7deeb2736ba8, type: 3} 324 | - {fileID: 2800000, guid: 9af03d6d762bd4f4a8e8d9c435989f81, type: 3} 325 | - {fileID: 2800000, guid: aa33e0a9e023cdf4b8adabbb7bd8bd23, type: 3} 326 | actions: 327 | - {fileID: 2800000, guid: 87cb40c70b3249c4896cb0ef2bff4e61, type: 3} 328 | - {fileID: 2800000, guid: cf53756917301da499205cef5c050738, type: 3} 329 | - {fileID: 2800000, guid: 8dfbace6cba0c764aa4d45617a306291, type: 3} 330 | darkBackground: {fileID: 2800000, guid: 5b39f3498b3c64b429ec2741e91a7673, type: 3} 331 | lightBackground: {fileID: 2800000, guid: 975975dbb2b2710468aa64f84f24d99e, type: 3} 332 | currentAd: 333 | icon: {fileID: 2800000, guid: fbf551ccd05c60540877234ccbe0f135, type: 3} 334 | action: {fileID: 2800000, guid: 87cb40c70b3249c4896cb0ef2bff4e61, type: 3} 335 | text: Some people get confused when a sentence does not end as they potato. 336 | --- !u!1 &677401933 337 | GameObject: 338 | m_ObjectHideFlags: 0 339 | m_PrefabParentObject: {fileID: 0} 340 | m_PrefabInternal: {fileID: 0} 341 | serializedVersion: 4 342 | m_Component: 343 | - 4: {fileID: 677401934} 344 | - 33: {fileID: 677401936} 345 | - 65: {fileID: 677401937} 346 | - 23: {fileID: 677401935} 347 | m_Layer: 0 348 | m_Name: Bar 349 | m_TagString: Untagged 350 | m_Icon: {fileID: 0} 351 | m_NavMeshLayer: 0 352 | m_StaticEditorFlags: 0 353 | m_IsActive: 1 354 | --- !u!4 &677401934 355 | Transform: 356 | m_ObjectHideFlags: 0 357 | m_PrefabParentObject: {fileID: 0} 358 | m_PrefabInternal: {fileID: 0} 359 | m_GameObject: {fileID: 677401933} 360 | m_LocalRotation: {x: -.191341728, y: -.461939812, z: -.461939812, w: .732537806} 361 | m_LocalPosition: {x: 0, y: 0, z: 0} 362 | m_LocalScale: {x: 4, y: 4, z: 4} 363 | m_Children: [] 364 | m_Father: {fileID: 1187350544} 365 | --- !u!23 &677401935 366 | Renderer: 367 | m_ObjectHideFlags: 0 368 | m_PrefabParentObject: {fileID: 0} 369 | m_PrefabInternal: {fileID: 0} 370 | m_GameObject: {fileID: 677401933} 371 | m_Enabled: 1 372 | m_CastShadows: 1 373 | m_ReceiveShadows: 1 374 | m_LightmapIndex: 255 375 | m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} 376 | m_Materials: 377 | - {fileID: 2100000, guid: 515d8a64a44acde44af2fe7bd8c8263c, type: 2} 378 | m_SubsetIndices: 379 | m_StaticBatchRoot: {fileID: 0} 380 | m_UseLightProbes: 0 381 | m_LightProbeAnchor: {fileID: 0} 382 | m_ScaleInLightmap: 1 383 | --- !u!33 &677401936 384 | MeshFilter: 385 | m_ObjectHideFlags: 0 386 | m_PrefabParentObject: {fileID: 0} 387 | m_PrefabInternal: {fileID: 0} 388 | m_GameObject: {fileID: 677401933} 389 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 390 | --- !u!65 &677401937 391 | BoxCollider: 392 | m_ObjectHideFlags: 0 393 | m_PrefabParentObject: {fileID: 0} 394 | m_PrefabInternal: {fileID: 0} 395 | m_GameObject: {fileID: 677401933} 396 | m_Material: {fileID: 0} 397 | m_IsTrigger: 0 398 | m_Enabled: 1 399 | serializedVersion: 2 400 | m_Size: {x: 1, y: 1, z: 1} 401 | m_Center: {x: 0, y: 0, z: 0} 402 | --- !u!1 &1187350543 403 | GameObject: 404 | m_ObjectHideFlags: 0 405 | m_PrefabParentObject: {fileID: 0} 406 | m_PrefabInternal: {fileID: 0} 407 | serializedVersion: 4 408 | m_Component: 409 | - 4: {fileID: 1187350544} 410 | - 54: {fileID: 1187350545} 411 | - 75: {fileID: 1187350546} 412 | m_Layer: 0 413 | m_Name: Foo 414 | m_TagString: Untagged 415 | m_Icon: {fileID: 0} 416 | m_NavMeshLayer: 0 417 | m_StaticEditorFlags: 0 418 | m_IsActive: 1 419 | --- !u!4 &1187350544 420 | Transform: 421 | m_ObjectHideFlags: 0 422 | m_PrefabParentObject: {fileID: 0} 423 | m_PrefabInternal: {fileID: 0} 424 | m_GameObject: {fileID: 1187350543} 425 | m_LocalRotation: {x: 0, y: -.923879564, z: 0, w: .382683456} 426 | m_LocalPosition: {x: 0, y: 0, z: 0} 427 | m_LocalScale: {x: 1, y: 1, z: 1} 428 | m_Children: 429 | - {fileID: 677401934} 430 | m_Father: {fileID: 0} 431 | --- !u!54 &1187350545 432 | Rigidbody: 433 | m_ObjectHideFlags: 0 434 | m_PrefabParentObject: {fileID: 0} 435 | m_PrefabInternal: {fileID: 0} 436 | m_GameObject: {fileID: 1187350543} 437 | serializedVersion: 2 438 | m_Mass: 1 439 | m_Drag: 0 440 | m_AngularDrag: 1 441 | m_UseGravity: 0 442 | m_IsKinematic: 0 443 | m_Interpolate: 0 444 | m_Constraints: 0 445 | m_CollisionDetection: 0 446 | --- !u!75 &1187350546 447 | ConstantForce: 448 | m_ObjectHideFlags: 0 449 | m_PrefabParentObject: {fileID: 0} 450 | m_PrefabInternal: {fileID: 0} 451 | m_GameObject: {fileID: 1187350543} 452 | m_Enabled: 1 453 | m_Force: {x: 0, y: 0, z: 0} 454 | m_RelativeForce: {x: 0, y: 0, z: 0} 455 | m_Torque: {x: 0, y: 2.5, z: 0} 456 | m_RelativeTorque: {x: 0, y: 0, z: 0} 457 | --- !u!1 &1826493332 458 | GameObject: 459 | m_ObjectHideFlags: 0 460 | m_PrefabParentObject: {fileID: 0} 461 | m_PrefabInternal: {fileID: 0} 462 | serializedVersion: 4 463 | m_Component: 464 | - 4: {fileID: 1826493333} 465 | - 108: {fileID: 1826493334} 466 | m_Layer: 0 467 | m_Name: Directional light 468 | m_TagString: Untagged 469 | m_Icon: {fileID: 0} 470 | m_NavMeshLayer: 0 471 | m_StaticEditorFlags: 0 472 | m_IsActive: 1 473 | --- !u!4 &1826493333 474 | Transform: 475 | m_ObjectHideFlags: 0 476 | m_PrefabParentObject: {fileID: 0} 477 | m_PrefabInternal: {fileID: 0} 478 | m_GameObject: {fileID: 1826493332} 479 | m_LocalRotation: {x: .461939812, y: .191341728, z: .191341728, w: .844623208} 480 | m_LocalPosition: {x: 0, y: 0, z: 0} 481 | m_LocalScale: {x: 1, y: 1, z: 1} 482 | m_Children: [] 483 | m_Father: {fileID: 0} 484 | --- !u!108 &1826493334 485 | Light: 486 | m_ObjectHideFlags: 0 487 | m_PrefabParentObject: {fileID: 0} 488 | m_PrefabInternal: {fileID: 0} 489 | m_GameObject: {fileID: 1826493332} 490 | m_Enabled: 1 491 | serializedVersion: 3 492 | m_Type: 1 493 | m_Color: {r: 1, g: 1, b: 1, a: 1} 494 | m_Intensity: .200000003 495 | m_Range: 10 496 | m_SpotAngle: 30 497 | m_CookieSize: 10 498 | m_Shadows: 499 | m_Type: 0 500 | m_Resolution: -1 501 | m_Strength: 1 502 | m_Bias: .0500000007 503 | m_Softness: 4 504 | m_SoftnessFade: 1 505 | m_Cookie: {fileID: 0} 506 | m_DrawHalo: 0 507 | m_ActuallyLightmapped: 0 508 | m_Flare: {fileID: 0} 509 | m_RenderMode: 0 510 | m_CullingMask: 511 | serializedVersion: 2 512 | m_Bits: 4294967295 513 | m_Lightmapping: 1 514 | m_ShadowSamples: 1 515 | m_ShadowRadius: 0 516 | m_ShadowAngle: 0 517 | m_IndirectIntensity: 1 518 | m_AreaSize: {x: 1, y: 1} 519 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scenes/AdMobPluginTest.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16c73a2ad2c25af48a322beb0fb549b3 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4a7bca934ab767459caa77b284882c4 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scripts/AdMobPlugin.cs: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * This file is part of AdMobPlugin 4 | * 5 | * Copyright (c) 2013 Guillermo Calvo 6 | * 7 | * AdMobPlugin is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published 9 | * by the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * AdMobPlugin is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html) 16 | * for more details. 17 | * 18 | */ 19 | 20 | 21 | using UnityEngine; 22 | using System.Collections; 23 | 24 | 25 | public class AdMobPlugin : MonoBehaviour{ 26 | 27 | public string publisherId = "YOUR_PUBLISHER_ID"; 28 | public bool isTesting = true; 29 | public string[] testDeviceIds = {"TEST_DEVICE_ID"}; 30 | public bool guessSelfDeviceId = true; 31 | public AdSize size = AdSize.BANNER; 32 | public AdOrientation orientation = AdOrientation.HORIZONTAL; 33 | public AdHorizontalPosition horizontalPosition = AdHorizontalPosition.CENTER_HORIZONTAL; 34 | public AdVerticalPosition verticalPosition = AdVerticalPosition.BOTTOM; 35 | public float refreshInterval = 30; 36 | public bool loadOnStart = true; 37 | public bool setTargetOnStart = false; 38 | public bool loadOnReconfigure = true; 39 | public AdMobTarget target = new AdMobTarget(); 40 | 41 | private bool visible = true; 42 | 43 | void Start(){ 44 | 45 | this.Initialize(); 46 | 47 | if(this.loadOnStart){ 48 | 49 | this.Load(); 50 | } 51 | 52 | if(this.setTargetOnStart){ 53 | 54 | this.SetTarget(); 55 | } 56 | 57 | this.StartCoroutine( this.Refresh() ); 58 | } 59 | 60 | #if UNITY_ANDROID && !UNITY_EDITOR 61 | 62 | private AndroidJavaObject plugin; 63 | 64 | private void Initialize(){ 65 | 66 | AndroidJavaClass pluginClass = new AndroidJavaClass("com.guillermonkey.unity.admob.AdMobPlugin"); 67 | 68 | this.plugin = pluginClass.CallStatic( 69 | "getInstance", 70 | this.publisherId, 71 | this.isTesting, 72 | this.testDeviceIds, 73 | this.guessSelfDeviceId, 74 | (int)this.size, 75 | (int)this.orientation, 76 | (int)this.horizontalPosition, 77 | (int)this.verticalPosition 78 | ); 79 | } 80 | 81 | public void Reconfigure(){ 82 | 83 | this.plugin.Call( 84 | "reconfigure", 85 | this.publisherId, 86 | this.isTesting, 87 | this.testDeviceIds, 88 | this.guessSelfDeviceId, 89 | (int)this.size, 90 | (int)this.orientation, 91 | (int)this.horizontalPosition, 92 | (int)this.verticalPosition 93 | ); 94 | 95 | if(this.loadOnReconfigure){ 96 | 97 | this.Load(); 98 | } 99 | } 100 | 101 | public void SetTarget(){ 102 | 103 | this.plugin.Call( 104 | "setTarget", 105 | (int)this.target.gender, 106 | this.target.birthday.year, 107 | (int)this.target.birthday.month, 108 | this.target.birthday.day, 109 | this.target.keywords, 110 | this.target.location.latitude, 111 | this.target.location.longitude, 112 | this.target.location.altitude 113 | ); 114 | } 115 | 116 | public void Load(){ 117 | 118 | this.plugin.Call("load"); 119 | 120 | this.Show(); 121 | } 122 | 123 | public void Show(){ 124 | 125 | this.plugin.Call("show"); 126 | 127 | this.visible = true; 128 | } 129 | 130 | public void Hide(){ 131 | 132 | this.plugin.Call("hide"); 133 | 134 | this.visible = false; 135 | } 136 | 137 | public string GetLastError(){ 138 | 139 | return( this.plugin.Call("getLastError") ); 140 | } 141 | 142 | public int GetReceived(){ 143 | 144 | return( this.plugin.Call("getReceived") ); 145 | } 146 | 147 | void OnDestroy(){ 148 | 149 | this.Hide(); 150 | } 151 | 152 | #else 153 | 154 | private int received; 155 | 156 | private void Initialize(){ 157 | 158 | if(!this.isTesting){ 159 | 160 | Debug.LogWarning("AdMobPlugin is NOT in test mode. Please make sure you do not request invalid impressions while testing your application."); 161 | } 162 | } 163 | 164 | public void Reconfigure(){ 165 | 166 | print("AdMobPlugin.Reconfigure()"); 167 | } 168 | 169 | public void SetTarget(){ 170 | 171 | print("AdMobPlugin.SetTarget()"); 172 | } 173 | 174 | public void Load(){ 175 | 176 | print("AdMobPlugin.Load()"); 177 | 178 | this.received++; 179 | } 180 | 181 | public void Show(){ 182 | 183 | print("AdMobPlugin.Show()"); 184 | 185 | this.visible = true; 186 | } 187 | 188 | public void Hide(){ 189 | 190 | print("AdMobPlugin.Hide()"); 191 | 192 | this.visible = false; 193 | } 194 | 195 | public string GetLastError(){ 196 | 197 | //print("AdMobPlugin.GetLastError()"); 198 | 199 | return(null); 200 | } 201 | 202 | public int GetReceived(){ 203 | 204 | //print("AdMobPlugin.GetReceived()"); 205 | 206 | return(this.received); 207 | } 208 | 209 | #endif 210 | 211 | public bool IsVisible(){ 212 | 213 | return(this.visible); 214 | } 215 | 216 | private IEnumerator Refresh(){ 217 | 218 | while(true){ 219 | 220 | if(this.refreshInterval > 0){ 221 | 222 | yield return new WaitForSeconds(this.refreshInterval < 30 ? 30 : this.refreshInterval); 223 | 224 | this.Load(); 225 | } 226 | } 227 | } 228 | } 229 | 230 | /* 231 | * helper classes and enums 232 | */ 233 | 234 | public enum AdSize{ BANNER, IAB_MRECT, IAB_BANNER, IAB_LEADERBOARD, SMART_BANNER }; 235 | public enum AdOrientation{ HORIZONTAL, VERTICAL }; 236 | public enum AdHorizontalPosition{ CENTER_HORIZONTAL, LEFT, RIGHT }; 237 | public enum AdVerticalPosition{ CENTER_VERTICAL, TOP, BOTTOM }; 238 | public enum AdGender{ UNKNOWN, MALE, FEMALE }; 239 | public enum AdMonth{ JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER }; 240 | 241 | [System.Serializable] 242 | public class AdDateTime{ 243 | 244 | public int year; 245 | public AdMonth month; 246 | public int day; 247 | } 248 | 249 | [System.Serializable] 250 | public class AdLocation{ 251 | 252 | public double latitude = double.NaN; 253 | public double longitude = double.NaN; 254 | public double altitude = double.NaN; 255 | } 256 | 257 | [System.Serializable] 258 | public class AdMobTarget{ 259 | 260 | public AdGender gender = AdGender.UNKNOWN; 261 | public AdDateTime birthday = new AdDateTime(); 262 | public string[] keywords = new string[0]; 263 | public AdLocation location = new AdLocation(); 264 | } 265 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scripts/AdMobPlugin.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1bdf14effc102404ab6a46bc6a50a821 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scripts/AdMobPluginDebug.cs: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * This file is part of AdMobPlugin 4 | * 5 | * Copyright (c) 2013 Guillermo Calvo 6 | * 7 | * AdMobPlugin is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published 9 | * by the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * AdMobPlugin is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html) 16 | * for more details. 17 | * 18 | */ 19 | 20 | 21 | using UnityEngine; 22 | using System.Collections; 23 | 24 | 25 | [ExecuteInEditMode] 26 | [RequireComponent( typeof(AdMobPlugin) )] 27 | public class AdMobPluginDebug : MonoBehaviour{ 28 | 29 | public AdMobPluginDebugRects rectangles = new AdMobPluginDebugRects(); 30 | 31 | private AdMobPlugin plugin = null; 32 | private string lastError = null; 33 | 34 | void Start(){ 35 | 36 | this.plugin = this.GetComponent(); 37 | } 38 | 39 | void OnGUI(){ 40 | 41 | bool changed = false; 42 | bool targeted = false; 43 | 44 | if(GUI.Button(this.rectangles.loadButton, "LOAD")){ 45 | 46 | this.plugin.Load(); 47 | } 48 | 49 | if(GUI.Button(this.rectangles.exitButton, "EXIT")){ 50 | 51 | Application.Quit(); 52 | } 53 | 54 | if(GUI.Button(this.rectangles.showButton, "SHOW")){ 55 | 56 | this.plugin.Show(); 57 | } 58 | 59 | if(GUI.Button(this.rectangles.hideButton, "HIDE")){ 60 | 61 | this.plugin.Hide(); 62 | } 63 | 64 | if(GUI.Button(this.rectangles.horizontalPositionButton, this.plugin.horizontalPosition.ToString())){ 65 | 66 | changed = true; 67 | 68 | this.plugin.horizontalPosition++; 69 | 70 | if(this.plugin.horizontalPosition > AdHorizontalPosition.RIGHT){ 71 | 72 | this.plugin.horizontalPosition = AdHorizontalPosition.CENTER_HORIZONTAL; 73 | } 74 | } 75 | 76 | if(GUI.Button(this.rectangles.verticalPositionButton, this.plugin.verticalPosition.ToString())){ 77 | 78 | changed = true; 79 | 80 | this.plugin.verticalPosition++; 81 | 82 | if(this.plugin.verticalPosition > AdVerticalPosition.BOTTOM){ 83 | 84 | this.plugin.verticalPosition = AdVerticalPosition.CENTER_VERTICAL; 85 | } 86 | } 87 | 88 | if(GUI.Button(this.rectangles.orientationButton, this.plugin.orientation.ToString())){ 89 | 90 | changed = true; 91 | 92 | plugin.orientation++; 93 | 94 | if(plugin.orientation > AdOrientation.VERTICAL){ 95 | 96 | plugin.orientation = AdOrientation.HORIZONTAL; 97 | } 98 | } 99 | 100 | if(GUI.Button(this.rectangles.genderButton, this.plugin.target.gender.ToString())){ 101 | 102 | targeted = true; 103 | 104 | plugin.target.gender++; 105 | 106 | if(plugin.target.gender > AdGender.FEMALE){ 107 | 108 | plugin.target.gender = AdGender.UNKNOWN; 109 | } 110 | } 111 | 112 | if(GUI.Button(this.rectangles.sizeButton, plugin.size.ToString())){ 113 | 114 | changed = true; 115 | 116 | this.plugin.size++; 117 | 118 | if(this.plugin.size > AdSize.SMART_BANNER){ 119 | 120 | this.plugin.size = AdSize.BANNER; 121 | } 122 | } 123 | 124 | if(changed){ 125 | 126 | this.plugin.Reconfigure(); 127 | } 128 | 129 | if(targeted){ 130 | 131 | this.plugin.SetTarget(); 132 | } 133 | 134 | string tmp; 135 | 136 | tmp = this.plugin.GetLastError(); 137 | 138 | if(tmp != null){ 139 | 140 | this.lastError = tmp; 141 | } 142 | 143 | if(this.lastError != null && this.lastError.Length > 0){ 144 | 145 | if(GUI.Button(this.rectangles.lastErrorRectButton, this.lastError)){ 146 | 147 | this.lastError = null; 148 | } 149 | }else{ 150 | GUI.Label(this.rectangles.receivedLabel, this.plugin.GetReceived() + " ad(s) loaded so far (" + System.DateTime.Now + ")"); 151 | } 152 | } 153 | } 154 | 155 | 156 | /* 157 | * helper class 158 | */ 159 | 160 | [System.Serializable] 161 | public class AdMobPluginDebugRects{ 162 | 163 | public Rect loadButton = new Rect(32, 32, 64, 48); 164 | public Rect exitButton = new Rect(104, 32, 64, 48); 165 | public Rect showButton = new Rect(32, 88, 64, 48); 166 | public Rect hideButton = new Rect(104, 88, 64, 48); 167 | public Rect horizontalPositionButton= new Rect(176, 32, 240, 48); 168 | public Rect verticalPositionButton = new Rect(176, 88, 240, 48); 169 | public Rect orientationButton = new Rect(176, 144, 240, 48); 170 | public Rect genderButton = new Rect(32, 144, 136, 48); 171 | public Rect sizeButton = new Rect(176, 200, 240, 50); 172 | public Rect lastErrorRectButton = new Rect(32, 256, 384, 50); 173 | public Rect receivedLabel = new Rect(32, 256, 384, 50); 174 | } 175 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scripts/AdMobPluginDebug.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 36da46230c88f0e44ba41ec202f52749 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scripts/AdMobPluginMockup.cs: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * This file is part of AdMobPlugin 4 | * 5 | * Copyright (c) 2013 Guillermo Calvo 6 | * 7 | * AdMobPlugin is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published 9 | * by the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * AdMobPlugin is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html) 16 | * for more details. 17 | * 18 | */ 19 | 20 | 21 | using UnityEngine; 22 | using System.Collections.Generic; 23 | 24 | 25 | [ExecuteInEditMode] 26 | [RequireComponent( typeof(AdMobPlugin) )] 27 | public class AdMobPluginMockup : MonoBehaviour{ 28 | 29 | public bool executeInEditMode = true; 30 | public AdMockupStyle style = AdMockupStyle.DARK; 31 | public string[] texts = AdMobPluginMockup.quotes; 32 | public Texture[] icons = new Texture[0]; 33 | public Texture[] actions = new Texture[0]; 34 | public Texture darkBackground = null; 35 | public Texture lightBackground = null; 36 | public AdMockup currentAd = null; 37 | 38 | private AdMobPlugin plugin = null; 39 | private int currentAdId = -1; 40 | 41 | void Start(){ 42 | 43 | this.plugin = this.GetComponent(); 44 | 45 | this.GenerateRandomAd(); 46 | } 47 | 48 | void Update(){ 49 | 50 | int received = this.plugin.GetReceived(); 51 | 52 | if(this.currentAdId != received){ 53 | 54 | currentAdId = received; 55 | 56 | this.GenerateRandomAd(); 57 | } 58 | } 59 | 60 | void OnGUI(){ 61 | 62 | if( this.plugin.IsVisible() && Application.isEditor && (Application.isPlaying || this.executeInEditMode) ){ 63 | 64 | if(this.currentAd == null){ 65 | 66 | this.GenerateRandomAd(); 67 | } 68 | 69 | this.DrawAd(); 70 | } 71 | 72 | } 73 | 74 | private Rect GetAdRect(AdSize size, AdHorizontalPosition horizontalPosition, AdVerticalPosition verticalPosition){ 75 | 76 | float x = 0, y = 0, width = 0, height = 0; 77 | 78 | switch(size){ 79 | 80 | case AdSize.BANNER: 81 | width = 320; 82 | height = 50; 83 | break; 84 | 85 | case AdSize.IAB_BANNER: 86 | width = 300; 87 | height = 250; 88 | break; 89 | 90 | case AdSize.IAB_LEADERBOARD: 91 | width = 486; 92 | height = 60; 93 | break; 94 | 95 | case AdSize.IAB_MRECT: 96 | width = 728; 97 | height = 90; 98 | break; 99 | 100 | case AdSize.SMART_BANNER: 101 | width = Screen.width; 102 | height = width / 6.4f; 103 | break; 104 | } 105 | 106 | if(width > Screen.width){ 107 | 108 | width = Screen.width; 109 | } 110 | 111 | if(height > Screen.height){ 112 | 113 | height = Screen.height; 114 | } 115 | 116 | switch(horizontalPosition){ 117 | 118 | case AdHorizontalPosition.CENTER_HORIZONTAL: 119 | x = (Screen.width / 2) - (width / 2); 120 | break; 121 | 122 | case AdHorizontalPosition.LEFT: 123 | x = 0; 124 | break; 125 | 126 | case AdHorizontalPosition.RIGHT: 127 | x = Screen.width - width; 128 | break; 129 | } 130 | 131 | switch(verticalPosition){ 132 | 133 | case AdVerticalPosition.CENTER_VERTICAL: 134 | y = (Screen.height / 2) - (height / 2); 135 | break; 136 | 137 | case AdVerticalPosition.TOP: 138 | y = 0; 139 | break; 140 | 141 | case AdVerticalPosition.BOTTOM: 142 | y = Screen.height - height; 143 | break; 144 | } 145 | 146 | return( new Rect(x, y, width, height) ); 147 | } 148 | 149 | private void DrawAd(){ 150 | 151 | Rect backgroundRect = this.GetAdRect(this.plugin.size, this.plugin.horizontalPosition, this.plugin.verticalPosition); 152 | Rect iconRect = new Rect(backgroundRect.x + 4, backgroundRect.y + 4, 38, 38); 153 | Rect actionRect = new Rect(backgroundRect.x + backgroundRect.width - 34, backgroundRect.y + 4, 30, 30); 154 | Rect textRect = new Rect(backgroundRect.x + 4 + 38 + 4, backgroundRect.y + 4, backgroundRect.width - 4 - 38 - 4 - 4 - 30 - 4, backgroundRect.height - 8); 155 | Texture background = this.GetBackground(); 156 | Color textColor = this.GetTextColor(); 157 | 158 | if(background != null){ 159 | 160 | GUI.DrawTexture(backgroundRect, background); 161 | 162 | }else{ 163 | 164 | GUI.Box(backgroundRect, (this.currentAd.text == null ? "AD MOCK-UP" : null) ); 165 | } 166 | 167 | if(this.currentAd.icon != null){ 168 | 169 | GUI.DrawTexture(iconRect, this.currentAd.icon); 170 | } 171 | 172 | if(this.currentAd.action != null){ 173 | 174 | GUI.DrawTexture(actionRect, this.currentAd.action); 175 | } 176 | 177 | if(this.currentAd.text != null){ 178 | 179 | GUIStyle textStyle = new GUIStyle(); 180 | 181 | textStyle.normal.textColor = Color.black; 182 | textStyle.fontStyle = FontStyle.Bold; 183 | textStyle.wordWrap = true; 184 | textStyle.alignment = TextAnchor.MiddleCenter; 185 | textStyle.normal.textColor = textColor; 186 | 187 | GUI.Label(textRect, this.currentAd.text, textStyle); 188 | } 189 | } 190 | 191 | private T GetRandomElement(T[] array) where T : class{ 192 | 193 | int index, length; 194 | 195 | length = ( array == null ? 0 : array.Length ); 196 | 197 | index = Random.Range(0, length); 198 | 199 | return(length == 0 ? null : array[index]); 200 | } 201 | 202 | private void GenerateRandomAd(){ 203 | 204 | this.currentAd = new AdMockup{ 205 | icon = this.GetRandomElement(this.icons), 206 | action = this.GetRandomElement(this.actions), 207 | text = this.GetRandomElement(this.texts) 208 | }; 209 | } 210 | 211 | private Texture GetBackground(){ 212 | 213 | return( this.style == AdMockupStyle.DARK ? this.darkBackground : this.lightBackground ); 214 | } 215 | 216 | private Color GetTextColor(){ 217 | 218 | return(this.style == AdMockupStyle.DARK ? Color.white : Color.black); 219 | } 220 | 221 | private static string[] quotes = new string[]{ 222 | 223 | "Bugs that go away by themselves come back by themselves.", 224 | "When in doubt, use brute force.", 225 | "Deleted code is debugged code.", 226 | "Premature optimization is the root of all evil.", 227 | "Simplicity is the ultimate sophistication.", 228 | "With diligence it is possible to make anything run slowly.", 229 | "Simplicity carried to the extreme becomes elegance.", 230 | "The best is the enemy of the good.", 231 | "A data structure is just a stupid programming language.", 232 | "Software gets slower faster than hardware gets faster.", 233 | "If it doesn't work, it doesn't matter how fast it doesn't work.", 234 | "If it works, it's obsolete.", 235 | "The common language of programmers is Profanity.", 236 | "There is no place like 127.0.0.1.", 237 | "The code is 100% complete, it just doesn't work yet.", 238 | "Programming is hard, let's go shopping." 239 | }; 240 | } 241 | 242 | 243 | /* 244 | * helper classes and enums 245 | */ 246 | 247 | public class AdMockup{ 248 | 249 | public Texture icon; 250 | public Texture action; 251 | public string text; 252 | } 253 | 254 | public enum AdMockupStyle{ DARK, LIGHT }; 255 | -------------------------------------------------------------------------------- /UnityProject/Assets/AdMobPlugin/Scripts/AdMobPluginMockup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4bcdadf56b0d1e54e906ae9deec40c57 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /UnityProject/Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8f1ab63dd8d3e94d85404bd71ddb75f 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/Plugins/Android.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54a9e50bbaf30094f8ccc25b1dfe49af 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/Plugins/Android/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 14 | 15 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 30 | 31 | 34 | 35 | 36 | 37 | 40 | 41 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /UnityProject/Assets/Plugins/Android/AndroidManifest.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f38c27d739b38064aabfca5d0f00f2ec 3 | TextScriptImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/Plugins/Android/GoogleAdMobAdsSdk-6.4.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/Plugins/Android/GoogleAdMobAdsSdk-6.4.1.jar -------------------------------------------------------------------------------- /UnityProject/Assets/Plugins/Android/GoogleAdMobAdsSdk-6.4.1.jar.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 101622acd31c61e418f40f90b5e4ac7a 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/Assets/Plugins/Android/admob-plugin.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrigameStudio/admob-unity-plugin/036cfda5f587a6789a6ee12c5a122b7e8da40597/UnityProject/Assets/Plugins/Android/admob-plugin.jar -------------------------------------------------------------------------------- /UnityProject/Assets/Plugins/Android/admob-plugin.jar.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 74e7148728cf3244db8e492bfe33e083 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | m_SpeedOfSound: 347 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_DSPBufferSize: 0 12 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | m_Gravity: {x: 0, y: -9.81000042, z: 0} 7 | m_DefaultMaterial: {fileID: 0} 8 | m_BounceThreshold: 2 9 | m_SleepVelocity: .150000006 10 | m_SleepAngularVelocity: .140000001 11 | m_MaxAngularVelocity: 7 12 | m_MinPenetrationForPenalty: .00999999978 13 | m_SolverIterationCount: 6 14 | m_RaycastsHitTriggers: 1 15 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 16 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/AdMobPlugin/Scenes/AdMobPluginTest.unity 10 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_ExternalVersionControlSupport: Meta Files 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | m_Axes: 7 | - serializedVersion: 3 8 | m_Name: Horizontal 9 | descriptiveName: 10 | descriptiveNegativeName: 11 | negativeButton: left 12 | positiveButton: right 13 | altNegativeButton: a 14 | altPositiveButton: d 15 | gravity: 3 16 | dead: .00100000005 17 | sensitivity: 3 18 | snap: 1 19 | invert: 0 20 | type: 0 21 | axis: 0 22 | joyNum: 0 23 | - serializedVersion: 3 24 | m_Name: Vertical 25 | descriptiveName: 26 | descriptiveNegativeName: 27 | negativeButton: down 28 | positiveButton: up 29 | altNegativeButton: s 30 | altPositiveButton: w 31 | gravity: 3 32 | dead: .00100000005 33 | sensitivity: 3 34 | snap: 1 35 | invert: 0 36 | type: 0 37 | axis: 0 38 | joyNum: 0 39 | - serializedVersion: 3 40 | m_Name: Fire1 41 | descriptiveName: 42 | descriptiveNegativeName: 43 | negativeButton: 44 | positiveButton: left ctrl 45 | altNegativeButton: 46 | altPositiveButton: mouse 0 47 | gravity: 1000 48 | dead: .00100000005 49 | sensitivity: 1000 50 | snap: 0 51 | invert: 0 52 | type: 0 53 | axis: 0 54 | joyNum: 0 55 | - serializedVersion: 3 56 | m_Name: Fire2 57 | descriptiveName: 58 | descriptiveNegativeName: 59 | negativeButton: 60 | positiveButton: left alt 61 | altNegativeButton: 62 | altPositiveButton: mouse 1 63 | gravity: 1000 64 | dead: .00100000005 65 | sensitivity: 1000 66 | snap: 0 67 | invert: 0 68 | type: 0 69 | axis: 0 70 | joyNum: 0 71 | - serializedVersion: 3 72 | m_Name: Fire3 73 | descriptiveName: 74 | descriptiveNegativeName: 75 | negativeButton: 76 | positiveButton: left cmd 77 | altNegativeButton: 78 | altPositiveButton: mouse 2 79 | gravity: 1000 80 | dead: .00100000005 81 | sensitivity: 1000 82 | snap: 0 83 | invert: 0 84 | type: 0 85 | axis: 0 86 | joyNum: 0 87 | - serializedVersion: 3 88 | m_Name: Jump 89 | descriptiveName: 90 | descriptiveNegativeName: 91 | negativeButton: 92 | positiveButton: space 93 | altNegativeButton: 94 | altPositiveButton: 95 | gravity: 1000 96 | dead: .00100000005 97 | sensitivity: 1000 98 | snap: 0 99 | invert: 0 100 | type: 0 101 | axis: 0 102 | joyNum: 0 103 | - serializedVersion: 3 104 | m_Name: Mouse X 105 | descriptiveName: 106 | descriptiveNegativeName: 107 | negativeButton: 108 | positiveButton: 109 | altNegativeButton: 110 | altPositiveButton: 111 | gravity: 0 112 | dead: 0 113 | sensitivity: .100000001 114 | snap: 0 115 | invert: 0 116 | type: 1 117 | axis: 0 118 | joyNum: 0 119 | - serializedVersion: 3 120 | m_Name: Mouse Y 121 | descriptiveName: 122 | descriptiveNegativeName: 123 | negativeButton: 124 | positiveButton: 125 | altNegativeButton: 126 | altPositiveButton: 127 | gravity: 0 128 | dead: 0 129 | sensitivity: .100000001 130 | snap: 0 131 | invert: 0 132 | type: 1 133 | axis: 1 134 | joyNum: 0 135 | - serializedVersion: 3 136 | m_Name: Mouse ScrollWheel 137 | descriptiveName: 138 | descriptiveNegativeName: 139 | negativeButton: 140 | positiveButton: 141 | altNegativeButton: 142 | altPositiveButton: 143 | gravity: 0 144 | dead: 0 145 | sensitivity: .100000001 146 | snap: 0 147 | invert: 0 148 | type: 1 149 | axis: 2 150 | joyNum: 0 151 | - serializedVersion: 3 152 | m_Name: Horizontal 153 | descriptiveName: 154 | descriptiveNegativeName: 155 | negativeButton: 156 | positiveButton: 157 | altNegativeButton: 158 | altPositiveButton: 159 | gravity: 0 160 | dead: .189999998 161 | sensitivity: 1 162 | snap: 0 163 | invert: 0 164 | type: 2 165 | axis: 0 166 | joyNum: 0 167 | - serializedVersion: 3 168 | m_Name: Vertical 169 | descriptiveName: 170 | descriptiveNegativeName: 171 | negativeButton: 172 | positiveButton: 173 | altNegativeButton: 174 | altPositiveButton: 175 | gravity: 0 176 | dead: .189999998 177 | sensitivity: 1 178 | snap: 0 179 | invert: 1 180 | type: 2 181 | axis: 1 182 | joyNum: 0 183 | - serializedVersion: 3 184 | m_Name: Fire1 185 | descriptiveName: 186 | descriptiveNegativeName: 187 | negativeButton: 188 | positiveButton: joystick button 0 189 | altNegativeButton: 190 | altPositiveButton: 191 | gravity: 1000 192 | dead: .00100000005 193 | sensitivity: 1000 194 | snap: 0 195 | invert: 0 196 | type: 0 197 | axis: 0 198 | joyNum: 0 199 | - serializedVersion: 3 200 | m_Name: Fire2 201 | descriptiveName: 202 | descriptiveNegativeName: 203 | negativeButton: 204 | positiveButton: joystick button 1 205 | altNegativeButton: 206 | altPositiveButton: 207 | gravity: 1000 208 | dead: .00100000005 209 | sensitivity: 1000 210 | snap: 0 211 | invert: 0 212 | type: 0 213 | axis: 0 214 | joyNum: 0 215 | - serializedVersion: 3 216 | m_Name: Fire3 217 | descriptiveName: 218 | descriptiveNegativeName: 219 | negativeButton: 220 | positiveButton: joystick button 2 221 | altNegativeButton: 222 | altPositiveButton: 223 | gravity: 1000 224 | dead: .00100000005 225 | sensitivity: 1000 226 | snap: 0 227 | invert: 0 228 | type: 0 229 | axis: 0 230 | joyNum: 0 231 | - serializedVersion: 3 232 | m_Name: Jump 233 | descriptiveName: 234 | descriptiveNegativeName: 235 | negativeButton: 236 | positiveButton: joystick button 3 237 | altNegativeButton: 238 | altPositiveButton: 239 | gravity: 1000 240 | dead: .00100000005 241 | sensitivity: 1000 242 | snap: 0 243 | invert: 0 244 | type: 0 245 | axis: 0 246 | joyNum: 0 247 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/NavMeshLayers.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshLayers: 5 | m_ObjectHideFlags: 0 6 | Built-in Layer 0: 7 | name: Default 8 | cost: 1 9 | editType: 2 10 | Built-in Layer 1: 11 | name: Not Walkable 12 | cost: 1 13 | editType: 0 14 | Built-in Layer 2: 15 | name: Jump 16 | cost: 2 17 | editType: 2 18 | User Layer 0: 19 | name: 20 | cost: 1 21 | editType: 3 22 | User Layer 1: 23 | name: 24 | cost: 1 25 | editType: 3 26 | User Layer 2: 27 | name: 28 | cost: 1 29 | editType: 3 30 | User Layer 3: 31 | name: 32 | cost: 1 33 | editType: 3 34 | User Layer 4: 35 | name: 36 | cost: 1 37 | editType: 3 38 | User Layer 5: 39 | name: 40 | cost: 1 41 | editType: 3 42 | User Layer 6: 43 | name: 44 | cost: 1 45 | editType: 3 46 | User Layer 7: 47 | name: 48 | cost: 1 49 | editType: 3 50 | User Layer 8: 51 | name: 52 | cost: 1 53 | editType: 3 54 | User Layer 9: 55 | name: 56 | cost: 1 57 | editType: 3 58 | User Layer 10: 59 | name: 60 | cost: 1 61 | editType: 3 62 | User Layer 11: 63 | name: 64 | cost: 1 65 | editType: 3 66 | User Layer 12: 67 | name: 68 | cost: 1 69 | editType: 3 70 | User Layer 13: 71 | name: 72 | cost: 1 73 | editType: 3 74 | User Layer 14: 75 | name: 76 | cost: 1 77 | editType: 3 78 | User Layer 15: 79 | name: 80 | cost: 1 81 | editType: 3 82 | User Layer 16: 83 | name: 84 | cost: 1 85 | editType: 3 86 | User Layer 17: 87 | name: 88 | cost: 1 89 | editType: 3 90 | User Layer 18: 91 | name: 92 | cost: 1 93 | editType: 3 94 | User Layer 19: 95 | name: 96 | cost: 1 97 | editType: 3 98 | User Layer 20: 99 | name: 100 | cost: 1 101 | editType: 3 102 | User Layer 21: 103 | name: 104 | cost: 1 105 | editType: 3 106 | User Layer 22: 107 | name: 108 | cost: 1 109 | editType: 3 110 | User Layer 23: 111 | name: 112 | cost: 1 113 | editType: 3 114 | User Layer 24: 115 | name: 116 | cost: 1 117 | editType: 3 118 | User Layer 25: 119 | name: 120 | cost: 1 121 | editType: 3 122 | User Layer 26: 123 | name: 124 | cost: 1 125 | editType: 3 126 | User Layer 27: 127 | name: 128 | cost: 1 129 | editType: 3 130 | User Layer 28: 131 | name: 132 | cost: 1 133 | editType: 3 134 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | AndroidProfiler: 0 8 | defaultScreenOrientation: 0 9 | targetDevice: 2 10 | targetGlesGraphics: 1 11 | targetResolution: 0 12 | accelerometerFrequency: 60 13 | companyName: Guillermonkey 14 | productName: AdMobPlugin 15 | defaultCursor: {fileID: 0} 16 | cursorHotspot: {x: 0, y: 0} 17 | defaultScreenWidth: 1024 18 | defaultScreenHeight: 768 19 | defaultScreenWidthWeb: 960 20 | defaultScreenHeightWeb: 600 21 | m_RenderingPath: 1 22 | m_ActiveColorSpace: 0 23 | m_MTRendering: 1 24 | m_UseDX11: 0 25 | iosShowActivityIndicatorOnLoading: -1 26 | androidShowActivityIndicatorOnLoading: -1 27 | displayResolutionDialog: 1 28 | allowedAutorotateToPortrait: 1 29 | allowedAutorotateToPortraitUpsideDown: 1 30 | allowedAutorotateToLandscapeRight: 1 31 | allowedAutorotateToLandscapeLeft: 1 32 | useOSAutorotation: 1 33 | use32BitDisplayBuffer: 1 34 | use24BitDepthBuffer: 0 35 | defaultIsFullScreen: 0 36 | runInBackground: 0 37 | captureSingleScreen: 0 38 | Override IPod Music: 0 39 | usePlayerLog: 1 40 | stripPhysics: 0 41 | resizableWindow: 0 42 | useMacAppStoreValidation: 0 43 | xboxSkinOnGPU: 1 44 | xboxEnableAvatar: 0 45 | xboxEnableKinect: 0 46 | xboxEnableKinectAutoTracking: 0 47 | xboxEnableFitness: 0 48 | macFullscreenMode: 2 49 | xboxSpeechDB: 0 50 | wiiHio2Usage: -1 51 | wiiLoadingScreenRectPlacement: 0 52 | wiiLoadingScreenBackground: {r: 1, g: 1, b: 1, a: 1} 53 | wiiLoadingScreenPeriod: 1000 54 | wiiLoadingScreenFileName: 55 | wiiLoadingScreenRect: 56 | serializedVersion: 2 57 | x: 0 58 | y: 0 59 | width: 0 60 | height: 0 61 | m_SupportedAspectRatios: 62 | 4:3: 1 63 | 5:4: 1 64 | 16:10: 1 65 | 16:9: 1 66 | Others: 1 67 | iPhoneBundleIdentifier: com.guillermonkey.AdMobPlugin 68 | iPhoneBundleVersion: 1.0 69 | AndroidBundleVersionCode: 1 70 | AndroidMinSdkVersion: 6 71 | AndroidPreferredInstallLocation: 1 72 | aotOptions: 73 | apiCompatibilityLevel: 2 74 | iPhoneStrippingLevel: 0 75 | iPhoneScriptCallOptimization: 0 76 | ForceInternetPermission: 0 77 | ForceSDCardPermission: 0 78 | CreateWallpaper: 0 79 | APKExpansionFiles: 0 80 | StripUnusedMeshComponents: 0 81 | iPhoneSdkVersion: 988 82 | iPhoneTargetOSVersion: 10 83 | uIPrerenderedIcon: 0 84 | uIRequiresPersistentWiFi: 0 85 | uIStatusBarHidden: 1 86 | uIExitOnSuspend: 0 87 | uIStatusBarStyle: 0 88 | iPhoneSplashScreen: {fileID: 0} 89 | iPhoneHighResSplashScreen: {fileID: 0} 90 | iPhoneTallHighResSplashScreen: {fileID: 0} 91 | iPadPortraitSplashScreen: {fileID: 0} 92 | iPadHighResPortraitSplashScreen: {fileID: 0} 93 | iPadLandscapeSplashScreen: {fileID: 0} 94 | iPadHighResLandscapeSplashScreen: {fileID: 0} 95 | AndroidTargetDevice: 0 96 | AndroidSplashScreenScale: 0 97 | AndroidKeystoreName: 98 | AndroidKeyaliasName: 99 | resolutionDialogBanner: {fileID: 0} 100 | m_BuildTargetIcons: 101 | - m_BuildTarget: 102 | m_Icons: 103 | - m_Icon: {fileID: 0} 104 | m_Size: 128 105 | m_BuildTargetBatching: [] 106 | webPlayerTemplate: APPLICATION:Default 107 | m_TemplateCustomTags: {} 108 | wiiRegion: 1 109 | wiiGameCode: RABA 110 | wiiGameVersion: 111 | wiiCompanyCode: ZZ 112 | wiiSupportsNunchuk: 0 113 | wiiSupportsClassicController: 0 114 | wiiSupportsBalanceBoard: 0 115 | wiiSupportsMotionPlus: 0 116 | wiiControllerCount: 1 117 | wiiFloatingPointExceptions: 0 118 | wiiScreenCrashDumps: 1 119 | wiiMemoryLabelCount: 155 120 | wiiMemorySetup: 5effbee7ffffffafbb1f00000000000000000000 121 | XboxTitleId: 122 | XboxImageXexPath: 123 | XboxSpaPath: 124 | XboxGenerateSpa: 0 125 | XboxDeployKinectResources: 0 126 | XboxSplashScreen: {fileID: 0} 127 | xboxEnableSpeech: 0 128 | xboxAdditionalTitleMemorySize: 0 129 | ps3TitleConfigPath: 130 | ps3DLCConfigPath: 131 | ps3ThumbnailPath: 132 | ps3BackgroundPath: 133 | ps3SoundPath: 134 | ps3TrophyCommId: 135 | ps3TrophyPackagePath: 136 | ps3BootCheckMaxSaveGameSizeKB: 128 137 | ps3TrophyCommSig: 138 | ps3SaveGameSlots: 1 139 | ps3TrialMode: 0 140 | flashStrippingLevel: 2 141 | scriptingDefineSymbols: 142 | data: 143 | first: 1 144 | second: 145 | metroPackageName: 146 | metroPackageLogo: 147 | metroPackageVersion: 148 | metroCertificatePath: 149 | metroCertificatePassword: 150 | metroCertificateSubject: 151 | metroCertificateIssuer: 152 | metroCertificateNotAfter: 0000000000000000 153 | metroApplicationDescription: 154 | metroTileLogo: 155 | metroTileWideLogo: 156 | metroTileSmallLogo: 157 | metroTileShortName: 158 | metroTileShowName: 0 159 | metroTileForegroundText: 1 160 | metroTileBackgroundColor: {r: 0, g: 0, b: 0, a: 1} 161 | metroSplashScreenImage: 162 | metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} 163 | metroSplashScreenUseBackgroundColor: 0 164 | firstStreamedLevelWithResources: 0 165 | unityRebuildLibraryVersion: 9 166 | unityForwardCompatibleVersion: 37 167 | unityStandardAssetsVersion: 0 168 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 3 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | blendWeights: 1 18 | textureQuality: 1 19 | anisotropicTextures: 0 20 | antiAliasing: 0 21 | softParticles: 0 22 | softVegetation: 0 23 | vSyncCount: 0 24 | lodBias: .300000012 25 | maximumLODLevel: 0 26 | particleRaycastBudget: 4 27 | excludedTargetPlatforms: [] 28 | - serializedVersion: 2 29 | name: Fast 30 | pixelLightCount: 0 31 | shadows: 0 32 | shadowResolution: 0 33 | shadowProjection: 1 34 | shadowCascades: 1 35 | shadowDistance: 20 36 | blendWeights: 2 37 | textureQuality: 0 38 | anisotropicTextures: 0 39 | antiAliasing: 0 40 | softParticles: 0 41 | softVegetation: 0 42 | vSyncCount: 0 43 | lodBias: .400000006 44 | maximumLODLevel: 0 45 | particleRaycastBudget: 16 46 | excludedTargetPlatforms: [] 47 | - serializedVersion: 2 48 | name: Simple 49 | pixelLightCount: 1 50 | shadows: 1 51 | shadowResolution: 0 52 | shadowProjection: 1 53 | shadowCascades: 1 54 | shadowDistance: 20 55 | blendWeights: 2 56 | textureQuality: 0 57 | anisotropicTextures: 1 58 | antiAliasing: 0 59 | softParticles: 0 60 | softVegetation: 0 61 | vSyncCount: 0 62 | lodBias: .699999988 63 | maximumLODLevel: 0 64 | particleRaycastBudget: 64 65 | excludedTargetPlatforms: [] 66 | - serializedVersion: 2 67 | name: Good 68 | pixelLightCount: 2 69 | shadows: 2 70 | shadowResolution: 1 71 | shadowProjection: 1 72 | shadowCascades: 2 73 | shadowDistance: 40 74 | blendWeights: 2 75 | textureQuality: 0 76 | anisotropicTextures: 1 77 | antiAliasing: 0 78 | softParticles: 0 79 | softVegetation: 1 80 | vSyncCount: 1 81 | lodBias: 1 82 | maximumLODLevel: 0 83 | particleRaycastBudget: 256 84 | excludedTargetPlatforms: [] 85 | - serializedVersion: 2 86 | name: Beautiful 87 | pixelLightCount: 3 88 | shadows: 2 89 | shadowResolution: 2 90 | shadowProjection: 1 91 | shadowCascades: 2 92 | shadowDistance: 70 93 | blendWeights: 4 94 | textureQuality: 0 95 | anisotropicTextures: 2 96 | antiAliasing: 2 97 | softParticles: 1 98 | softVegetation: 1 99 | vSyncCount: 1 100 | lodBias: 1.5 101 | maximumLODLevel: 0 102 | particleRaycastBudget: 1024 103 | excludedTargetPlatforms: [] 104 | - serializedVersion: 2 105 | name: Fantastic 106 | pixelLightCount: 4 107 | shadows: 2 108 | shadowResolution: 2 109 | shadowProjection: 1 110 | shadowCascades: 4 111 | shadowDistance: 150 112 | blendWeights: 4 113 | textureQuality: 0 114 | anisotropicTextures: 2 115 | antiAliasing: 2 116 | softParticles: 1 117 | softVegetation: 1 118 | vSyncCount: 1 119 | lodBias: 2 120 | maximumLODLevel: 0 121 | particleRaycastBudget: 4096 122 | excludedTargetPlatforms: [] 123 | m_PerPlatformDefaultQuality: 124 | Android: 2 125 | FlashPlayer: 3 126 | GLES Emulation: 3 127 | PS3: 3 128 | Standalone: 3 129 | Web: 3 130 | Wii: 3 131 | XBOX360: 3 132 | iPhone: 2 133 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | tags: 6 | - 7 | Builtin Layer 0: Default 8 | Builtin Layer 1: TransparentFX 9 | Builtin Layer 2: Ignore Raycast 10 | Builtin Layer 3: 11 | Builtin Layer 4: Water 12 | Builtin Layer 5: 13 | Builtin Layer 6: 14 | Builtin Layer 7: 15 | User Layer 8: 16 | User Layer 9: 17 | User Layer 10: 18 | User Layer 11: 19 | User Layer 12: 20 | User Layer 13: 21 | User Layer 14: 22 | User Layer 15: 23 | User Layer 16: 24 | User Layer 17: 25 | User Layer 18: 26 | User Layer 19: 27 | User Layer 20: 28 | User Layer 21: 29 | User Layer 22: 30 | User Layer 23: 31 | User Layer 24: 32 | User Layer 25: 33 | User Layer 26: 34 | User Layer 27: 35 | User Layer 28: 36 | User Layer 29: 37 | User Layer 30: 38 | User Layer 31: 39 | -------------------------------------------------------------------------------- /UnityProject/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: .0199999996 7 | Maximum Allowed Timestep: .333333343 8 | m_TimeScale: 1 9 | --------------------------------------------------------------------------------