[Unity3D]转让Android介面
简单介绍
有一些手机功能。Unity没有提供对应的接口。比如震动,比如不锁屏,比如GPS。比如...
有太多的特殊功能Unity都没有提供接口。这时候,我们就须要通过使用Android原生的ADT编辑器去编写Java代码,然后打包jar导入到Unityproject。然后通过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
创建过程中,仅仅有一下这个界面的内容须要更改,其它的使用默认的即可
生成后解决方式的文件夹如图
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHZfbHkxNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="border:none; max-width:100%">
当中MainActivity就是我们须要编辑的java文件了
3. 导入Unity相关jar
Jar文件夹:unity的安装路径\Editor\Data\PlaybackEngines\androidplayer\bin下的classes.jar
通过AddExternalArchives加入。如图:
4. 导入jar后。就能够開始编辑相关的函数了。打开MainActivity
加入unityActivity。使MainActivity继承UnityPlayerActivity。并把SetContentView函数删掉(不然到手机上启动程序的时候就会仅仅看到一句HelloWorld)。这里用一个比較函数Max作为样例,有參数。有返回值
5. 到这里。须要的函数已经写完,再改动一下xml文件
Xml文件在project文件文件夹下,叫AndroidManifest.xml
6. 接下来到处jar包
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHZfbHkxNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="border:none; max-width:100%">
点击Export后选择Java文件夹下的Jar file,选择好路径之后按默认选项去到处jar文件就可以
7. 到这里Android部分结束了
Unity部分
1. 设置PlayerSetting,要与Android的package相应上
2. 在Assets文件夹下加入Plugins\Android文件夹,把Android的jar文件,res文件夹,libs文件夹。xml文件放入该文件夹
3. 调用相关函数
(注意:之所以这里的参数的初步了解,以填补”com.unity3d.player.UnityPlayer”和”currentActivity”。它是由于代jar当文件,它已被指定MainActivityclass承受UnityPlayerActivity。也XML指定MainActivity它是Main class)
[Unity3D]转让Android介面的更多相关文章
- Unity3d与android通信
原地址:http://www.cnblogs.com/alongu3d/p/3661077.html unity3d与android的通信,从网上搜索了一些文章,发现我的始终不成功!后来调试通了,现在 ...
- Unity3d和Android之间互相调用
摘抄博客 Unity3d Android SDK接入解析(一)Unity3d 与 Android之间的互相调用,一共四章,一定要看完 No1: 总体来说Unity3d与Android之间的互相调用,是 ...
- Unity3D调用android方法(非插件方式)
关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客.假设你对Unity3Dproject增加到androidproject的过程不熟悉.也请先看完以下这 ...
- [原] unity3d调用android版 人人sdk
开发过程 遇到天坑:纯android工程没问题,集成到unity3d中 就老提示 没登陆 .最后跟到底 发现是Util.java 中 openUrl 函数出的bug.unity3d 中调android ...
- Unity3D for Android 纹理压缩支持
http://blog.csdn.net/asd237241291/article/details/48548557 首先附图:Unity3D for Android支持的纹理压缩格式 纹理压缩可以通 ...
- Unity3D 调用Android与IOS的剪贴板
Unity3D剪贴板 最近遇到一个需要调用Android与IOS设备本身剪贴板的需求,就是在Unity中,要将文本复制到设备本身的剪贴板中,然后在其他应用程序中都能粘贴. 最开始在网上查到的方式是使用 ...
- Unity3D 与android交互流程步骤
1.Android端代码可以在Eclipse中开发(AndroidStudio没有试,应该也可以) 2.Unity3D端代码要在Unity中开发 3.Android和Unity3D端,两边都需要加入一 ...
- [Unity3D]Unity+Android交互教程——让手机"动"起来
想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用,真不好使,一导入运行就报错,调好错了再运行发现点按钮没反应,反复试了几遍发现还是 ...
- Unity3d与Android交互
先看下效果 你一定会说,然并卵! 没错,这里只是一个最简单的例子,unity与android activity 互相传参数. 玩过手游的都知道,在你要为你心爱的游戏角色准备花钱买钻石,点击购买的时候, ...
随机推荐
- WAS ND集群中的HTTP内存会话复制对Java应用程序序列化编程的要求
应用程序需要遵守的约定 在会话中没有自定义对象时,WAS 集群的 HTTP 会话内存复制特性成功地实现了高可用性,使用户在宕机过程中的会话信息没有丢失,操作没有受到任何影响. 在会话中包含自定义对象时 ...
- ThinkPhp学习01
原文:ThinkPhp学习01 一.ThinkPHP的介绍 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板 ...
- Android中获取IMEI码
Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getDeviceId(); 1.加入权限 在manifest.xml ...
- Android Studio IDE Out of Memory
场景: 尝试过各种方式,IDE重装,重新启动,设置IDE MEMORY大小JDK MEMORY大小都无效 终于在FILE->INVALIDATE CACHES/RESTART 中点击重新启动之后 ...
- 参数传递方法(Delphi1.0与win16API使用pascal方法,即从左到右)
参数传递方法李维的InsideVCL<第一章>中提到Windows定义的回调函数typedef LRESULT (CALLBACK*WNDPROC)(HWND,UNIT,WPARAM,LP ...
- Inside Qt Series (全集)
Inside Qt 系列 QObject这个 class 是 QT 对象模型的核心,绝大部分的 QT 类都是从这个类继承而来.这个模型的中心特征就是一个叫做信号和槽(signaland slot)的机 ...
- Android常用开源项目
Android开源项目第一篇——个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Progre ...
- HTML5初步——新的表单元素和属性
HTML5初步--新的表单元素和属性 HTML5初步--新的表单元素和属性 <!DOCTYPE html> <html> <head> <meta chars ...
- Spark实践的阶段性总结
写这篇小总结是因为前段时间是自己业余时间对Spark相关进行了些探索,接下来可能有别的同事一起加入,且会去借用一些别的服务器资源,希望可以借此理下思路. 实践Spark的原因 在之前Spark简介及安 ...
- 【STL】关联容器 — hash_set
容器hash_set是以hash table为底层机制的,差点儿所有的操作都是转调用hash table提供的接口.因为插入无法存储同样的键值,所以hash_set的插入操作所有都使用hash tab ...