----更新:2015-10-22

今天在unity里集成讯飞语音听写的iOS sdk,结果发现前面集成domob广告的方法搞复杂了。

其实,直接把UnityViewControllerBase当做sdk示例demo中的viewController,把代码全部照搬过来即可。

唯一的问题就是如何将UnityViewControllerBase的成员函数XXXFunction做成全局函数供unity调用。

一个非常简单的方法就是定义一个全局变量:

UnityViewControllerBase* _unityViewControllerBase=NULL;

(oc定义全局函数的方法与c++中一致,就是在.m中定义变量,并在.h中extern)

然后在UnityViewControllerBase的各方法中都添加一句:

_unityViewControllerBase=self;

然后就可以做出全局函数:

void native_callXXXFunction(){

  [_unityViewControllerBase XXXFunction];

}

另外注意的是UnityViewControllerBase的viewDidLoad和viewDidUnload不会被调用,可用其viewDidAppear和viewDidDisappear代替。

----原帖

有些广告平台有unity插件版的iOS sdk,有的只有object-c版的iOS sdk。

以多盟(domob)为例,官网上有unity插件,但是是for unity 4.x的,感觉有点儿老了,所以没采用,直接用的它的object-c的sdk。

本来集成广告sdk没啥难的,只不过因为我不懂oc,所以遇到点儿问题,折腾一阵解决了,记一下:

首先下载它的sdk和sample(其中sample在官网上找了半天没找到,后来发现原来在它的github上,(刚才发现在添加应用的最后一步会给出demo下载))。

然后就是把sdk添加到xcode中,并把需要的framework都添加上。编译一下看看能不能通过。

接下来按sample和文档的做法是:

定义一个DMInterstitialUIViewController,继承自DMInterstitialAdControllerDelegate。然后其中添加一个DMInterstitialAdController*_dmInterstitial成员变量。

接着再在DMInterstitialUIViewController的初始回调中初始化_dmInterstitial,并实现继承自DMInterstitialAdControllerDelegate的接口,以及showAd成员函数,就ok了。

如果是对于纯iOS工程,这样确实就可以了,但对于unity导出的xcode工程,由于showAd函数要在unity脚本中调用,所以需要封装成全局函数,所以_dmInterstitial就不能作为DMInterstitialUIViewController的成员函数了,而需要是一个全局单例。

只需把DMInterstitialUIViewController实现中的_dmInterstitial全部用这个全局单例替换就ok了。

对于unity导出的xcode工程,可以用UnityViewControllerBase充当DMInterstitialUIViewController。但要注意经测试UnityViewControllerBase的viewDidLoad和viewDidUnload不会被调用,可用其viewDidAppear和viewDidDisappear代替。

unity, 集成iOS广告sdk注意事项的更多相关文章

  1. unity 引入 ios 第三方sdk

    原地址:http://blog.csdn.net/u012085988/article/details/17785023 unity开发中ios应用时,要想成功引入第三方sdk,首先得知道c#与obj ...

  2. 【Unity游戏开发】SDK接入与集成——小白入门篇

    一.简介 通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感 ...

  3. 集成IOS 环信SDK

    集成IOS SDK 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. 下载SDK 通过Cocoapods下载地址 不包含实时语音版本SDK(EaseMobC ...

  4. Unity 下集成第三方原生 SDK,以极光厂商通道为例

    Unity中集成三方SDK有两种方式: Unity 项目开发中时常有集成 Android 第三方 SDK 的需求,比如接入第三方推送,分享等功能.而第三方 SDK 的集成文档提到的往往是基于原生 An ...

  5. 【Unity游戏开发】接入UWA_GOT的iOS版SDK以后无法正常出包

    一.正文 问: RT,最近有看到UWA_GOT工具新增了iOS版本的支持,于是下载了最新的工具包进行了接入测试.是按照文档直接将UWA_GOTv2.0.1_iOS.unitypackage导入进了Un ...

  6. unity集成openinstall流程

    目的 1.Unity集成openinstall sdk? 最近在使用一个叫openinstall的SDK,通过它实现免填邀请码的功能,集成到unity游戏开发中.对App安装流程的优化,尤其是免填写邀 ...

  7. 适用于 Flutter 的 Google 移动广告 SDK 正式版现已发布

    作者 / Zoey Fan,Flutter 产品经理 应用变现有多种方法: 通过实体企业的店面接受付款.提供订阅或应用内购买,或者直接在应用中投放广告.经过六个月的 beta 测试期,我们很高兴能够推 ...

  8. fir.im Weekly - 从 iOS 10 SDK 新特性说起

    从 iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 的分屏多任务特性,今年的 WWDC iOS 10 SDK ...

  9. cocos2d-x + Lua接入iOS原生SDK的实现方案[转]

    相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我 ...

随机推荐

  1. Linux查看内核信息或系统信息

    先说说为什么会写这个.这是我去面试的时候面试官问的一个问题,我感觉是一个普遍会被问到的问题.为了让我自己记住,也便于收集下Linux运维方向考官的题目. 第一,查看内核信息 cat /proc/ver ...

  2. 【动态规划】【记忆化搜索】CODEVS 1011 数的计算 2001年NOIP全国联赛普及组

    设答案为f(n),我们显然可以暴力地递归求解: f(n)=f(1)+f(2)+……+f(n/2). 但是n=1000,显然会超时. 考虑状态最多可能会有n种,经过大量的重复计算,所以可以记忆下来,减少 ...

  3. 十. 图形界面(GUI)设计10.菜单

    有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...

  4. BUG:Yii登录时 101 net::ERR_CONNECTION_RESET

    Bug描述:YII web入口登录,无法登录一直等待,最终重定向 原因:设置的默认路由DefauRoute中的控制器中有错误,导致无法跳转找指定的路由规则 解决方案:这就多亏了SourceTree了, ...

  5. 记一次深刻的教训-----将mat数据转化为SequenceFile

    深刻的体会就是,“java.lang.NullPointer.Exception”就是空指针异常可能是由于数组部分元素未被初始化引起的. 1)使用jmatio将mat数据转化为SequenceFile ...

  6. iOS 文字渐变色

    // 创建UILabel UILabel *label = [[UILabel alloc] init]; label.text = @"我是渐变的label"; [label s ...

  7. 下载谷歌浏览器(Chrome)扩展离线安装包crx文件最简单的方法

    转:http://alyzq.com/?p=627 如果不会使用,请看下面的操作步骤 引言(可以不看): 下面介绍一下,下载谷歌浏览器(Google Chrome)扩展的离线安装包crx文件最简单的方 ...

  8. 【sql】关联查询+表自关联查询

    表: 经销商 dealer   字段 uid  parent_uid  name 联系人 contact  字段 uid  dealer_id  contact_main 需求: 想要查询到经销商的信 ...

  9. ztree jquery 树 控件

    插件地址:http://www.ztree.me 数据:[{"id":1,"pId":-1,"name":"根目录"}, ...

  10. crontab 写入文件目录

    一.crontab 目录 [root@next-cloud-server etc]# cd /var/spool/cron/ [root@next-cloud-server cron]# ls roo ...