unity3d各平台通讯原生的平台API的说明
注意:unity3d与原生代码的调用需要pro版本,此点注意了。
一、IOS平台,由于IOS平台的原生应该是objectC,所以通讯起来非常的简单,
1、原生代码调用u3d代码:
1.1、在Xcode项目上调用unity3d自带的dll框架,使用其中的发消息命令(UnitySendMessage)就可以向u3d的代码里发送事件消息了,这里第一个参数便是u3d约定的gameObject对象名和函数名,第三个参数是额外的消息参数。
1.2、然后是接收端,也就是unity3d这里的代码 ,这里需要在unity3d那里定义一个对象,对象的名称是xcode那里发消息事件所约定好的,然后在gameObject上挂上一个脚本,这里的脚本名,也就是类名无关系,因为发消息只认函数名不认类名的,函数名要定义成静态的方法,这样才能被原生的代码所找到,然后就完成了整个事件的通讯了
2、U3D调用原生代码
2.1、在Xcode项目使用DllImport和extern关键字定义好一个静态的方法,这个方法到时供u3d所调用
2.2、在u3d项目里使用extern c方法来调用xcode项目的方法,这里的方法名要与xcode里的方法名保持一致,当然此方法也必须是静态的。
具体的官方说明:
http://docs.unity3d.com/Documentation/Manual/PluginsForIOS.html
二、android的原生代码通讯:
1、如果迩是使用NDK开发那就简单了,其实和xcode的object-c差不多,因为ndk是使用c++开发的所以类c之间和通讯都差不多。
2.1、但是基于目前的公开android的api,多数为java语言的,这部分就比类c语言通讯复杂得多,讲解这部分狠麻烦,好在unity公司提供了一个样例在asset store里可以参考,另外unity公司也提供了相关的api来供java语言和c#语言的通讯,这几个类在unity3d的官方脚本都可以找到,都是以android打头的类,专司这档事,这样子利用这些API使得java与c#之间的通讯可以在一定程度上简化。另外一个android通讯
2.2、另外一个android的难点在于AndroidManifest.xml,这个文件相信搞过android开发的都弄过,这里是配置一些android原生属性的一些方法,这里的问题在于,当迩有几个android插件的时候,请把他们的androidManifest.xml的数据合并成一个文件,不然产生的配置会发生冲突
这里是官方讲解android与unity3d之间通讯的页面:http://docs.unity3d.com/Documentation/Manual/PluginsForAndroid.html
这里有一个google play原生功能调用的示例,可以从asset store这里下得来观摩,这里有关于unity代码的源代码和java端的源代码之间的互相调用,地址是https://www.assetstore.unity3d.com/#/content/3190
unity3d各平台通讯原生的平台API的说明的更多相关文章
- Unity中的 原生插件/平台交互 原理
http://blog.csdn.net/u010019717/article/details/78451660 声明: 内容摘录自: http://gad.qq.com/article/deta ...
- 重大升级!灵雀云发布全栈云原生开放平台ACP 3.0
云原生技术的发展正在改变全球软件业的格局,随着云原生技术生态体系的日趋完善,灵雀云的云原生平台也进入了成熟阶段.近日,灵雀云发布重大产品升级,推出全栈云原生开放平台ACP 3.0.作为面向企业级用户的 ...
- 终极套娃 2.0|云原生 PaaS 平台的可观测性实践分享
某个周一上午,小涛像往常一样泡上一杯热咖啡 ️,准备打开项目协同开始新一天的工作,突然隔壁的小文喊道:"快看,用户支持群里炸锅了 -" 用户 A:"Git 服务有点问题, ...
- 容联云通讯_提供网络通话、视频通话、视频会议、云呼叫中心、IM等融合通讯能力开放平台。
容联云通讯_提供网络通话.视频通话.视频会议.云呼叫中心.IM等融合通讯能力开放平台. undefined
- Android 平台代号、版本、API 级别和 NDK 版本
代号.标记和细分版本号 简要来说,Android 的开发是围绕着版本系列进行的,这些版本使用美味的点心名字(按字母顺序)作为代号. 平台代号.版本.API 级别和 NDK 版本 为方便起见,代号与以下 ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序---近来很多大型的平台都公开了Web API
1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过 ...
- Java生鲜电商平台-统一格式返回的API架构设计与实战
Java生鲜电商平台-统一格式返回的API架构设计与实战 说明:随着互联网各岗位精细化分工的普及,出现了很多的系统架构设计,比如常见的前后端分离架构,后端提供接口给前端,前端根据接口的数据进行渲染,大 ...
- 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾
7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...
- 灵魂画师,在线科普多云平台/CMP云管平台/中间件/虚拟化/容器是个啥
原创: 灵魂工作室 速石科技 经常碰到有人问: 你们是云管吗? 你们和CMP多云管理平台有什么区别? 你们这个多云平台到底是个啥? emmmmm,问题还挺不好回答. 为了说清楚这些问题,但又不希望你们 ...
随机推荐
- QQ 发送邮件
之前也发布过一篇QQ发邮件的,后来那种方法在阿里云服务器中报错了,查了好久才发现,是阿里云的服务器把 25 端口 给封杀了.现在重新做了个功能. public static string UserNa ...
- Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程
Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的gru ...
- 【线段树分治 线性基】luoguP3733 [HAOI2017]八纵八横
不知道为什么bzoj没有HAOI2017 题目描述 Anihc国有n个城市,这n个城市从1~n编号,1号城市为首都.城市间初始时有m条高速公路,每条高速公路都有一个非负整数的经济影响因子,每条高速公路 ...
- pandas关联mysql并读写数据库
1.代码读写mysql,必须安装关联mysql的工具 操作如下命令: sudo apt-get install mysql-server mysql-clientsudo apt-get instal ...
- H5(一)H5与HTML、XHTML的不同
一.基本概念 html:超文本标记语言 (Hyper Text Markup Language) xhtml:可扩展超文本标记语言,是一种置标语言,表现方式与超文本标记语言(HTML)类似,不过语法上 ...
- C# WPF 粘贴板记录器
工作学习中需要搜索很多资料,有建立文档对遇到过的问题进行记录,但是一来麻烦,二来有些当时认为不重要的事情,也许一段时间后认为是重要的,需要记录的,却又一时找不到,浪费时间做重复的事情.正好借着这个机会 ...
- java做http接口
问题描述 我要对外提供一个http接口给别人调用...但是我不知道用java怎么做这个接口.请大家详细给我讲讲.从开发到如何发布到服务器.谢谢了 解决方案 如果你这个很简单的话,而且数量也很少,建议直 ...
- Linux集群之高可用负载均衡lvs+keepalived
LVS简介 LVS介绍 LVS是Linux Virtual Server的缩写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,属于4层负载均衡 ipvs和ipvsadm的关系 我们使用配置LV ...
- vss安装注意点
一:装好IIS 二:win7用管理员权限打开 server configuration 才能打上勾 三:用计算机名,不要用 Ip地址
- 《Scrum实战》第1次课课后任务
1.必做任务:从知行角度总结T平台 从知行角度总结T平台 头(知识,学习) 做得好的 宣贯会 引入敏捷思想 敏捷宣言 敏捷原则 质量风险前移原则 引入最佳实践 包括了XP的大部分实践 不足 项目管理框 ...