u3d与android通信1

Unity3d Android SDK接入解析(一)Unity3d 与 Android之间的互相调用 关于Unity和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

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

 

 

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

         

         其中MainActivity就是我们需要编辑的java文件了

 

3.     导入Unity相关jar

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

通过AddExternalArchives添加,如图:

 

 

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

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

5.     到这里,需要的函数已经写完,再修改一下xml文件

Xml文件在工程文件目录下,叫AndroidManifest.xml

6.     接下来到处jar包

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

 

7.     到这里Android部分结束了

 

 

Unity部分

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

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

注意:

A:libs目录下面不要有unity的安装路径D:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin下的classes.jar(要删除unity的classes.jar文件)

B:如果build时报Failed to re-package resources.

 这个问题是因为Android后面SDK版本中使用了新的主题Theme,而我们在编译的SDK中可能包含,这里简单粗暴地方式是将values、values-11、values-14以及AndroidMenifest文件中有关主题Theme的定义和使用全都去掉,因为我们在这里创建的Android工程本身是与Unity层通信使用的,定义和使用Theme意义并不大,所以可以去掉;另外我们可以将其所以来的库引入或者使用最新的SDK去编译它。

C:如果build时报can't add script component because the script class cannot be found

 

 

 

3.     调用相关函数

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

[Unity][安卓]Unity和Android Studio 3.0 交互通讯 前提-- Unity 的 Android设置 根据参考资料1 UNITY 5.6.4P1 Android Studio 3 File -- Building Setting 如果没有安装,就进行安装。系统会根据 UNITY 的版本 自行 安排 下载 的版本。 如果 某个浏览器 下载 过慢, 就复制 下载 地址,换个浏览器下载。 参考资料: 1. Uni 阅读详情

相关推荐

Android项目中集成Unity3D

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

QscFramework的博客 798

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

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

Ai1114的博客 1万+

Unity与Android Studio✨之间那些不清不楚的小秘密✨(Android Studio与unity交互)

Unity与Android Studio✨之间那些不清不楚的小秘密✨(互相调用) 文章目录Unity与Android Studio✨之间那些不清不楚的小秘密✨(互相调用)前言一、Unity与安卓交互的参数整理1.引入库二、Unity与安卓交互的几种方法Unity调用安卓1.unity调用Android的非静态方法。继承UnityPlayerActivity2.unity调用Android的静态方法3.1.unity调用Android的非静态方法。自己的类写一个静态构造方法安卓调用Unity通过发消息Uni

努力前行,总会成为自己心中的那道光 1万+

Android 网络请求方式

最近需要将Android 项目接入物联网公司提供的接口,所以顺便给大家分享一下Android中我们常用的网络请求吧!提醒大家一下,我们遇到接口需求,一定要先在Postman上测试接口是否正确,然后再去项目上写程序来请求接口;否则,请求出问题,你都不确定是你程序写的有问题还是接口本身提供的有问题。

Ai1114的博客 8598

飞书应用开发脚手架lark-harness:从零构建企业级机器人

在构建企业级应用时,开发脚手架是提升工程效率和规范性的关键工具。其核心原理在于通过预设的项目模板、最佳实践和通用模块封装,自动化处理项目初始化、配置管理和基础架构搭建。这种技术价值在于将开发者从重复性劳动中解放出来,确保团队技术栈统一,并降低维护成本。在Node.js生态中,脚手架常与Express或Koa等Web框架结合,用于快速构建Web服务、API接口和实时事件处理系统。具体到飞书开放平台开发场景,开发者需要处理OAuth 2.0授权、事件订阅验证、消息加解密等复杂且标准的流程。lark-harnes

weixin_30703911的博客 612

Vue3 + MQTT.js 实现 SCADA 实时数据通信:从不稳定到稳定的完整实践

