原地址:http://bbs.18183.com/thread-456979-1-1.html

本帖最后由 啊,将进酒 于 2014-2-27 11:17 编辑

“授人以鱼,不如授人以渔”,以UNITY3D调用iOS版的91SDK为例,利用C# / C / OBJ-C 交互原理,本文将详细介绍UNITY3D与iOS之间交互的解决方案。
 
首先,打开XCODE新建一个空项目,参照91SDK开发文档将91SDK引入并进行环境配置。
配置完毕后创建一个名为“LsSdkConector”的OBJ-C CLASS文件。完毕后,当前项目应如图:
<ignore_js_op>

 
LsSdkConector.h文件我们不用去改动它。保持原样即可。
<ignore_js_op>

 
接下来我们开始在LsSdkConector.m 文件中制作C接口 和 调用91SDK的iOS方法。
引入必要的头文件后,我把该文件的代码分为3个区域。
代码A区域用来定义C接口必须要实现的API。
<ignore_js_op>

 
代码B区域用来实现A区域代码的接口,以及要调用91SDK的iOS方法,直白点说,代码B区域写的方法就是用来调用代码C区域的方法。
<ignore_js_op>

 
代码C区域用来实现真正的91SDK的OBJ-C方法。
<ignore_js_op>

 
大家在自己的项目中:
代码A区域作为可直接复制套用;
代码B区域可编写工具方法和调用iOS的方法;
代码C区域编写91SDK的iOS方法,你需要什么API就写什么,写完了在代码B区域添加C的调用方法即可。
 
在编写代码中,有的人可能会问OBJ-C中有的API有回调,UNITY是如何知道OBJ-C回调结束呢?
答:OBJ-C调用UNITY的API,可以用“UnitySendMessage”的方法 ,具体使用方法 看UINTY的使用帮助。
 
这样我们完成了C接口和91SDK的API代码,接下来我们做UINITY3D方面的代码处理。
我们在UNITY3D项目的ASSETS下新建Code文件夹与Plugins文件夹。
<ignore_js_op>

将LsSdkConector.h 和 LsSdkConector.m 复制到 Plugins 文件夹中,并在 Code文件夹中编写我们的UNITY调用OBJ-C 方法。
新建C#文件“LsSdkConector.cs”,这个文件中,我们将代码分为A、B两区。
 
代码A区编写C语言的接口,这里的接口方法要对应”LsSdkConector.m”中代码区域B的方法名称。
<ignore_js_op>

 
代码B区编写UNITY3D调用OBJ-C的方法,这里的代码注意用来实现UNITY3D之间的方法调用,C#的方法内调用C的方法。
<ignore_js_op>

 
这样,UNITY3D接入91SDK-iOS版的解决方案到此完成。
<ignore_js_op>

 
下面,我们测试一下这个解决方案是否管用。
在Code文件夹中新建 “LisiTest.cs”文件,编辑如下代码:
<ignore_js_op>

并将该C#文件拖至Main Camera 绑定。
 
UNITY3D转iOS项目必须要设置BundleIdentifier,截图:
<ignore_js_op>

 
点击“Build”按钮创建iOS项目,打开该iOS项目,将LsSdkConector.h 和 LsSdkConector.m拖入iOS项目的Classes文件夹中
<ignore_js_op>

 
按照91SDK文档中环境配置章节,对SDK进行引用,添加系统库,做环境配置。
打包到iOS设备前,检查一下iOS项目的配置,注意OBJC要写在第1列,还有要注意大小写。
<ignore_js_op>

<ignore_js_op>

 
选择使用iOS设备打包,你会发现UNITY3D调用iOS 成功了!!
 
本文要告诉大家的是Unity3D与iOS交互的解决方案,代码规范问题不是本文重点,比如91SDK的初始化在SDK文档上推荐是在AppDelegate的文件中进行初始化。
 
附件: <ignore_js_op> 文中提及文件.zip (2.25 KB, 下载次数: 401)
Unity3D与Android之间的交互可以参考我的另一篇文章:《实操UNITY3D接入91SDK安卓版》

 

转载于:https://www.cnblogs.com/123ing/p/3703715.html

