[Unity3D]Unity+Android交互教程——让手机"动"起来

Unity3d打包Android环境配置 android 阅读详情

[Unity3D]Unity+Android交互教程——让手机"动"起来

分类: Unity3D   1544人阅读  评论(0)  收藏  举报

目录(?)[+]

想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用,真不好使,一导入运行就报错,调好错了再运行发现点按钮没反应,反复试了几遍发现还是没反应,没办法看源码,结果发现只实现了IOS部分,没有Android部分,我屮艸芔茻...,神伤!用IOS真机测试吧,还是有问题,果断放弃了,下定决心自己动手丰衣足食,虽然不了解Android,但没有学不起来的,只要想,就没有实现不了的!!!首先还是得学习一下Android和Unity的简单交互,在这儿写个详细点的教程!供初学者学习,当然网上也有这方面的教程,有的地方不注意的话,还是会碰到困扰的,下面是详细步骤!更多教程敬请关注我的微博!

效果:这里展示的Unity调用Android原生的方法实现点击Unity界面中的按钮,然后实现手机的震动!

关于最基本的交互,可以参考这篇文章, Unity与Android基本交互,然后在这基础之上来做实现手机震动,其实也差不多!可能重复了,当自我巩固吧,呵呵!

测试方法:必须要真机测试!!!

实现步骤:

一、创建Android工程

1.创建工程



2.导入Unity相关jar

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



3.打开MainActivity.java,导入各种包,编写自己的函数

[java]  view plain copy print ?
  1. package com.example.clickshake;  
  2.   
  3. import android.os.Bundle;  
  4. import com.unity3d.player.UnityPlayerActivity;  
  5. import android.app.Service;  
  6. import android.os.Vibrator;  //震动的包  
  7.   
  8. public class MainActivity extends UnityPlayerActivity {  
  9.   
  10.     private Vibrator mVibrator01;//声明一个振动器对象  
  11.       
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.     }  
  16.       
  17.     //震动函数  
  18.     public void ClickShake()  
  19.     {  
  20.         mVibrator01 = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);   
  21.         mVibrator01.vibrate(new long[]{100,10,100,1000},-1);//自定义整栋模式,只震动一次  
  22.     }  
  23.       
  24.       
  25.     //判断大小  
  26.     public int Max(int a,int b)  
  27.     {  
  28.         if(a>b)  
  29.             return a;  
  30.         return b;  
  31.     }  
  32.   
  33. }  

添加unityActivity,使MainActivity继承UnityPlayerActivity,并把SetContentView函数删掉(不然到手机上启动程序的时候就会只看到一句HelloWorld),这里有两个自己自定义的函数主要的就是上面的没有参数的调用振动器的自定义函数,还有个就是有返回值有参数的比较大小的函数,这里用两个不同的函数在Unity中调用做对比!

4.修改XML并且添加震动权限

添加允许震动的权限,选择AndroidManifest.xml,然后点击Permissions->Add UserPermission->android.perssion.VIBRATE。

5.导出jar包

在项目根目录上右击->Export




点击Finish结束!

二、创建Unity工程

1.在Assets下创建Plugins/Android文件夹,这个文件夹是特殊文件夹,专门用与存放Android的包文件,以便调用Android接口

将文件的xml,jar,res,libs文件放在Android文件下


2.写Unity调用Android代码