本文介绍了SCADA组态引擎开发中MQTT协议的应用及优化实践。项目采用MQTT协议实现工业设备数据采集与可视化,但面临连接不稳定、数据格式多样化和数据绑定复杂三大问题。针对MQTT连接问题,分析发现超时设置过短(原8秒)、缺少客户端超时配置和心跳机制是主要原因。优化方案包括:协议转换(mqtt://→ws://)、双重超时保护(15秒手动+30秒客户端)、60秒心跳间隔等,显著提升了连接稳定性。通过完整代码实现展示了连接配置、认证处理和错误处理机制,为物联网数据传输提供了可靠解决方案。

weixin_36794508的博客 1398

Android --- 网络请求

通常在 Android 中进行网络连接一般使用 Scoket 和HTTP,HTTP 请求方式比 Scoket 多。HTTP 请求一般采用原生的 HttpClient 和 HttpUrlConnection 的两种网络访问方式(系统自带的)。

weixin_43244083的博客 2447

【微知】关于GB200 NVL72服务器的一些信息?(36CPU72GPU;LPDDR5X 17T;HBM3e 13.5T;5代NVlink 1.8TB; 720P算力FP8;120Kw)

本文仅根据官网介绍分析,存在纰漏仅供参考。

技术札记 5385

Android开发——网络请求

网络请求可以说是Android开发的核心,也同样是Android开发中的难点。,目的是为了统一管理各种请求接口,通知利用。,它们都是对最基础的网络请求的一层封装。提供的路由注解方便进行接口请求与规范化。

weixin_46560512的博客 3632

RK3588 Linux启动优化至亚秒级全链路剖析

本文深入探讨RK3588平台Linux系统启动加速技术,涵盖从BL1/ATF安全固件、U-Boot剪裁到内核精简化等全链路优化方案,实现从上电到用户脚本800ms内完成的实战经验。​​文末提供完整解决方案获取方式​​。由于在 ARMv6 之后引入了 TrustZone 模块, 目前市面上 ARMv7 和 ARMv8 之后的系统都会包含了该模块, 这个模块由 BL1 启动, 且在 ATF(ARM Trust Firmware) 固件中, 既安全世界中引导到 BL33 (UBOOT)的系统。

韩若明溪 1777

【Unity3D开发小游戏】《打地鼠游戏》Unity开发教程

文章目录一、前言二、源码三、正文版本1、相机设置2、洞口设置3、洞口脚本4、鼹鼠5、鼹鼠动画6、鼹鼠碰撞器7、鼹鼠脚本8、击中鼹鼠的效果9、实现击中效果10、增加更多的洞口 一、前言 让我们使用Unity3D开发一个打地鼠游戏吧。 打地鼠游戏是一个非常有趣的街机游戏,是在1976年左右发明的。 游戏的主要玩法就是打击从洞里出来的鼹鼠,玩家击中鼹鼠的速度越快,得分就越高 我们将讲解制作游戏的所需的每...

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 8460

U3D与Android之间的通讯

安卓与unity通信的基础知识

Sukk的博客 1203

9.23华为OD机试真题 新系统 - 小菊的寻宝之旅 (Java/Py/C/C++/Js/Go)

9.23华为OD机试真题 新系统 - 小菊的寻宝之旅 (Java/Py/C/C++/Js/Go)

算法大师! 990

Unity3D安卓端串口通信

U3D串口通讯安卓端

gaoyu123456789的博客 3248

电商数据采集实战——多平台价格监控、比价分析与智能告警系统

在电商竞争日益激烈的今天,价格监控与比价分析已成为品牌商、渠道商和消费者的核心需求。对于品牌商而言,需要监控各渠道售价是否低于指导价(破价监控);对于消费者而言,希望在最佳时机以最低价购入心仪商品;对于数据分析师而言,价格波动数据是洞察市场趋势的金矿。然而,电商数据采集面临三大核心挑战:本文将基于 Python + Scrapy + Playwright + Redis + ClickHouse 技术栈,构建一套完整的电商价格监控与比价系统。架构分层说明:电商平台的反爬手段层出不穷,采集系统必须具备多层次的

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 136

解决Gradle中NPM命令失效问题

摘要:本文分析了IntelliJ IDEA中Gradle执行npm命令失败的问题,报错显示"npm"文件不存在。通过确认npm安装路径、检查系统PATH与Gradle环境的差异,提出两种解决方案:1) 在build.gradle中使用npm绝对路径;2) 通过launchctl修改用户PATH。实例展示了如何修改Gradle脚本或系统配置来解决该问题,指出跨平台开发中环境变量配置的重要性。文章为开发者提供了处理类似问题的实用方法。

2501_90323865的博客 90

android和u3d通信,非常详细的测试unity与android之间的通讯操作

非常详细的测试unity与android之间的通讯操作这段时间在研究嵌入sdk,途中遇到不少问题和坑,在这就不一一说了。嵌入sdk是比较常见的吧,如接入广告啊, 新浪的分享...... 这些都需要接入sdk的。(这些我在这段时间都应以研究成功了,后期会写上)。现在我们从最基本的做吧。其实这些和什么引擎都是没多大关系的。不管是 unity,还是cosos2d......说白了,这些就是和移动...

