Unity3d Android开发中加入广告和第三方包的方法

1 reply [最后一篇]
quanshengjerry
User offline. Last seen 5 周 4 天 ago. Offline
初级会员
Joined: 08/23/2011
Points: 55

 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,

 

 

 

然后编写一个Activity继承UnityPlayerActivity

 

Java代码  
  1. public class UnityAdActivity extends UnityPlayerActivity {  
  2.     /** Called when the activity is first created. */  
  3.     @Override  
  4.     public void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setupAds();  
  7.     }  
  8.   
  9.     private void setupAds() {  
  10.         // And this is the same, but done programmatically  
  11.   
  12.         LinearLayout layout = new LinearLayout(this);  
  13.         layout.setOrientation(LinearLayout.VERTICAL);  
  14.         addContentView(layout, new LayoutParams(LayoutParams.FILL_PARENT,  
  15.                 LayoutParams.FILL_PARENT));  
  16.   
  17.         AdView adView = new AdView(this, AdSize.BANNER, "你的发布者ID");  
  18.         layout.addView(adView, new LayoutParams(LayoutParams.FILL_PARENT,  
  19.                 LayoutParams.WRAP_CONTENT));  
  20.           
  21.   
  22.         adView.loadAd(new AdRequest());  
  23.     }  
  24. }  

 

AndroidManifest.xml写成:

 

Xml代码  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.       package="com.hsj.test"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     <uses-sdk android:minSdkVersion="7" />  
  7.   
  8.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  9.         <activity android:name=".UnityAdActivity"  
  10.                   android:label="@string/app_name">  
  11.             <intent-filter>  
  12.                 <action android:name="android.intent.action.MAIN" />  
  13.                 <category android:name="android.intent.category.LAUNCHER" />  
  14.             </intent-filter>  
  15.         </activity>  
  16.         <activity android:name="com.google.ads.AdActivity"  
  17.               android:configChanges="keyboard|keyboardHidden|orientation"/>  
  18.   </application>  
  19.   <uses-permission android:name="android.permission.INTERNET"/>  
  20.   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
  21.   
  22. </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程序里可以看到

 

5,用unity3d  Build android 安装包

 

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

iunew2012
User offline. Last seen 12 周 1 天 ago. Offline
注册用户
Joined: 02/27/2012
Points: 5

你好,不知道你是否在企业工作,目前我正在为北京的一家公司在招聘开发人员,如果您本人感兴趣或者有朋友推荐都可以。

多谢,我的联系方式是, QQ:332821067