基于Unity3D的Android游戏添加google广告的插件及使用方法
本帖最后由 杨建辉 于 2013-2-16 13:53 编辑从该文中找到AdMob插件的出处
AdMob plugin that works in Unity 3.2
首先尝试了同胞的方法,折腾了大概一天时间吧,未果,老是报错,最后没办法,就想,从根上解决吧,于是开始看老外的帖子,说实话英文技术贴比小说什么的好理解多了。而且官方论坛上的讨论氛围真的很好,很多人都把自己的经验和步骤共享给了大家。借助翻译工具,大体上明白了怎么弄,但是其中关键的重新打jar包却说的并不是很清楚,虽然有几个人共享了步骤,但是是基于mac系统的,很win系统又有些区别,于是,又从帮助文档中查找了关于Plugins的说明。
终于明白了plugin是个怎么回事了。又根据前面说的论坛里的回帖,连蒙带猜终于搞定,其中还和论坛上的一个老外通了几次信,别说,咱的不地道的英语人家还是懂了。
废话少说,下面就说下我的步骤。
使用AdMob,必须要把最终发布的游戏的包名改成unitypackage里的包名,但unitypackage里的包名是可以修改的。另外unitypackage里Unity中用到的只有AndroidManifest.xml,res,libs,bin是必须的,上面那篇文里也说了。
1、下载上面的unitypackage并导入Unity中,其实就是将其解压;
2、用eclipse新建工程,取名UnityAd,这个无所谓,需要注意的是packagename,必须要和你最终发布的游戏一致。为后边方便activity的名字取和unitypackage中的一致,在解压后的Plugins\Android\src\org\example\AdMobTest下。3、在工程名上右键,选择属性,导入两个包,一个是上面unitypackage目录下Android/libs里的admob-sdk-android.jar,也可以从AdMob网站上下载最新的包,另一个是Unity\Editor\Data\PlaybackEngines\androidplayer\bin\classes.jar
4、用unitypackage中的AdMobTestActivity.java和AndroidManifest.xml覆盖android工程中的相应文件,用unitypackage中的res文件夹替换android工程的相应文件夹,最好是删了原来的拷过来,覆盖没试,为了保险吧。
5、把上述java文件和xml文件中所有涉及到org.example.AdMobTest这一包名的地方都改为你的包名;
6、打开AdMobTestActivity.java,找到“AdManager.setTestDevices( new String[] {"ABCDEF1234578901234567890123456" } );”改为:
复制代码
[*] final String androidId = Secure.getString(getContentResolver(), Secure.ANDROID_ID); //get Android Device Id.
[*] AdManager.setTestDevices( new String[] { androidId } ); //Add Android ID to Admob.
打开AndroidManifest.xml,找到”<meta-data android:value="YOUR_ID_HERE"android:name="ADMOB_PUBLISHER_ID" />”,用自己的AdMobId替换YOUR_ID_HERE。
7、运行,run as android application。
8、运行cmd,利用cd命令转到工程bin目录下,但我的win7下的这个命令竟然无法转过去,只能转到c盘根目录,所以只能把工程目录下bin文件夹中的com文件夹拷贝到c盘,把com文件夹打为jar包。具体命令如下
将这个jar包拷贝到unity工程目录下的Assets\Plugins\Android\bin中
9、把android工程下的xml文件拷到unity工程目录下的Assets\Plugins\Android\中。如果刚才新建android工程导入的是从admob上下载的jar包,那还要将其拷到Assets\Plugins\Android\libs下,替换原来的。
最终unity工程plugins文件夹下只有AndroidManifest.xml,res\,libs\,bin\
10、和你的工程一起运行就ok了,模拟器和真机测试全部通过,最好真机,效果好。
好帖就是要顶 顶顶多好 难得一见的好帖 很好哦 LZ真是人才 很不错 楼主是超人 好帖就是要顶 顶顶多好