当前位置: 首页 > news >正文

【Unity】Unity与安卓交互

问题描述

Unity和安卓手机进行交互,是我们开发游戏中最常见的场景。本教程将从一个简单的例子来演示一下。
本教程需要用到Android Studio2021.1.1

1.Android Studio新建一个工程

在这里插入图片描述

2.选择Empty Activity 然后点击Next

在这里插入图片描述

3.点击Finish完成创建在这里插入图片描述

4.选择File-New-New Module

在这里插入图片描述

5.创建一个Android Library

这个就是用来生成一个jar包的

在这里插入图片描述

5.创建成功后,会看到刚刚创建的mylibrary和下面的build.gradle

不同视窗排版不一样,自己调整一下
在这里插入图片描述

6.找到Unity的classes.jar,在安装目录下

比如我的目录:C:\Program Files\Unity\Hub\Editor\2021.3.33f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes
注意选择自己需要的版本
在这里插入图片描述

7.拷贝到Android Studio项目中的Libs下

请添加图片描述

8.右键选择Add As Library

请添加图片描述

9.在src的main目录下,右键新增一个JavaGame脚本

在这里插入图片描述

10.加入以下测试脚本

package com.hao.mylibrary;
import android.util.Log;
import com.unity3d.player.UnityPlayer;public class JavaGame
{//初始化public static void Init(){// 打印: JavaGame: InitLog.d("JavaGame", "Init");}//获取渠道private String GetChannel(){Log.d("JavaGame", "GetChannel");return "xiaomi";}//加法public int Add(int num1,int num2){Log.d("JavaGame", "Add");return num1 + num2;}//登录public static void Login(){// 打印: JavaGame: LoginLog.d("JavaGame", "Login");UnityPlayer.UnitySendMessage("UnityObj", "LoginSucceed", "abc12345");}
}

11.打开build.gradle,添加以下打包代码