[csharp]  view plain copy print ?
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class NewBehaviourScript : MonoBehaviour {  
  5.   
  6.   
  7.     private AndroidJavaObject activity;  
  8.     private int res = 0;  
  9.     // Use this for initialization  
  10.     void Start () {  
  11.         AndroidJavaClass jc=new AndroidJavaClass("com.unity3d.player.UnityPlayer");  
  12.         activity = jc.GetStatic<AndroidJavaObject>("currentActivity");  
  13.         res = activity.Call<int>("Max", new object[] { 10, 20 });  
  14.     }  
  15.   
  16.     void OnGUI()  
  17.     {  
  18.         GUI.Label(new Rect(20, 20, 300, 20), "调用的Android方法:求出10和20中比较大的数字是"+res.ToString());  
  19.         GUI.Label(new Rect(20, 70, 300, 20), "http://blog.youkuaiyun.com/dingxiaowei2013");  
  20.         if ( GUI.Button(new Rect(Screen.width / 2 - 20, Screen.height / 2 + 20, 100, 40), "点击震动"))  
  21.         {  
  22.             activity.Call("ClickShake");  
  23.         }  
  24.           
  25.     }  
  26. }  

说明AndroidJavaObject是一个java对象,这里获取的是java视图,然后调用自定义方法。
(注:初步了解这里的参数之所以填”com.unity3d.player.UnityPlayer”和”currentActivity”,是因为在生成jar文件的时候,已经指定了MainActivityclass继承UnityPlayerActivity,也在XML指定了MainActivity是Main class)
activity.Call<int>("","");这个调用的是有返回值的方法,int是返回类型,activity.Call("");调用的是没返回值没参数的方法

3.导出设置(Importent)



4.真机测试

我就不上传截图了,大概就是一个按钮,能够点击使手机震动,还有一个label,显示10和20比较的结果值。
unity3D(四)将游戏导入安卓手机 版本:unity3D-2018 用到的东西:java_jdk、Android_sdk 链接: java_jdk Android-studio Android_sdk不用专门下载配置环境,直接安装Android-studio后再软件里自动装载SDK就好。 1、点击【edit】——>【preferences】,进入设置页面 选择【External Tools】,察看是否包含jdk和SDK路径,只要通过上面分享的资源装了jdk和SDK,unity3D会自动定位在安装目录下,这边不用进行操作。 2、生成前 阅读详情

相关推荐

Android项目中集成Unity3D

通过将Unity3D项目导出为Android插件,并将插件添加到Android项目中,我们可以在Android应用程序中使用Unity3D的功能和特性。其中,"YourUnityGameObject"是Unity3D场景中的游戏对象,"YourUnityMethod"是游戏对象上的方法名,"YourMessage"是要传递给方法的消息。在创建项目时,选择适当的项目名称和存储位置。在Android项目的根目录下,创建一个名为"libs"的文件夹,并将导出的Unity3D插件(.aar文件)复制到该文件夹中。

QscFramework的博客 798

【教程】Unity3D与Android交互

Unity与Android交互的两种方式

趁着头发多我想做游戏 4782

[Unity3D]Unity3D游戏开发之Unity与Android交互调用研究

各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.youkuaiyun.com/qinyuanpei。在前一篇文章中,我们研究了Android平台上Unity3D的手势操作并在之前的基础上实现了手势旋转、放缩等功能。今天呢,我们继续来研究Unity在Android平台上扩展的内容。众所周知,Unity3D是一个强大的跨平台游戏引擎,和大多数喜欢Unity的朋友一样,博主在体验了Unity强大的跨平台能力后,被深深地震撼了,试想以前我们如果要开发一款游戏的话,我们需要对DX、OpenGL等图形库

素履独行 | 元培的个人博客 3万+

Android集成Unity,实现3D看房效果

前几天有人找小编问能不能把3D模型放入到Unity中,再把Unity放入到Android APP中,在APP中实现观看房屋家具的功能,这次小编便来分享一下吧,如果还需要了解Android 集成Unity知识的,可以翻我主页其他文章。

Ai1114的博客 1万+

Unity与Android的交互之项目结构

概述为什么会写这样的文章,原因是我们在使用Unity做开发的时候少不了跟其它平台做交互,特别是当前流行的Android和iOS。但是由于Unity官方文档缺少这方便详细的资料,以及每个人的开发水平也参差不齐,再加上涉及到多平台的交互(不同平台的开发者不甚了解其它平台的特性、语言)也不尽相同,所以很多时候我们在开发过程中遇到各种各样的问题,从而导致我们开发效率低下、问题很多。因此,为了避免这方面的开发

