unity3d中加入admob的方法

Unity3d已经支持android,如何在程序里加入admob?
在http://forum.unity3d.com/forums/30-Android-Development发现了一些方法。
http://forum.unity3d.com/threads/77568-AdMob-plugin-that-works-in-Unity-3.2?s=b593b222053ee6486198c8d817c265cd中Wozik提供了一个unitypackage。。
试了一下,确实可以,不过必须要把android工程的包名改成unitypackage里的包名。
决定自己也做一个unity3d的Plugins,记录一下步骤:
经过自己测试wozik提供的Plugins中的AndroidManifest.xml,res,libs,bin是必须的,其他东西都可以去掉。
按照这个思路,自己用eclipse创建了个工程UnityAd,在工程中先把需要的包导入。
第一个包就是admob的jar包GoogleAdMobAdsSdk-4.1.0.jar,
第二个是Unity3d程序目录下的Unity\Editor\Data\PlaybackEngines\androidplayer\bin\classes.jar,

unity3d中加入admob的方法_第1张图片



然后编写一个Activity继承UnityPlayerActivity

Java代码 
public class UnityAdActivity extends UnityPlayerActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setupAds(); 
    } 
 
    private void setupAds() { 
        // And this is the same, but done programmatically 
 
        LinearLayout layout = new LinearLayout(this); 
        layout.setOrientation(LinearLayout.VERTICAL); 
        addContentView(layout, new LayoutParams(LayoutParams.FILL_PARENT, 
                LayoutParams.FILL_PARENT)); 
 
        AdView adView = new AdView(this, AdSize.BANNER, "你的发布者ID"); 
        layout.addView(adView, new LayoutParams(LayoutParams.FILL_PARENT, 
                LayoutParams.WRAP_CONTENT)); 
         
 
        adView.loadAd(new AdRequest()); 
    } 


AndroidManifest.xml写成:

Xml代码 
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.hsj.test" 
      android:versionCode="1" 
      android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="7" /> 
 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
        <activity android:name=".UnityAdActivity" 
                  android:label="@string/app_name"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
        <activity android:name="com.google.ads.AdActivity" 
              android:configChanges="keyboard|keyboardHidden|orientation"/> 
  </application> 
  <uses-permission android:name="android.permission.INTERNET"/> 
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
 
</manifest> 

这就ok了,把工程build一下。

1,找到UnityAd工程目录,把bin文件夹下的com文件夹打成jar包,jar包名为com.hsj.test.jar,



将这个jar包拷贝到unity工程目录下的Assets\Plugins\Android\bin中。
2,把UnityAd工程目录下的res文件夹和AndroidManifest.xml文件拷贝到unity工程目录下的Assets\Plugins\Android
3,在unity工程目录下的Assets\Plugins\Android中建个libs目录,把GoogleAdMobAdsSdk-4.1.0.jar拷贝到libs目录中
4,在unity3d程序里可以看到

unity3d中加入admob的方法_第2张图片

5,用unity3d  Build android 安装包

unity3d中加入admob的方法_第3张图片

6把安装包放到虚拟机或真机上运行


unity3d中加入admob的方法_第4张图片

虚拟机上跑太卡,而且广告经常获取失败。。。

你可能感兴趣的:(unity3d)