task makeJar(type: Copy) {//删除存在的delete 'build/libs/testlibrary.jar'//设置拷贝的文件from('build/intermediates/aar_main_jar/release/')//打进jar包后的文件目录into('build/libs/')//将classes.jar放入build/libs/目录下//include ,exclude参数来设置过滤include('classes.jar')//重命名rename ('classes.jar', 'testlibrary.jar')}makeJar.dependsOn(build)

在这里插入图片描述

12.在右侧找到Gradle,选择项目中的Tasks - other - makeJar,双击makeJar开始打包

在这里插入图片描述

13.提示打包成功后,可在Build中的Libs下找到jar包

在这里插入图片描述

14.拷贝到Unity工程Plugins/Android目录下

在这里插入图片描述

15.在Unity里新建一个Game.cs脚本,加入以下测试代码

using UnityEngine;
using UnityEngine.UI;
public class Game : MonoBehaviour
{public Text ChannelText;public Text AddText;void Start(){AndroidJavaObject javaObject = new AndroidJavaObject("com.hao.mylibrary.JavaGame");// 静态方法javaObject.CallStatic("Init");// 非静态无参方法,返回一个渠道名string Channel = javaObject.Call<string>("GetChannel");ChannelText.text = Channel;// 非静态,带参数方法int num = javaObject.Call<int>("Add", 2,6);AddText.text = num.ToString();//调用登录,登录成功会返回javaObject.CallStatic("Login");}
}

16.在Unity里新建一个UnityObj.cs脚本,并且挂在 UnityObj对象上 。

UnityObj必须要和java里的名称一致,不然Unity就接收不到java的返回

using UnityEngine;
using UnityEngine.UI;
public class UnityObj : MonoBehaviour
{public Text mText;private void LoginSucceed(string value){mText.text = value;}
}

在这里插入图片描述

17.为了方便测试,建了一个简单UI,把返回结果直接显示在UI上。

在这里插入图片描述

18.打包测试,使用雷电模拟器测试

在这里插入图片描述

相关文章:

【Unity】Unity与安卓交互

问题描述 Unity和安卓手机进行交互&#xff0c;是我们开发游戏中最常见的场景。本教程将从一个简单的例子来演示一下。 本教程需要用到Android Studio2021.1.1 1.Android Studio新建一个工程 2.选择Empty Activity 然后点击Next 3.点击Finish完成创建 4.选择File-New-New Mo…...

QYFB-02 无线风力报警仪 风速风向超限声光报警

产品概述 无线风力报警仪是由测控报警仪、无线风速风向传感器和太阳能供电盒组成&#xff0c;可观测大气中的瞬时风速&#xff0c;具有风速报警设定和报警输出控制功能&#xff1b;风力报警仪采用无线信号传输、显示屏输出&#xff0c;风速显示采用高亮LED数码管显示&#xff…...

css知识:盒模型盒子塌陷BFC

1. css盒模型 标准盒子模型&#xff0c;content-box 设置宽度即content的宽度 width content 总宽度content&#xff08;width设定值&#xff09; padding border IE/怪异盒子模型&#xff0c;border-box width content border padding 总宽度 width设定值 2. 如何…...

Nginx的反向代理:实现灵活的请求转发和内容缓存

一、引言&#xff1a;代理服务器的简介 本节介绍代理服务器的基本配置。学习如何通过不同协议将 NGINX 请求传递给代理的服务器&#xff0c;修改发送到代理服务器的客户端请求标头&#xff0c;以及配置来自代理服务器的响应缓冲。 代理通常用于在多个服务器之间分配负载&…...

免费享受企业级安全:雷池社区版WAF,高效专业的Web安全的方案

网站安全成为了每个企业及个人不可忽视的重要议题。 随着网络攻击手段日益狡猾和复杂&#xff0c;选择一个强大的安全防护平台变得尤为关键。 推荐的雷池社区版——一个为网站提供全面安全防护解决方案的平台&#xff0c;它不仅具备高效的安全防护能力&#xff0c;还让网站安…...

基于SpringBoot的航班进出港管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…...

Odoo系统安装部署并结合内网穿透实现固定域名访问本地ERP系统

文章目录 前言1. 下载安装Odoo&#xff1a;2. 实现公网访问Odoo本地系统&#xff1a;3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件&#xff0c;是一个一站式全功能ERP及电商平台。 开源性质&#xff1a;Odoo是一个开源的ERP软件&#xff0c;这意味着企…...

幻兽帕鲁(Palworld 1.4.1)私有服务器搭建(docker版)

文章目录 说明客户端安装服务器部署1Panel安装和配置docker服务初始化设置设置开机自启动设置镜像加速 游戏服务端部署游戏服务端参数可视化配置 Palworld连接服务器问题总结 说明 服务器硬件要求&#xff1a;Linux系统/Window系统&#xff08;x86架构&#xff0c;armbian架构…...

好书推荐丨细说Python编程:从入门到科学计算

文章目录 写在前面Python简介推荐图书内容简介编辑推荐作者简介 推荐理由粉丝福利写在最后 写在前面 本期博主给大家推荐一本Python基础入门的全新正版书籍&#xff0c;对Python、机器学习、人工智能感兴趣的小伙伴们快来看看吧~ Python简介 Python 是一种广泛使用的高级、解…...

智慧城市与数字孪生:共创未来城市新篇章

一、引言 随着科技的飞速发展&#xff0c;智慧城市与数字孪生已成为现代城市建设的核心议题。智慧城市注重利用先进的信息通信技术&#xff0c;提升城市治理水平&#xff0c;改善市民生活品质。而数字孪生则通过建立物理城市与数字模型之间的连接&#xff0c;为城市管理、规划…...

Java数据结构---初识集合框架

目录 一、什么是集合框架 二、集合框架的重要性 三、背后涉及的数据结构及算法 1.什么是数据结构 2.容器背后对应的数据结构 3.相关的Java知识 4.什么是算法 一、什么是集合框架 Java 集合框架 Java Collection Framework &#xff0c;又被称为容器 container &#xff0…...

Spring Cloud学习

1、什么是SpringCloud Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序&#xff0c;提供与外部系统的集成。Spring cloud Task&#xff0c;一个生命周期短暂的微服务框架&#xff0c;用于快速构建执行有限数据处理的应用程序。Spring cloud 流应用程…...

【计算机网络】1.4 接入网和物理媒体

1.4 接入网和物理媒体 问题&#xff1a;怎样将端系统和边缘路由器连接&#xff1f; 答&#xff1a;有线方式&#xff08;住宅接入网络、单位接入网络等&#xff09;或无线方式&#xff08;无线接入网络&#xff09;。 有线接入方式 光纤同轴混合网是基于已有的有线电视网开发的…...

关于螺栓的基本拧紧技术了解多少——SunTorque智能扭矩系统

螺栓是机械中常见的紧固件之一&#xff0c;用于将两个或多个部件连接在一起&#xff0c;并保持它们之间的紧密配合。拧紧螺栓是一项基本的技术&#xff0c;但在实际操作中&#xff0c;许多工人并不了解正确的拧紧方法&#xff0c;从而导致螺栓松动、连接失效等问题的出现。因此…...

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁

PublishFolderCleaner – Github 测试环境: .Net 8 Program.cs 代码 // https://github.com/dotnet-campus/dotnetcampus.DotNETBuildSDK/tree/master/PublishFolderCleanerusing System.Diagnostics; using System.Text;// 名称, 不用写 .exe var exeName "AbpDemo&…...

[更新]ARCGIS之土地耕地占补平衡、进出平衡系统报备坐标txt格式批量导出工具(定制开发版)

序言 之前开发的耕地占补平衡报备格式&#xff0c;现在之前的基础上集成了耕地进出平衡报备格式导出。 之前版本软件详见&#xff1a;软件介绍 一、软件简介 本软件是基于arcgis二次开发的工具&#xff08;插件&#xff09;&#xff0c;需要授权后才能使用&#xff1b; 本软件…...

todolist

一开始想自己写个todolist的网页&#xff0c;一直没时间&#xff0c;直接拿这个博客记录了&#xff0c;因为仅我可见比较麻烦&#xff0c;就放在全部可见记录了 目录 2024年3月todoes了解一下深入学习k8s&#xff0c;比如pod运行多个容器 &#xff0c;编写自己的镜像 2024年2月…...

【Java程序设计】【C00307】基于Springboot的基Hadoop的物品租赁管理系统(有论文)

基于Springboot的基Hadoop的物品租赁管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的基于 Hadoop的物品租赁系统的设计与实现&#xff0c;本系统有管理员、用户二种角色权限&#xff1b; 前台首页&#…...

GIT中对子仓库的使用方法介绍

git 子仓库 主仓库中添加子仓库 git submodule add <url> <path>更新子代码代码 git submodule update --init克隆含有子仓库的仓库 git clone --recurse-submodules <url>主仓库中删除子仓库 1、进入包含子仓库的父仓库的根目录 2、使用以下命令将子仓…...

ClickHouse 指南(三)最佳实践 -- 跳数索引

Data Skipping Indexes Data Skipping Indexes 2 1、简介 影响ClickHouse查询性能的因素很多。在大多数情况下&#xff0c;关键因素是ClickHouse在计算查询WHERE子句条件时是否可以使用主键。因此&#xff0c;选择适用于最常见查询模式的主键对于有效的表设计至关重要。 然…...

Mybatis总结--传参二

#叫做占位符 Mybatis是封装的JDBC 增强版 内部还是用的jdbc 每遇到一个#号 这里就会变为&#xff1f;占位符 一个#{}就是对应一个问号 一个占位符 用这个对象执行sql语句没有sql注入的风险 八、多个参数-使用Param 当 Dao 接口方法有多个参数&#xff0c;需要通过名称使…...

2024年数字化转型风口趋势大赏

人工智能和自动化确实为提高效率和数据驱动的见解提供了巨大的潜力&#xff0c;但这些技术无法完全取代人类技能和情境决策。在混合模型中将人工智能功能与人类专业知识相结合的企业将实现最大的效益。 随着人工智能和自动化的不断发展&#xff0c;企业必须调整其战略、流程和人…...

某款服务器插上4张TDP功耗75瓦PCIE卡无法开机的调试过程

1.服务器厂家说这款服务器测过别家的4卡&#xff0c;所以一开始并没有怀疑服务器硬件有问题 2.拔掉另外三张&#xff0c;只保留cpu0对应的riser0 slot0上的一张卡&#xff0c;仍然无法开机。 3.怀疑是这张pcie卡bar空间太大导致。换另一款bar空间小的卡&#xff0c;仍然无法开…...

数据结构与算法——排序算法

目录 文章目录 前言 一.排序的基本概念 1.什么是就地排序 2.什么是内部排序和外部排序 3.什么是稳定排序 4.判定一个排序算法的是稳定的 二.插入排序算法 1.直接插入排序 1.1基本思想 1.2复杂度 1.3稳定性 1.4代码演示 2.折半插入排序 2.1基本思想 2.2性能 3.…...

阿里巴巴alibaba API商品详情接口系列(商品属性,价格,主图)阿里巴巴alibaba根据ID取商品详情 API 返回值说明

阿里巴巴Alibaba的API商品详情接口系列通常用于获取指定商品的详细信息&#xff0c;包括商品属性、价格、主图等。与来赞达Lazada的API类似&#xff0c;具体的返回值可能会根据API的版本和阿里巴巴平台的更新而有所不同。 以下是一个假设的阿里巴巴API商品详情接口的返回值示例…...

lcd画圆

//****************************************************************** //函数名&#xff1a; _draw_circle_8 //功能&#xff1a; 8对称性画圆算法(内部调用) //输入参数&#xff1a;(xc,yc) :圆中心坐标 // (x,y):光标相对于圆心的坐标 // c:填…...

React组件详解

React组件分为两大类 1.函数组件 2.类组件&#xff08;最常用&#xff09; 组件化 import ReactDom from "react-dom";// // 1.通过函数创建一个组件 // 2.函数名字必须大写开头 // 3.函数必须有返回值 function Func1() {return <h2>这是一个基础组件</h…...

C++面试:内存溢出、内存泄漏的原因与解决

目录 内存溢出&#xff08;Memory Overflow&#xff09; 内存溢出介绍 解决内存溢出问题的方法 内存泄漏&#xff08;Memory Leak&#xff09; 内存泄露基础 解决内存泄漏问题的方法 内存溢出&#xff08;Memory Overflow&#xff09; 内存溢出介绍 内存溢出是指程序在执…...

【Java程序员面试专栏 算法思维】二 高频面试算法题:二分查找

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊二分查找,包括基础二分,寻找目标值的左右边界,搜索旋转数组以及波峰,以及x的平方根问题,所以放到一篇Blog中集中练习 题目关键字解题思路时间空…...

kaldi 详细安装教程、PyTorch-Kaldi、TIMIT下载、Librispeech下载

kaldi 详细安装教程 本kaldi 安装教程 转载于该链接kaldi 详细安装教程 安装系统依赖&#xff08;如果经常使用linux 服务器&#xff0c;一般都会有&#xff09; apt-get updateapt-get install -y --no-install-recommends g make automake autoconf bzip2 unzip wget sox …...

国家精品课程建设工作网站/珠海百度搜索排名优化

车漆的效果除了基础的pbr效果&#xff0c;上面还可以添加两层额外的效果。一层是清漆的效果&#xff0c;另一层就是薄膜干涉的效果。 这个就是薄膜干涉的效果&#xff0c;可以明显的看出来颜色被分散开来。 这里图片是取自https://zhuanlan.zhihu.com/p/67763458 大佬的知乎…...

深圳微商城网站设计制作/虎扑体育网体育

总体介绍&#xff1a; 倾斜摄影就是将拍好的数据&#xff0c;三角网格化再附上贴图。 目前流行处理软件&#xff1a; Street Factory、PIX4DMapper、smart3D 后期开发平台&#xff1a;超图 Skyline smart3D相关资源网址&#xff1a;http://www.acute3d.com/s3c-viewer/ 其他相关…...

网站建设与优化/西安seo关键字优化

javaSE学习第十三天java知识 StringBuffer类的概述 A:StringBuffer类概述 通过JDK提供的API&#xff0c;查看StringBuffer类的说明 线程安全的可变字符序列 B:StringBuffer和String的区别 String是一个不可变的字符序列 StringBuffer是一个可变的字符序列 StringBuffer…...

淄博桓台网站建设公司/百度推广登录

转载注明出处&#xff1a;简书-十个雨点 这篇文章教你如何帮助用户自动接听或者挂断来电。当然并不是我原创的代码&#xff0c;我只不过是把stackoverflow上的一些代码整合了一下&#xff0c;做个代码的二传手。 源码 AcceptOrRejectCallDemo 源码中用了MVP的模式&#xff0c;只…...

沈阳设计培训网站建设/网站营销推广

私钥和公钥的使用1、私钥1.1、生成密钥证书2、公钥2.1、导出公钥3、测试3.1、使用私钥生成JWT令牌3.2、使用公钥校验JWT令牌在Spring Security中常用私钥/公钥对来进行安全认证。认证服务使用私钥文件来产生一个JWT令牌&#xff0c;资源服务会保留一份与私钥文件对应的公钥文件…...

怎样破解网站后台密码/上海网站制作开发

举个STM32 HAL库里的结构体的例子&#xff1a; b被覆盖 这里的函数指针&#xff0c;巧妙的一逼&#xff01;&#xff01;&#xff01;好好想想&#xff0c;好好看看&#xff01;&#xff01;&#xff01;...