Yong Ledo的博客 6817

QT实现HTTP文件(夹)下载的完整流程与实战技巧

本文详细介绍了使用QT框架实现HTTP文件和文件夹下载的完整流程与实战技巧。通过QNetworkAccessManager等核心类,讲解了从单文件下载、大文件处理、进度显示、暂停/取消功能,到复杂的文件夹下载策略。文章重点剖析了断点续传、错误处理与网络健壮性等关键问题,为C++桌面应用集成稳定高效的下载功能提供了专业指导。

weixin_29239279的博客 277

【Unity3D】Unity与Android交互

本文主要介绍 Unity 打包发布 Android apk 流程、基于 AndroidJavaObject(或 AndroidJavaClass)实现 Unity 调用 Java 代码、基于 UnityPlayer 实现 Java 调用 Unity 代码,官方介绍见→Android。

little_fat_sheep 7198

分析android逆向的学习路线

俗话说:“一入逆向深似海,从此头发是路人”。 安卓逆向作为当下热门行业“网络安全”的主要技术之一,已经受到了越来越多人的青睐。但是很多刚入门的新手小伙伴对于怎么去学习却还很是迷糊。本文就分享一下android逆向的学习路线供大家参考。 目前学习安卓逆向的人群大约分为两种: 第一种是完全没有任何基础的计算机纯小白; 第二种是本来就做开发懂编程的IT行业人员。 我们就针对这两个不同的人群做一下安卓逆向的学习路线分析。 一、无基础小白想入门 作为没有任何基础想要入门的计算机纯小白,学习上推荐参照以下步骤: (一

Hacker_by_V的博客 3077

[Unity3D] Unity3D连接安卓设备调试unity程序

通过unity3d以及VS对安卓设备上自己打包的unity程序进行调试

GLDbalala的博客 2万+

戴维南和诺顿定理到底怎么选?一个实际维修案例讲透两种等效电路用法

本文通过工业电源模块维修案例,详细解析戴维南和诺顿定理在实际电路分析中的选择策略。针对电压敏感型故障、电流分配问题及功率传输异常,提供三大黄金法则,帮助工程师高效选择等效电路方法,提升故障排查效率。特别强调诺顿定理在电流分析中的优势。

weixin_31854867的博客 357

Vue3实战:企业级应用集成钉钉扫码登录全流程解析

本文详细解析了在Vue3企业级应用中集成钉钉扫码登录的全流程。从钉钉开放平台应用创建与配置,到Vue3前端如何优雅地嵌入并管理扫码组件,再到后端如何安全地处理OAuth 2.0授权码以换取用户信息并完成登录,提供了完整的实战代码与避坑指南。该方案能有效实现安全便捷的单点登录,统一企业身份认证。

weixin_29019241的博客 289

[Unity3D]Unity+Android交互教程——手机震动时间小于原生0.5秒

** 转载[Unity3D]Unity+Android交互教程——手机震动时间小于原生0.5秒 ** 原文入口版权所有归作者所有(之所以搬运工只是这个资源太难搜索到啦0.0) 效果:这里展示的Unity调用Android原生的方法实现点击Unity界面中的按钮,然后实现手机的震动! 关于最基本的交互,可以参考这篇文章,Unity与Android基本交互 ,然后在这基础之上来做实现手机震动,其实也差...

Mihongzhong的博客 2214

CANoe诊断测试避坑指南:DTC故障注入与ECU刷写失败的N个常见原因排查

本文深入解析CANoe诊断测试中的常见问题,重点探讨DTC故障注入与ECU刷写失败的排查策略。从会话管理、安全访问到数据完整性校验,提供实战经验与CAPL脚本示例,帮助工程师规避诊断测试中的典型陷阱,提升车载网络通信与ECU刷写的可靠性。

weixin_29278805的博客 461

Unity3d读取安卓手机相册

开发环境: Android studio 3.5.2 Unity3d 2020.3.25f1c1 目录 Android Studio部分 1,创建New Project 2,创建新的 Module ,命名test 3,删掉默认创建的多余的Moudle app 4,导入Unity3d的 classes.jar 5,导入Unity3d的 UnityPlayerActivity.java 6,创建MainActivity 7,java代码部分 8,AndroidMainFest 配..

m1234567q的专栏 3224

做了一个3DTiles编辑器,支持3DTiles的预览和裁剪导出

3DTiles编辑器的功能极其简洁,核心就是3DTiles格式模型的预览和裁剪。为了演示方便,本文所使用的源数据为mipmap3d[1]网站所提供的无人机拍摄影像,并进行3DTiles构建。打开软件,输入的绝对路径之后,点击添加模型,就可以将模型加载进预览区。之后,点击裁剪模式按钮,默认会出现立方体裁剪框,可通过拖动句柄的方式去调整裁剪框的范围。同时,除了默认的盒体裁切模式外,还支持多边形裁切,点击多边形裁切后,可切换到顶视图,选择重绘多边形,可进行打点绘制。

兴趣使然的创作者 600

【GPFS专题4】---IBM Spectrum Scale (GPFS) 原理详解

IBM Spectrum Scale(原名为 GPFS,General Parallel File System)是一种高性能、分布式的集群文件系统,专为大规模数据共享和并行访问设计。它允许多个客户端同时访问共享文件,提供高可用性、容错性和扩展性,广泛应用于高性能计算(HPC)、大数据分析、AI 训练和企业级存储场景。IBM Spectrum Scale 通过分布式架构、并行访问和智能数据管理,为企业提供了高性能、高可用、可扩展的存储解决方案。

jundao1997的专栏 777

将unity项目发布到安卓手机

一、Unity 3d安卓开发环境搭建(Android SDK Tools) 无论是在Unity中构建Android应用程序,还是从头开始对其进行编程,都必须先设置Android软件开发工具包(SDK),然后才能在Android设备上构建和运行任何代码。默认情况下,Unity安装基于OpenJDK的Java开发工具包。 以下基于untiy官方文档,整合其它资料,列出详尽有效步骤。(本文基于win7系统) 1. 首先,下载安装Java Development Kit (一般称作JDK): (注意..

m0_37346206的博客 4753

五十天精通硬件设计第6天-放大器知识及选型

运算放大器(Operational Amplifier,简称运放)是一种高增益的直流耦合差分放大器,广泛应用于信号处理、滤波、比较、积分、微分等电路中。

whm128的博客 592

Unity | Unity与Android交互流程总结

一、背景 虽然使用Unity3D可以完成制作一款游戏的绝大部分工作,但是在研发过程中,对于一些功能,比如实现手机震动、获取手机剩余存储空间等,就需要建立Unity与Android的交互。 二、Unity与Android的交互方式 Unity与Android的交互有两种方式:1.Unity使用jar\aar库;2.Unity导出gradle项目,在AndroidStudio中进行二次开发。 本文以实现手机震动功能为例,采取第一种方式进行Unity与Android的交...

该用户还没想到好的昵称的博客 1932

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Unity+Android交互教程——让手机"动"起来

想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用,真不好使,一导入运行就报错,调好错了再运行发现点按钮没反应,反复试了几遍发现还是没反应,没办法看源码,结果发现只实现了IOS部分,没有Android部分,我屮艸芔茻...,神伤!用IOS真机测试吧,还是有问题,果断放弃了,下定决心自己动手丰衣足食,虽然不了解Android,但没有

cbbbc 1146

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 将Unity3D游戏移植到Android平台上
下一篇: unity 调用android函数
linuxheik
博客等级 码龄15年 865粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值