unity admob
插件地址:https://github.com/unity-plugins/Unity-Admob
2017.04.11测试使用发现GoogleMobileAds.framework有问题,导致出现Undefined symbols for architecture等错误
以下是测试过的完整插件包:
链接:http://pan.baidu.com/s/1c1YL1mg 密码:vi8q
无出错的GoogleMobileAds.framework:
链接:http://pan.baidu.com/s/1jHNdXNg 密码:bwyk
unity 版本:5.6.f3
Target minimum iOS Version: 8.0
全屏广告需要在unity发布设置或xcode中把所有方向都勾上,再用代码决定要保留哪些方向,这样手持设备广告的方向才能显示正确
AdmobManager.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using admob; public class AdmobManager : MonoBehaviour {
public string bannerID="ca-app-pub-3940256099942544/2934735716";
public string fullID="ca-app-pub-3940256099942544/4411468910";
public string rewardVideoID="ca-app-pub-3940256099942544/xxxxxxxxxx"; public string nativeBannerID="ca-app-pub-3940256099942544/2562852117"; Admob ad;
private bool _isinited; public static AdmobManager instance {
get{
return GameObject.Find("AdmobManager").GetComponent<AdmobManager>();
}
} void Awake(){
Debug.Log("start unity demo-------------");
gameObject.name="AdmobManager";
initAdmob();
} void Start () { } void Update () {
//ad.showInterstitial();
} void initAdmob(){
//isAdmobInited = true;
ad = Admob.Instance();
ad.bannerEventHandler += onBannerEvent;
ad.interstitialEventHandler += onInterstitialEvent;
ad.rewardedVideoEventHandler += onRewardedVideoEvent;
ad.nativeBannerEventHandler += onNativeBannerEvent;
ad.initAdmob(bannerID,fullID);
//ad.setTesting(true);
ad.setGender(AdmobGender.MALE);
string[] keywords = { "game","crash","male game"};
ad.setKeywords(keywords);
Debug.Log("admob inited -------------");
} void onInterstitialEvent(string eventName, string msg){
Debug.Log("handler onAdmobEvent---" + eventName + " " + msg);
if (eventName == AdmobEvent.onAdLoaded){
Admob.Instance().showInterstitial();
}else if(eventName==AdmobEvent.onAdClosed){
//Admob.Instance().loadInterstitial();
}
}
void onBannerEvent(string eventName, string msg){
Debug.Log("handler onAdmobBannerEvent---" + eventName + " " + msg);
}
void onRewardedVideoEvent(string eventName, string msg){
Debug.Log("handler onRewardedVideoEvent---" + eventName + " " + msg);
}
void onNativeBannerEvent(string eventName, string msg){
Debug.Log("handler onAdmobNativeBannerEvent---" + eventName + " " + msg);
} public bool isInterstitialReady(){
return ad.isInterstitialReady();
}
public void loadInterstitial(){
ad.loadInterstitial();
} public void showInterstitial(){
ad.showInterstitial();
} public void showRewardVideo(){
if (ad.isRewardedVideoReady()) ad.showRewardedVideo();
else ad.loadRewardedVideo(rewardVideoID);
} public void showbanner(AdSize size/*=AdSize.SmartBanner*/, int pos/*=AdPosition.BOTTOM_CENTER*/,int marginY=){
Admob.Instance().showBannerRelative(size, pos,marginY);
}
public void showbannerABS(AdSize size/*=AdSize.Banner*/,int x=,int y=){
Admob.Instance().showBannerAbsolute(size, x, y);
}
public void removebanner(){
Admob.Instance().removeBanner();
} public void showNative(int pos/*=AdPosition.BOTTOM_CENTER*/,int width=,int height=,int marginY=){
Admob.Instance().showNativeBannerRelative(new AdSize(width,height), pos, marginY,nativeBannerID);
}
public void showNativeABS(int width=,int height=,int x=,int y=){
Admob.Instance().showNativeBannerAbsolute(new AdSize(width,height), x, y, nativeBannerID);
}
public void removeNative(){
Admob.Instance().removeNativeBanner();
} }
Editor文件夹下PBXProjectSetting.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode; public class PBXProjectSetting{ //该属性是在build完成后,被调用的callback
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path){
// BuildTarget需为iOS
if (buildTarget != BuildTarget.iOS) return;
Debug.Log("===PostProcessBuildAttribute();==="); string projPath = PBXProject.GetPBXProjectPath(path);
PBXProject pbxProject = new PBXProject(); pbxProject.ReadFromString(File.ReadAllText(projPath));
string target = pbxProject.TargetGuidByName("Unity-iPhone"); // 关闭Bitcode
pbxProject.SetBuildProperty(target, "ENABLE_BITCODE", "NO"); // 添加framework, admob需要的所有framework
pbxProject.AddFrameworkToProject(target, "AdSupport.framework", false);
pbxProject.AddFrameworkToProject(target, "EventKit.framework", false);
pbxProject.AddFrameworkToProject(target, "EventKitUI.framework", false);
pbxProject.AddFrameworkToProject(target, "CoreTelephony.framework", false);
pbxProject.AddFrameworkToProject(target, "StoreKit.framework", false);
pbxProject.AddFrameworkToProject(target, "MessageUI.framework", false); //保存到本地
File.WriteAllText(projPath,pbxProject.WriteToString());
}
}
unity admob的更多相关文章
- Unity3D添加Admob广告
重要提示: 貌似play2014年8月之后不会再支持admob的SDK方式的广告了.github上已经有了 Unity AdMob (Google Play Services) ...
- Unity3d开发集成Google Admob广告增加收入
在Unity游戏中植入广告是Unity 游戏产品增加收入的一种重要方式,常用的广告有谷歌Admob,百度ssp,腾讯广点通,unity公司的unityads等等,而使用的最多的应该属于谷歌Admob, ...
- unity接入谷歌ADMob注意事项
应用不显示广告,可能是广告sdk 依赖项没有注册 dependencies { implementation fileTree(dir: 'bin', include: ['*.jar']) impl ...
- 【Unity与Android】02-在Unity导出的Android工程中接入Google Admob广告
我在上一篇文章 [Unity与Android]01-Unity与Android交互通信的简易实现) 中介绍了Unity与Android通讯的基本方法. 这一篇开始进入应用阶段,这次要介绍的是如何在An ...
- Unity3D IOS IPhone添加Admob的方法
原地址:http://dong2008hong.blog.163.com/blog/static/4696882720140403119293/ 首先阅读官方文档https://developers. ...
- Unity3d Android程序嵌入Admob广告条
原地址:http://dong2008hong.blog.163.com/blog/static/4696882720140441353482/ Seems like using a simple A ...
- 2017年Unity游戏开发视频教程(入门到精通)
本文是我发布的一个Unity游戏开发的学习目录,以后我会持续发布一系列的游戏开发教程,都会更新在这个页面上,适合人群有下面的几种: 想要做独立游戏的人 想要找游戏开发相关工作的人 对游戏开发感兴趣的人 ...
- iOS平台添加Google Admob -1/2(Unity3D开发之七)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=567 Unity调用iOS还是非 ...
- iOS平台添加Google Admob -2/2(Unity3D开发之八)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=572 在上一篇文章中主要是编写了 ...
随机推荐
- MySQL 删除重复数据实例
如何删除重复数据 业务场景:删除评论表中对同一订单同一商品的重复评论,只保留最早的一条. 查看是否存在对于同一订单同一商品的重复评论. SELECT order_id,product_id,COUNT ...
- MySQL 设置密码有效时间
mysql> alter user 'xuaiqi'@'%' PASSWORD EXPIRE INTERVAL 30 DAY;
- Java程序---多数字求和
题目: 编写一个程序,此程序从命令行接收多个数字,求和之后输出结果. 设计思想: 1.记录要输入的数字的个数n 2.建立一个长度为n的数组存储输入的数字 3.累加求和并输出结果 注:此程序中应用了Sc ...
- 更优雅的使用Git
JavaScript之禅已经发过两篇 Git 相关的文章了.一篇文章,教你学会Git :浅显易懂,如果你还不会 Git 可以先去看看.Git的奇技淫巧 :介绍了一些实用的操作.今天为大家带来第三篇,如 ...
- MicroMsg.SDK.WXApiImplV10: register app failed for wechat app signature check failed
支付时: IWXAPI wxapi = WXAPIFactory.createWXAPI(this,WXAPPID,true); 替换为 IWXAPI wxapi = WXAPIFactory.cre ...
- Vue学习记录(二)
一.指令 指令是Vue.js中一个重要的特性,主要提供了一种机制将数据的变化映射为DOM行为.当数据变化时,指令会依据设定好的操作对DOM进行修改,这样就可以只关注数据的变化,而不用去管理DOM的变化 ...
- 【Linux】【Jenkins】Jenkins安装和配置等
Jenkins配置详解: http://lib.csdn.net/article/git/18342 Jenkins介绍 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功 ...
- Git工作流基础简介【与产品经理.jpg】
基于可视化界面的操作可使用Sourcetree这个软件进行操作. 下面将描绘的几个命令主要是 git init git add git commit git status git reset HEAD ...
- 31.网站数据监控-2(scrapy文件下载)
温州数据采集 这里采集网站数据是下载pdf:http://wzszjw.wenzhou.gov.cn/col/col1357901/index.html(涉及的问题就是scrapy 文件的下载设置,之 ...
- 14.纯 CSS 创作一种侧立图书的特效
原文地址:https://segmentfault.com/a/1190000014751037 HTML代码: <div class="books"> <div ...