weixin_34792402的博客 589

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Unity和安卓通信之Unity导出安卓工程包在AndroidStudio里添加代码后发布APK

先在Unity里写测试脚本: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class AndroidTest : MonoBehaviour { public InputField _fiel...

hemiaoyuan1989的专栏 410

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Unity3d与Android通信

先交代几点 1.u3d可以直接打包成APK或android项目(项目可以在androidIDE中直接运行)供android二次开发 2.android目前最新也是官方支持的方式是使用arr文件替代jar,至于这两种文件最大的区别就是arr包含各种资源文件,jar需要单独拷贝资源文件(本文只介绍arr方式) 一.Unity3d调用Android方法 先介绍一下u3d中调用android...

正儿八经小青年 2889

温度PID控制PLC程序

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

Unity与Android通信基础篇

前言 看了网上千篇一律的Unity与Android通信的方法,作为一个新手,真的很容易入坑,我这里介绍一个简单的方法,不用导什么arr包,jar包的,然后改AndroidManifest文件 环境 1.首先我们需要安装JDK,并配置环境 2.Unity中选好SDK和NDK指定路径 3.Unity工程切换为Android工程 4.打包发布的包名,工程名指定好 基础 1.拿到我们的UnityPlaye...

路漫漫其修远兮,吾将上下而求索 445

u3d js交互 Android,Unity WebGL通過jslibPlugin與android溝通

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?最終目的為- Unity WebGL通過jslib Plugin跟Web交互- Unity WebGL通過jslib Plugin跟android溝通1. 創建jslib[WebGL:Interacting with browser scripting](https://docs.unity3d.com/Manual/w...

weixin_29097457的博客 486

Unity 实现简单的语音聊天 [Android版本]

在这里我们可能会遇到一下问题: 1.U3D C# 与 Android Java之间是怎么通讯 2.Android怎么调用原生的录音功能和播放功能   好,我们逐一解决问题   1.U3D C# 与 Android Java之间是怎么通讯   相比iOS,Android这边会比较简单些 再C# 中这样调用Android的接口 Android

博客 1676

非常详细的测试unity与android之间的通讯操作

  非常详细的测试unity与android之间的通讯操作 转载自 http://www.narkii.com/club/thread-320335-1.html        这段时间在研究嵌入sdk,途中遇到不少问题和坑,在这就不一一说了。嵌入sdk是比较常见的吧,如接入广告啊, 新浪的分享...... 这些都需要接入sdk的。(这些我在这段时间都应以研究成功了,后期会写上)。现在...

stephen830 448

Unity3d SDK篇之Android开发(一)

android 项目交互 与 sdk增加指南: (完整版)通常在处理u3d与android natvice对接时,有两种方案:. U3D 项目交互部分方案:  a. 使用u3d带有jni与使用jar方案直接处理,原理还是在u3d直接打包apk,其实处理过程是把相关工程的目录构建好,在u3d内进行打包完成的c# 与 java进行交互,底层的ndk部分完全忽略掉了,直接用u3d提供的jni接口交互ja

Kaitiren的专栏 5342

好未来U3D笔试复盘:教育科技Unity岗考点与实战解析

在Unity开发岗位的求职准备中,C#语言基础和引擎机制始终是笔试考察的核心。扎实掌握值类型与引用类型、字符串处理、委托与事件等语法细节,并深入理解UGUI的Canvas重建、对象池复用及DrawCall优化原理,是衡量工程落地能力的关键。这类技术素养不仅服务于游戏交互,更广泛应用于双师课堂、互动课件、答题器等教育科技场景。以好未来2023秋招U3D笔试题为例,其更看重候选人解决实际业务问题的能力,如多分辨率适配、低端安卓机降级、资源断点续传与实时数据同步。通过题型拆解与高频考点复盘,帮助Unity方向求职

weixin_34293059的博客 406

Unity3D安卓串口调用库:项目核心功能及优势解析

Unity3D安卓串口调用库:项目核心功能及优势解析 【下载地址】Unity3D安卓串口调用库 Unity3D安卓串口调用库为开发者提供了在Unity3D中实现安卓设备串口通信的便捷解决方案。通过集成`libserial_port.so`静态链接库,开发者可以轻松地在Unity项目中调用串口功能,实现与安卓设备的数据交互...

gitblog_06749的博客 1051
上一篇: AVAudioPlayer不在扬声器播放修改
下一篇: Unity陀螺仪应用
myInterface
博客等级 码龄12年 2粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值