android混合开发之unity
2017-03-23 21:14
483 查看
先对比 US(unity script)与C#,先说变量问题,如果使用Object来处理var的问题,不可避免频繁的装、拆箱。
US脱胎与.NET, 不可避免C#可能更适合开发
unity跨平台 C#运行时的动态编联
Unity与Android之间相互调用
准确来说,应该是两个VM之间的相互调用:mono/il2cpp 和 dalvik/art,分别运行Unity应用和Android应用,这两个虚拟机运行在同一个进程中。
为了方便起见,后文将前者称为Unity,后者称为Android
Unity调用Java方法
UnityEngine提供了两个类来分别访问Java的实例对象以及类对象:
AndroidJavaObject与AndroidJavaClass
前者表示java.lang.Object或其子类,后者表示java.lang.Class。
Android调用Unity方法
在Android中,有两种方式调用Unity的方法:
通过AndroidJavaProxy进行无感知调用
通过com.Unity3D.player.UnityPlayer.UnitySendMessage方法显式调用
AndroidJavaProxy:AndroidJavaProxy常用于在Unity中实现Java的interface,比如有这么一个Java interface:
如何构建Unity-Android混合项目
本节将介绍如何使用Gradle来构建混合了不同平台项目的工程。
以一个SDK类型的工程为例,我们来看一下工程的内容:
Android SDK
Android Demo (快速调试)
Unity Bridge (封装Android SDK)
Unity Demo (演示并调试Unity Bridge)
目录结构如下:
RootDir (工程根目录)
|
|-- Android (Android相关模块)
| |-- Demo_Android
| |-- SDK_Android
|
|-- Unity (Unity相关模块)
|-- Demo_Unity
|-- Bridge_Unity
其中:
Android的两个模块可以用Android gradle插件进行编译与打包
Bridge_Unity可以用msbuild(windows)或者xbuild(Linux)构建
Demo_Unity需要购买了Unity Pro之后才能自动化构建。
接下来,我们将在各自模块的构建脚本中添加构建任务,分别构建这些模块,最后,在工程的根构建脚本中,创建自动化的构建脚本。
AndroidJavaObject.Call的实现
参考连接 Unity Android Plugin开发指南
US脱胎与.NET, 不可避免C#可能更适合开发
unity跨平台 C#运行时的动态编联
Unity与Android之间相互调用
准确来说,应该是两个VM之间的相互调用:mono/il2cpp 和 dalvik/art,分别运行Unity应用和Android应用,这两个虚拟机运行在同一个进程中。
为了方便起见,后文将前者称为Unity,后者称为Android
Unity调用Java方法
UnityEngine提供了两个类来分别访问Java的实例对象以及类对象:
AndroidJavaObject与AndroidJavaClass
前者表示java.lang.Object或其子类,后者表示java.lang.Class。
Android调用Unity方法
在Android中,有两种方式调用Unity的方法:
通过AndroidJavaProxy进行无感知调用
通过com.Unity3D.player.UnityPlayer.UnitySendMessage方法显式调用
AndroidJavaProxy:AndroidJavaProxy常用于在Unity中实现Java的interface,比如有这么一个Java interface:
如何构建Unity-Android混合项目
本节将介绍如何使用Gradle来构建混合了不同平台项目的工程。
以一个SDK类型的工程为例,我们来看一下工程的内容:
Android SDK
Android Demo (快速调试)
Unity Bridge (封装Android SDK)
Unity Demo (演示并调试Unity Bridge)
目录结构如下:
RootDir (工程根目录)
|
|-- Android (Android相关模块)
| |-- Demo_Android
| |-- SDK_Android
|
|-- Unity (Unity相关模块)
|-- Demo_Unity
|-- Bridge_Unity
其中:
Android的两个模块可以用Android gradle插件进行编译与打包
Bridge_Unity可以用msbuild(windows)或者xbuild(Linux)构建
Demo_Unity需要购买了Unity Pro之后才能自动化构建。
接下来,我们将在各自模块的构建脚本中添加构建任务,分别构建这些模块,最后,在工程的根构建脚本中,创建自动化的构建脚本。
AndroidJavaObject.Call的实现
参考连接 Unity Android Plugin开发指南
相关文章推荐
- unity与原生android混合开发
- Android Unity混合开发之Unity调用Android方法的坑
- Android和Unity混合开发——Activity和Unity脚本交互和信息传递
- Android和Unity混合开发——解决方案
- android+unity游戏开发基础之场景的切换 ***
- unity游戏开发 发布android 游戏 (一)
- android+unity游戏开发基础之场景的切换
- 使用Unity进行Android游戏开发
- android+unity游戏开发之常用的属性
- Android编程方式开发UI界面和XML文件与Java代码混合控制UI界面
- android+unity游戏开发之求物体间的距离
- android+unity游戏开发之我们第一个脚本
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)
- 1.关于Unity -Vuforia -Android 开发 ,平台的搭建(极品菜鸟完整版)
- 【Android开发学习44】android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- unity游戏开发 发布android 游戏 (一)
- Android客户端 — native+html5移动应用混合开发
- Orubase:为Windows Phone、Android和iOS平台开发混合本地手机应用程序
- 强大的游戏开发工具Unity3D推出2D开发工具,unity将混合3D与2D开发