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,问题还挺不好回答. 为了说清楚这些问题,但又不希望你们 ...
随机推荐
- websocket 踩坑记录
ssh execute command error: can't connect str to butes ssh 发送下一次指令回传的是上一次指令的结果 ssh 始终停留在 root 目录内 ssh ...
- [LOJ] #2360. 「NOIP2016」换教室
期望DP #include<iostream> #include<cstring> #include<cstdio> #include<cctype> ...
- C#_接口基础学习
参考:https://www.cnblogs.com/hamburger/p/4681681.html
- 标准C++(3)重载
一.函数的重载 c++中同一作用域下能够定义同名的函数(这就叫重载),但必须满足如下要求: 1.函数的参数列表必须不同,可以使参数数量不同,也可以使参数的类型不同,甚至是参数的顺序不同. 2.函数的返 ...
- Thinkphp5的安装
很长没有码代码了,现在开始做这件事情的意义已经完全与以前不一样了.因为最近有相当长的一段休息时间,是个学习的好时间啊.之前接触过TP3.2,听说后来的版本有挺大的改动,因此呢,现在终于有时间可以好好的 ...
- Ubuntu下kaldi安装
该文章为博主原创,如若转载请注明出处:https://www.cnblogs.com/fengleixue/p/9482202.html 因公司业务需要需使用kaldi语音识别工具,现将kaldi环境 ...
- 如何使用jmeter做关联
1.适用场景 从上一个接口的返回值中获取值传递给下一个接口使用 2.添加JSON Extractor 在需求提取的参数上添加--后置处理器--JSON Extractor 从登录接口的返回值中取use ...
- DAOMYSQLI工具类
<?php //DAOMySQLI.class.php //完成对mysql数据库操作,单例模式 //开发类 //1. 定类名 //2. 定成员属性 //3. 定成员方法[查询,dml操作] f ...
- java的一些相关介绍(2013-10-07-163 写的日志迁移
java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, Jav ...
- matplotlib学习记录 三
# 绘制自己和朋友在各个年龄的女友数量的折线图 from matplotlib import pyplot as plt # 让matplotlib能够显示中文 plt.rcParams['font. ...