首页 > 代码库 > Unity3D IOS IPhone添加Admob的方法
Unity3D IOS IPhone添加Admob的方法
原地址:http://dong2008hong.blog.163.com/blog/static/4696882720140403119293/
首先阅读官方文档https://developers.google.com/mobile-ads-sdk/docs/
按步就班注册获取AdMob Publisher ID已及开发SDK包和DEMO工程,确保官方的demo工程能正确运行:
如果没法运行,再仔细阅读官方文档!!
为了省事,就直接在BannerExampleViewController上修改
首先添加两个方法,1个单列1个用于显示广告的方法
+ (BannerExampleViewController* )shareBannerView;
- (id)showAdmob;
把- (void)viewDidLoad方法内容移到- (id)showAdmob;
中,并稍作修改:
- (void)viewDidLoad {
[super viewDidLoad];
}
- (id)showAdmob
{
//Initialize the banner off the screen so that it animates up when displaying
self.adBanner = [[GADBannerView alloc] initWithFrame:CGRectMake(0.0,
self.view.frame.size.height, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height)];
// Note: Edit SampleConstants.h to provide a definition for kSampleAdUnitID
// before compiling.
self.adBanner.adUnitID = @"a15049aa7aa110e";
self.adBanner.delegate = self;
[self.adBanner setRootViewController:self];
//[self.view addSubview:self.adBanner];
[[[UIApplication sharedApplication] keyWindow] addSubview:adBanner_];
[self.adBanner loadRequest:[self createRequest]];
return self.adBanner;
}
接下来实现单列:
static BannerExampleViewController* shareBannerView = nil;
+ (BannerExampleViewController *)shareBannerView
{
if (shareBannerView == nil) {
shareBannerView= [[BannerExampleViewController alloc] init];
}
return shareBannerView;
}
最后实现unity需要的类,创建一个UMob.mm类,该类灰常简单,只有一个方法(用于unity中C#调用),
#import "UMob.h"
#import "BannerExampleViewController.h"
@implementationUMob
extern "C"
{
void _adMob()
{
[[BannerExampleViewController shareBannerView] showAdmob];
}
}
@end
Xcode部分完成。把需要的文件拷贝到unity中,注意文件结构
Unity部分就更easy了。创建一个调用admob的类挂到场景中。
usingSystem.Collections;
usingSystem.Runtime.InteropServices;
public class AdmobCall {
[DllImport ("__Internal")]
private static extern void _adMob();
void Start () {
_adMob();
}
}
搞定!build,如果在xcode中运行出错的话,应该是缺少一些framework,具体少那些,参见文章第一行。