UNITY3D与iOS交互解决方案相关推荐

  1. Unity3d与iOS交互开发—接入平台SDK必备技能

    开发 手机游戏都知道,你要接入各种平台的SDK.那就需要Unity3d与iOS中Objective-C的函数有交互,所以你就需要用到如下内容: 一.Unity3d  To  iOS: 1.创建一个C# ...

  2. 【腾讯Bugly干货分享】手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2bY7A6ihK9IMcA0bOFyB-Q 导语 xL ...

  3. android ios web兼容,js与android iOS 交互兼容

    js与android iOS 交互兼容 在Android与js交互方面还是要比iOS方便很多,而UIWebView只暴漏出- (BOOL)webView:(UIWebView *)webView sh ...

  4. 手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    转载:https://mp.weixin.qq.com/s/2bY7A6ihK9IMcA0bOFyB-Q 导语 xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾 ...

  5. android 发送语音功能和ios交互格式aac

    android 发送语音功能和ios交互格式aac 看到标题大家应该都知道了,本文主要实现android发送语音功能 前面几篇博客写的webSocket,notifaction和service,当然了 ...

  6. 苹果发邀请函,月底或发新iPad;iPhone XR今日开启预购;阿里发布分布式语音交互解决方案 | 雷锋早报...

    阿里云IoT联合达摩院发布分布式语音交互解决方案 10月18日,阿里云IoT联合阿里巴巴达摩院正式发布分布式语音交互解决方案,该方案将集成双方的平台连接能力和语音交互技术,以声控的形式改造家居环境. ...

  7. Unity3D for iOS初级教程:Part 2/3

    Unity3D for iOS初级教程:Part 2/3 这篇教材是来自教程团队成员 Christine Abernathy, 他是Facebook的开发支持团队的工程师. 欢迎来到Unity3D f ...

  8. H5页面与ios交互返回上一级

    H5页面与ios交互时,返回上一级不兼容,安卓兼容 实现方法  (需要加return false) <a href="#" onclick="javascript: ...

  9. 语音识别热词_出门问问 TWS 耳机语音交互解决方案

    随着芯片.算法商在技术及应用方面的演进,尤其是连接.降噪方向的重大突破,越来越多的手机及耳机厂商推出了自家功能丰富.交互舒适的 TWS 耳机. 近日,出门问问新品发布会上推出的 TicPods 2 系 ...

最新文章

  1. 二叉树的前序,中序,后序的递归、迭代实现
  2. 2020年AI将会如何发展?吴恩达、周志华、Yann LeCun等大神对2020年 AI 发展趋势的预测的预测...
  3. 使用 Redis 实现一个轻量级的搜索引擎,牛逼啊 !
  4. ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证})
  5. Hadoop之InputFormat数据输入详解
  6. nbiot开发需要掌握什么_什么是前端工程师?前端工程师需要掌握什么技能?
  7. 【Top1】Tudou.com首页网页设计的制作方法
  8. Python实现GitBook工具
  9. 探究call 和 apply 的原理
  10. IDEA打包jar包(打包可运行jar,外部引用jar包版)
  11. 一个逐页抓取网站小说的爬虫
  12. 链接mysql_JavaScript学习笔记(二十四)-- MYSQL基础操作
  13. 疯狂Android讲义
  14. discuz定时采集批量自动发帖
  15. The exception was not handled due to missing onError handler in the subscribe() method call
  16. win10防火墙打不开,设置是灰色的、服务列表更改启动方式也是灰色的,怎么办?
  17. 2018中南大学 计算机考研分数,2018年中南大学考研复试分数线
  18. 说说C/C++编译的那些事儿
  19. 杨桃文案:卖杨桃水果怎样写文案发朋友圈,水果店杨桃活动文案
  20. 输了腾讯赢了阿里:凭借27天超强度复习Java核心知识+面试神技,三面阿里斩获P6岗offer(飞猪事业部)

热门文章

  1. javascript arguments
  2. 命令行下使用curl,采集数据遇到的问题。
  3. 使用 Visual Studio 编译 wget 为库文件
  4. 经桥科技与湖南文化艺术产业集团合力打造“网乐潇湘”
  5. gcc/g++ 链接库的编译与链接
  6. python中列表,元组,字符串如何互相转换
  7. cnn验证码识别代码_中文项目:快速识别验证码,CNN也能为爬虫保驾护航
  8. SAS学习︱逻辑库、数据集创建与查看、数据库链接(SAS与R的code对照)
  9. oracle数据库升级失败,Oracle 11.2.0.1 rac 升级失败后,数据库降级方案(flashback database)...
  10. axis2 wsdl2java 使用方式