选择你的到处路径和名称JAR file,直接Finish,这样的jar包里面只包括编译后的AdMob.class,很小很干净。。。然后打开羽化的Unity工程AdMobTest(File- > Open Project),双击UnityAdMob这个Sence,可以看到只有一个相机。。。上面只有一个脚本Ad.cs。
Ad.cs
[csharp] view plaincopyprint?
- 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")自行修改。。。