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,问题还挺不好回答. 为了说清楚这些问题,但又不希望你们 ...
随机推荐
- Clang提供的办法
1.方法弃用警告 #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarati ...
- 初探es6
es6环境 现在的JavaScript 引擎还不能完全支持es6的新语法.新特性.所以要想在页面中直接使用,是会报错的,这时候就需要使用babel将es2015的特性转换为ES5 标准的代码. 1.全 ...
- Vue路由跳转到新页面时 默认在页面最底部 而不是最顶部 的解决
今天碰到一个问题 vue路由跳转到新的页面时会直接显示页面最底部 正常情况下是显示的最顶部的 而且好多路由中不是全部都是这种情况 折腾好长时间也没解决 最后在网上找到了解决办法 其实原理很 ...
- HTTP-常用配置
前言 这篇主要介绍HTTP服务程序环境 可能有一些介绍不到,博主能力有限,欢迎大神来纠正改进 HTTP协议从http/0.9到如今的http/2.0中间发生了很大的改变,现在主流的事http/1.1 ...
- Robot Framework user guide
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html
- Java求字符串中出现次数最多的字符
Java求字符串中出现次数最多的字符 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51933611 Java ...
- debian7安装icedove
stable --icedove --esr $ cat /etc/apt/sources.list | grep "deb http://security.debian.org/ whee ...
- Python虚拟机中的一般表达式(一)
在Python虚拟机框架这一章中,我们通过PyEval_EvalFrameEx看到了Python虚拟机的整体框架.而这章开始,我们将了解Python虚拟机是如何完成对Python的一般表达式的执行,这 ...
- 【Netty】Netty入门之WebSocket小例子
服务端: 引入Netty依赖 <!-- netty --> <dependency> <groupId>io.netty</groupId> <a ...
- LINQ to SQL和Entity Framework对比与关联
LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在于EF对数据库架构和我们查询的类型实行了更好的解耦.使用EF,我们查询的对象不再 ...