注意: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的说明的更多相关文章

  1. Unity中的 原生插件/平台交互 原理

    http://blog.csdn.net/u010019717/article/details/78451660 声明:  内容摘录自:  http://gad.qq.com/article/deta ...

  2. 重大升级!灵雀云发布全栈云原生开放平台ACP 3.0

    云原生技术的发展正在改变全球软件业的格局,随着云原生技术生态体系的日趋完善,灵雀云的云原生平台也进入了成熟阶段.近日,灵雀云发布重大产品升级,推出全栈云原生开放平台ACP 3.0.作为面向企业级用户的 ...

  3. 终极套娃 2.0|云原生 PaaS 平台的可观测性实践分享

    某个周一上午,小涛像往常一样泡上一杯热咖啡 ️,准备打开项目协同开始新一天的工作,突然隔壁的小文喊道:"快看,用户支持群里炸锅了 -" 用户 A:"Git 服务有点问题, ...

  4. 容联云通讯_提供网络通话、视频通话、视频会议、云呼叫中心、IM等融合通讯能力开放平台。

    容联云通讯_提供网络通话.视频通话.视频会议.云呼叫中心.IM等融合通讯能力开放平台. undefined

  5. Android 平台代号、版本、API 级别和 NDK 版本

    代号.标记和细分版本号 简要来说,Android 的开发是围绕着版本系列进行的,这些版本使用美味的点心名字(按字母顺序)作为代号. 平台代号.版本.API 级别和 NDK 版本 为方便起见,代号与以下 ...

  6. ASP.NET MVC Web API 学习笔记---第一个Web API程序---近来很多大型的平台都公开了Web API

    1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过 ...

  7. Java生鲜电商平台-统一格式返回的API架构设计与实战

    Java生鲜电商平台-统一格式返回的API架构设计与实战 说明:随着互联网各岗位精细化分工的普及,出现了很多的系统架构设计,比如常见的前后端分离架构,后端提供接口给前端,前端根据接口的数据进行渲染,大 ...

  8. 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾

    7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...

  9. 灵魂画师,在线科普多云平台/CMP云管平台/中间件/虚拟化/容器是个啥

    原创: 灵魂工作室 速石科技 经常碰到有人问: 你们是云管吗? 你们和CMP多云管理平台有什么区别? 你们这个多云平台到底是个啥? emmmmm,问题还挺不好回答. 为了说清楚这些问题,但又不希望你们 ...

随机推荐

  1. React组件自适应窗口宽高

    很多时候我们需要组件能够根据窗口变化改变宽高,有时候可以使用css,有时候需要随数据调整则使用js计算. 比如说,当我们在页面中放置一个iframe时,我们希望它的宽高随着其父元素or窗口的变化而变化 ...

  2. React动态import()

    React动态import() react-router@v4代码分离,推荐的import().这里分享webpack配置和使用方法. 首先安装两个必须的包 cnpm i react-loadable ...

  3. 【线性基】bzoj2322: [BeiJing2011]梦想封印

    线性基的思维题+图常见套路 Description 渐渐地,Magic Land上的人们对那座岛屿上的各种现象有了深入的了解. 为了分析一种奇特的称为梦想封印(Fantasy Seal)的特技,需要引 ...

  4. JWT的使用流程

    JWT的实现原理 一篇文章告诉你JWT的实现原理 发布于 3 个月前 作者 axetroy 3097 次浏览 来自 分享 在使用 JWT 的时候,有没有想过,为什么我们需要 JWT?以及它的工作原理是 ...

  5. 初识Mysql之基本简单语法总结

    一.  DDL(data definition language)语句:数据定义语言. 这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用语句关键字:create.drop.alter ...

  6. Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决

    大意是Log4jConfigListener在获取webapp.root值时,被后一context的值替换掉了,所以要在各个项目的web.xml中配置不同的webAppRootKey值,随即在其中一个 ...

  7. c++IDE

    暂时使用Code::Blocks 16.01. 因为之前没有c++编译器,所以去官网选择安装codeblocks-16.01mingw-setup.exe 然后settings>Compiler ...

  8. IAR生成bin,HEX文件

    1.生成bin,hex文件 options->output converter->output format binary:.bin文件:intel extended:hex文件. 生成的 ...

  9. Divisibility by 25 CodeForces - 988E

    You are given an integer nn from 11 to 10181018 without leading zeroes. In one move you can swap any ...

  10. hdu-2553 N皇后问题(搜索题)

    在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有多少种合法的放置方法. Inpu ...