选择你的到处路径和名称JAR file,直接Finish,这样的jar包里面只包括编译后的AdMob.class,很小很干净。。。然后打开羽化的Unity工程AdMobTest(File- > Open Project),双击UnityAdMob这个Sence,可以看到只有一个相机。。。上面只有一个脚本Ad.cs。
Ad.cs
- using UnityEngine;
- using System.Collections;
- using System;
- public class Ad : MonoBehaviour
- {
- void OnGUI()
- {
- if(Input.GetKey(KeyCode.Escape))
- {
- Application.Quit();
- }
- if(GUI.Button(new Rect(0,Screen.height-220,100,100),"EnableAds!"))
- {
- EnableAds();
- }
- if(GUI.Button(new Rect(0,Screen.height-110,100,100),"DisableAds!"))
- {
- DisableAds();
- }
- if(GUI.Button(new Rect(Screen.width-120,Screen.height-40,120,30),"Click to YUHUA!"))
- {
- Application.OpenURL("http://blog.csdn.net/libeifs");
- }
- }
- public void EnableAds()
- {
- #if UNITY_ANDROID
- AndroidJNI.AttachCurrentThread();
- // first we try to find our main activity..
- IntPtr cls_Activity = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");
- IntPtr fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");
- IntPtr obj_Activity = AndroidJNI.GetStaticObjectField(cls_Activity, fid_Activity);
- //Debug.Log("obj_Activity = " + obj_Activity);
- IntPtr cls_OurAppNameActivityClass = AndroidJNI.FindClass("com/LB/AdMob/AdMob"); //this has to be changed
- IntPtr startAdsMethod = AndroidJNI.GetMethodID(cls_OurAppNameActivityClass, "EnableAds", "()V");
- //Debug.Log("m_startAdsMethod = " + startAdsMethod);
- if (AndroidJNI.IsInstanceOf(obj_Activity, cls_OurAppNameActivityClass) != false)
- {
- //Debug.Log("Activity IS a OurAppNameActivity");
- jvalue[] myArray = new jvalue[1];
- AndroidJNI.CallVoidMethod(obj_Activity, startAdsMethod,myArray);
- }
- #else
- m_adShowing = true;
- #endif //UNITY_ANDROID
- }
- public void DisableAds()
- {
- #if UNITY_ANDROID
- AndroidJNI.AttachCurrentThread();
- // first we try to find our main activity..
- IntPtr cls_Activity = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");
- IntPtr fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");
- IntPtr obj_Activity = AndroidJNI.GetStaticObjectField(cls_Activity, fid_Activity);
- IntPtr cls_OurAppNameActivityClass = AndroidJNI.FindClass("com/LB/AdMob/AdMob"); //this has to be changed
- IntPtr stopAdsMethod = AndroidJNI.GetMethodID(cls_OurAppNameActivityClass, "DisableAds", "()V");
- if (AndroidJNI.IsInstanceOf(obj_Activity, cls_OurAppNameActivityClass) != false)
- {
- jvalue[] myArray = new jvalue[1];
- AndroidJNI.CallVoidMethod(obj_Activity, stopAdsMethod,myArray);
- }
- #else //UNITY_ANDROID
- m_adShowing = false;
- #endif //UNITY_ANDROID
- }
- }
看起很简单,确实也不难,首先建立Plugins -> Android -> bin | libs这个文件集,把Eclipse项目里面的AndroidManifest.xml放在Android目录下,把打包的UnityAdMob.jar放在bin下,把这个重写的AdMob SDK放在libs下,注意:把Bundle Identifier设置成和Eclipse项目包一样的名字,就算没有Ad.cs程序运行也会执行一次广告,这个C#类只是个广告开关,还有里面的两个AndroidJNI.FindClass("XXX")自行修改。。。