`

Unity3D调用Android接口

阅读更多
简介

有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如...

有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去编写Java代码,然后打包jar导入到Unity工程,然后通过Unity提供的调用Android接口的函数去调用jar包中的函数即可。

这里我们就介绍一下使用Unity实现手机震动效果



实现内容简要说明:

1.     Android提供jar文件,xml文件,res目录,libs目录

2.     通过AndroidJavaClass去调用Android函数



另外,这些功能只能在真机上运行!


具体实现:
Android部分

1.下载AndroidSDK(需要包含ADT编辑器的)

官方下载连接:http://developer.android.com/sdk/index.html





2      创建Android项目

菜单位置:File ->New->Android Application Project

创建过程中,只有一下这个界面的内容需要更改,其他的使用默认的就行
[img]

[/img]

生成后解决方案的目录如图
[img]

[/img]

3.     导入Unity相关jar

Jar目录:unity的安装路径\Editor\Data\PlaybackEngines\androidplayer\bin下的classes.jar

通过AddExternalArchives添加,如图:
[img]

[/img]

4.     导入jar后,就可以开始编辑相关的函数了,打开MainActivity
[img]

[/img]

添加unityActivity,使MainActivity继承UnityPlayerActivity,并把SetContentView函数删掉(不然到手机上启动程序的时候就会只看到一句HelloWorld),这里用一个比较函数Max作为例子,有参数,有返回值

5.     到这里,需要的函数已经写完,再修改一下xml文件
Xml文件在工程文件目录下,叫AndroidManifest.xml
[img]

[/img]

6.     接下来到处jar包
[img]

[/img]
[img]

[/img]
点击Export后选择Java目录下的Jar file,选择好路径之后按默认选项去到处jar文件即可


7.     到这里Android部分结束了


Unity部分

1.     设置PlayerSetting,要与Android的package对应上
[img]

[/img]

2.     在Assets目录下添加Plugins\Android目录,把Android的jar文件,res文件夹,libs文件夹,xml文件放入该目录
[img]

[/img]

3.     调用相关函数
[img]

[/img]
(注:初步了解这里的参数之所以填”com.unity3d.player.UnityPlayer”和”currentActivity”,是因为在生成jar文件的时候,已经指定了MainActivityclass继承UnityPlayerActivity,也在XML指定了MainActivity是Main class)


  • 大小: 38.7 KB
  • 大小: 43.9 KB
  • 大小: 87.9 KB
  • 大小: 39.7 KB
  • 大小: 140.7 KB
  • 大小: 41.1 KB
  • 大小: 22.7 KB
  • 大小: 43.6 KB
  • 大小: 15 KB
  • 大小: 42.9 KB
分享到:
评论

相关推荐

    Android和Unity3d互相调用的Demo

    Unity3D调用Android则需要利用Unity的插件系统。你需要编写Java代码作为Android插件,实现特定的接口,然后在Unity中通过DllImport导出这个插件。Unity会自动编译Java代码并与工程集成。调用时,通过Unity的...

    Unity3d调用Android新浪微博

    以上就是Unity3D调用Android版新浪微博的基本流程。在这个过程中,`Unity_36.unitypackage`可能包含了Unity3D项目的示例代码或资源,而`sinaMessage.zip`则可能是Android端的微博SDK或者插件源码。请根据实际情况...

    Unity3D教程:调用Android语音识别1

    在本篇Unity3D教程中,我们将探讨如何在Unity3D项目中调用Android设备的内置语音识别功能。首先,我们需要了解的是,Android系统已经集成了Google的语音识别服务,因此开发者无需额外安装第三方库即可实现语音识别。...

    Unity调用Android系统相册

    本知识点主要探讨如何利用Unity3D与Android原生接口交互,实现从Android相册选取图片并在Unity中进行处理。 首先,我们需要了解Unity与Android之间的交互原理。Unity提供了Java插件接口,允许我们通过C#脚本调用...

    unity3d调用原生安卓插件工具

    2. **Unity3D调用Android原生方法步骤**: - **创建Android Java库**:在Android Studio中创建一个新的Android项目,编写Java代码实现所需功能。 - **导出Java库**:将编译好的Java库(.aar或.jar文件)放入Unity...

    Unity3d调用手机相机拍照回传到U3D

    在Unity3D中,调用手机相机拍照并回传到Unity场景是一项常见的功能,尤其在开发AR(增强现实)或游戏应用时。本教程将详细解释如何实现这一过程。 首先,Unity3D本身并不直接支持调用设备的相机功能,但可以通过iOS...

    unity桥接调用Android方法,双端代码

    总结,Unity调用Android原生方法涉及多个层面,包括Unity的API使用、Android的JNI接口以及C/C++的编程。理解并熟练掌握这些知识点,能够帮助开发者充分利用Unity和Android各自的优点,实现更复杂、高效的游戏功能。...

    Unity3d Android Native Plugin

    这个技术允许我们通过Unity3D调用Android系统的底层功能,比如访问硬件传感器、优化图形处理或者集成特定的SDK。 首先,要理解Unity3D与Android原生代码的交互方式。Unity3D提供了一个名为"Plugins"的目录,用于...

    Unity3D在Android平台上的Sqlite库

    标题中的“Unity3D在...总的来说,Unity3D在Android平台使用SQLite涉及到原生库的集成、C#接口的编写、数据库操作的实现以及权限管理和错误处理等多个环节。掌握这些知识点对于开发Android平台的Unity游戏至关重要。

    Unity3d 调用 C++ 函数 实现加密防破解 (Android向)

    本教程将详细介绍如何在Unity3D项目中调用C++函数来实现加密功能,从而提高应用的防破解能力。 首先,我们需要了解Unity3D与C++交互的基本原理。Unity支持通过DllImport特性导入C++编译的动态链接库(DLL),这个...

    Android Unity3d demo 源码 AngryBots

    - `Classes`: 存放导出的Java代码,主要负责Unity引擎与Android系统的交互,如初始化UnityPlayer、处理Activity生命周期、实现Android接口等。 - `libs`: 包含了针对不同CPU架构的.so库文件,这是Unity引擎在...

    unity3d+讯飞API语音识别听写

    在Unity3D中,我们需要将SDK的C/C++接口封装为C#可调用的形式,或者寻找已经封装好的Unity插件。通过SDK,我们可以设置识别参数,如语种、采样率等,并发送语音数据进行识别。 接收到服务器返回的识别结果后,我们...

    Unity 3D web插件 3D WebView for Android and iOS Web Browser 4.2.2

    在实际应用中,开发者需要了解如何在Unity脚本中调用3D WebView插件的API,例如,可能需要编写如下代码来加载一个网页: ```csharp using UnityEngine; using Unity3DWebView; public class WebViewExample : ...

    Unity3D 接入 移动MM 计费SDK代码

    4. **编写Unity调用代码**:在Unity3D中,根据接口文件定义的方法,编写C#代码来调用SDK的功能,例如初始化计费系统、查询商品、启动购买流程等。 5. **处理回调事件**:当用户在Android端进行操作时,SDK会通过...

    Unity调用Android百度地图.rar

    在Unity游戏引擎中调用Android百度地图SDK是一个常见的跨平台开发技术,主要用于在Unity的3D环境中集成2D地图功能,实现丰富的地理位置服务。本文将详细介绍如何利用Unity与Android百度地图SDK结合,进行二次开发,...

    编译so文件 Unity调用so文件样例

    总结,制作和在Unity中调用SO文件的关键在于理解JNI接口的设计,正确配置C/C++编译环境,以及在Unity中适当地引入和调用SO文件。这个过程涉及到Android NDK开发、JNI编程以及Unity的插件集成,需要对这几个方面都有...

    2、Unity调用Android相关1

    在Unity中调用Android功能是一个常见的跨平台开发需求。这个过程涉及到Unity引擎与Android原生代码的交互,通常用于实现特定的硬件功能、游戏内购买、推送通知等。以下将详细解释如何在Unity中调用Android的相关步骤...

    Unity-AndroidAppStatusBarShowHide.zip

    在Unity中,我们通常通过Java插件来调用Android系统的API。在这个项目中,"AndroidInterface.cs"就是这样一个C#类,它定义了与Android原生代码进行通信的接口。这个类中的方法可以被Unity的C#代码调用,然后通过JNI...

    PHP结合unity3d

    Unity3D通过API调用PHP接口来存取这些数据。 总结来说,PHP结合Unity3D可以实现强大的游戏后端功能,通过精心设计的API和有效的数据交换策略,可以构建出高性能、安全的跨平台游戏。然而,这需要开发者具备PHP后端...

Global site tag (gtag.js) - Google Analytics