Unity如何使用Java类(理论篇)

如何优雅的在Unity中编写Java代码 如何在优雅的Unity中编写Java代码 目录 文章目录如何在优雅的Unity中编写Java代码目录为什么要在Unity中写Java代码那么如何添加Java代码到Unity创建Android Library修改AndroidManifest.xml的位置添加project.properties文件删除不必要的文件和依赖创建链接 为什么要在Unity中写Java代码 这是一个值得深思的问题,Unit... 阅读详情

开发环境

Window 7

Unity3D 3.4

MB525 defy  Android 2.2.1

     

       羽化的第五篇博客,这次送上较晚了点,原因是手机出了点问题,又忘记拷项目了,所以星期二才开始写,这个还是要坚持的,一月至少一篇,无论是记事还是技术分享。话说最近手机突然不给力,USB口出了点问题,由于是水货,拿去MOTO服务中心去修,着白眼不说还被坑一顿,幸好手机突然崛起了,还算幸运吧~ ~ 最近开始了魔兽台服征程,原因有两个,一是为了菲尔、月光、女孩那些原来一起奋战的好友吧,虽然现实中互不认识,但在魔兽里面在一起真的十分快乐,真希望他们在现实生活也能开心快乐,二是为了完成对朋友的诺言,羽化说过一定会把狼人打到满级的,无论如何不能忘记自己的承诺。选在8.3号开始,可能是巧合,也可能是宿命吧~ ~你一定要过得比我好啊。。。发最后句牢骚,希望二姨爹能挺过这段时间早日康复。

       这次希望看的人看看第一部分再考虑看不看下面的部分。

      

本次学习:

1.为什么叫理论篇

2.ikvm环境搭建和使用方法

3.Unity实现Java类

 

1.为什么叫理论篇

       理论篇也就意味着这个方法不能再实际中使用,但确实是个可行的方法。羽化是做Android游戏开发的,有时候在想如果Unity能使用写好的Java类,无论是存储还是Android控件使用,都会把一切变得简单很多,所以羽化不断在找类似的方法,这是羽化在外国网站看到一个留言上面写的方法,于是自己尝试了一下,发现还真的可行,Java类顺利的运行了,可是却遇到了问题,无法打包,无论是生成任何格式,都无法解析dll文件,所以只能抱恨暂时停止了这方面的研究,如果谁看过此文,能成功导出项目,希望能指点下羽化,无论是留言还是邮箱(675517707@qq.com)都行。

 

2.ikvm环境搭建和使用方法

        ikvm不知道到底出不出名,反正羽化原来没听说过。。。百度上说“IKVM.NET的是开源的基于.NET CLR 的Java虚拟机。 ” 相信很多人看到这里知道这软件到底是怎么作用了。

        1)首先我们先搭建使用环境,在http://www.ikvm.net/上下载最新的ikvm,包括使用方法都可以在这网站上找到,这做的很好很方便。

        2) 为了方便使用,我们可将ikvmbin目录加入到系统path.现在我们将使用IKVM就像使用JVM一样,并不需要配置。

        3 )然后将我们要使用的类ExampleLibrary打成.jar包,这里羽化使用的是Eclipse,对着想导出的类选择Export后选择Java里面的JAR包就行了。

public class ExampleLibrary
{
	private int n = 0;

	public ExampleLibrary()
	{
	}

	public String HelloWorld(int num)
	{
		n += num; 
		String s = num + "";
		return s;
	}
}

 

        4) 随后在cmd命令控制台里面先输入jar包所在地址,比如在C盘根目录就 cd\  ,然后使用ikvm的指令 ikvmc ExampleLibrary.jar,ExampleLibrary.dll就生成了

        5 )把这个dll和ikvm目录bin下面的IKVM.OpenJDK.Core.dll 和 IKVM.Runtime.dll一起复制到Unity项目里面

 

3.Unity实现Java类

        上面的准备工作都做好以后,就写一个C#脚本来实现它

using UnityEngine;

public class JavaHelloWorldScript : MonoBehaviour
{
	public int num = 100;
	ExampleLibrary exampleLibrary = new ExampleLibrary();
	
	void OnGUI () 
	{
		string text = exampleLibrary.HelloWorld(num);
		GUILayout.Label(text);
	}
}

       名字随便取的,看起是不是很简单,就是在GUI上面显示我们输入的100后返回的内容,下面我们把这个脚本绑定在摄像机上,运行就可以看到左上角的数字在不停跳了,这样我们的Java类功能实现了。

       就如上面所说,这一种写法没有办法用在实际中,原因可能是ikvm本身的缺陷AWT和Swing还未有功能。 但是羽化相信,Unity能使用Java类的日子在不断接近,总有一天能用的上。如果谁有好的方法欢迎讨论~ ~

 

下集预告:

       Unity射线应用 

浅析 Unity 与 Java 的相互调用 前言:游戏后期需要打包Android 平台包,以供上线。然后就有了涉及 Unity 与Java 之间相互调用 方法的问题。Unity 调用 Java 可有参返回,也可无参返回,这里仅简单介绍 无参返回的使用 笔记。Unity 调用 Java 方法:1.1 // 通过指定 包名的实例对象 调用java方法 AndroidJavaClass jc = new AndroidJavaClass("... 阅读详情

相关推荐

Unity有哪些适合拿来练手的游戏项目?

首先推荐一篇文章,其中涵盖海量Unity和C#的书籍、demo等海量干货。文章链接:Unity 高级程序员应该具备怎样的能力?要怎样成长为 Unity 高级程序员?Unity有哪些适合练手的游戏项目?还是老规矩,全文无付费无套路,Unity学习路线初级实践版来咯~

SiKi学院的博客 5778

Unity调用Java——直接使用.java文件

从Unity2018.2开始,Unity开始支持使用Java或Kotlin源码文件作为插件直接导入Unity工程中使用。在构建Android时会编译这些源码。使用这个功能必须要设置Android构建系统为Gradle,Unity2019好像只有gradle一种构建系统了 使用方法: 1.创建一个Android空白工程,并新建一个Java类用于写Java端的功能 package com.te...

eFunTech 1万+

unity 调用 java 接口

首先,描述一下遇到的问题: java 插件包含哪些内容?怎么组织目录结构? unity 如何获取android应用的 context? unity 和 java 数据类型的映射? unity 如何调用 java 的 API? java 如何回调 unity 方法?

zhuiyuanqingya的博客 4139

unity3d 后台可以用java吗

我整理的一些关于【API】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/xltfovUnity3D 后台可以用 Java 吗? 在游戏开发的领域中,Unity3D 是一个备受欢迎的游戏引擎,它支持多种编程语言,其中最主要的语言是 C#。不过,在后台服务的开发中,Java 也...

weixin_29465407的博客 600

unity 中使用Google Protobuf的使用

在proto3中支持所有的语言!注意:这里选择netstandard2.0中的dll文件是因为unity2019.4.x中 api版本对应的时.NET Standard 2.0,不同版本的unity要找不同的net版本对应,否则会有冲突,一般更高版本的unityapi版本为netstandard2.1。使用 Protobuf 无需学习复杂的文档对象模型,Protobuf 的编程模式比较友好,简单易学,同时它拥有良好的文档和示例,对于喜欢简单事物的人们而言,Protobuf 比其他的技术更加有吸引力。

weixin_43298513的博客 3529

unity 本地使用Json(全套)

今天聊一聊怎么使用Json,从怎么编辑Json内容到代码里得到并使用Json。手把手教学,看完本章节即会完整的使用流程!好记性不如烂笔头!

qq_37524903的博客 2963

unity如何与java交互_{Unity} C#和Android Java交互

AndroidJavaProxyAndroidJavaProxyclass in UnityEngineDescriptionThis class can be used to implement any java interface. Any java vm method invocation matching the interface on the proxy object will aut...

weixin_33891841的博客 774

Bartender 2021破解版安装教程:手把手教你从下载到激活(附详细步骤图)

本文详细介绍了BarTender 2021专业版的安装与高效应用指南,从基础配置到高级条码设计,帮助用户快速掌握标签设计与打印技术。内容涵盖安装步骤、标签模板创建、数据连接与批量打印技巧,以及高级功能如安全策略与自动化集成,适合零售、物流、制造等行业用户提升工作效率。

p4q5r6s7t的博客 2643

Unity的AndroidJavaProxy的使用

Unity的AndroidJavaProxy的使用 参考链接: https://docs.unity3d.com/ScriptReference/AndroidJavaProxy.html https://www.jianshu.com/p/ceaac83808f2 使用环境: Unity调用jar中java方法并且使用C#侧的回调函数: 一般用于在java中定义接口(interface),作为某...

鳄鱼泪的博客 3344

UDS(三)网络层时间参数

网络层定义了N_Ar、N_As、N_Br、N_Bs、N_Cr、N_Cs六个时间参数。 网络层在检测到错误的时间传递至上层使用者 1.当N_As 超时时,即发送方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.comfirm指示 2.当N_Ar超时时,即接收方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.co

weixin_44522306的博客 1万+

Trae IDE与Playwright MCP:5分钟实现零代码网页数据抓取

网页数据抓取是数据采集和自动化处理中的基础技术,其核心原理是通过程序模拟浏览器行为,定位并提取页面中的结构化信息。传统方式依赖编写脚本处理网络请求、解析HTML和应对反爬机制,技术门槛较高。而结合AI与自动化工具的新范式,通过自然语言交互即可完成复杂操作,极大降低了技术门槛并提升了开发效率。这种技术价值在于将开发者从繁琐的编码中解放,使其更专注于数据分析和业务逻辑。在数据监控、市场调研、竞品分析等应用场景中,快速获取网页数据是关键需求。本文以Trae IDE集成Playwright MCP为例,演示如何通过

culi3118的博客 498

unity调用java没有用_【Unity】Unity中C#与Android中Java的互相调用遇到的一些问题

1.有关调用的一些问题:(1).在C#中直接调用java中的代码,无返回值:在java中:1 public static void setAge(Context context , int level) {}在C#中:1 private static string JAVA_CLASS = "com.wonver.game";2 private static string UNITY_CLASS ...

weixin_31451231的博客 639

Navicat16/17数据库密码安全解析与实战解密指南

本文详细解析了Navicat 16/17版本中数据库密码的加密机制,并提供了实用的密码找回指南。通过导出连接文件获取加密密文,利用基于AES-128-CBC算法的本地HTML工具,可安全、离线地解密遗忘的密码。文章强调该方法仅适用于合法恢复自有密码,并给出了操作步骤与安全建议。

weixin_28835583的博客 467

【转载】Unity 调用java代码 以及java回调

本文原始来自https://blog.youkuaiyun.com/BDDNH/article/details/100583822 感谢大神的辛勤研究和分享。 <div class="htmledit_views" id="content_views"> <p>Unity版本2018.2.17&nbsp; , 直接支持java代码,所以我在使用的时候没有打包成aar。</p> &l...

glunoy的专栏 2560

SAP 接口测试操作-业务顾问

业务顾问测试接口操作

weixin_43657667的博客 5158

MIKE水动力笔记2_水动力基础理论知识

本文所讲内容是水动力基础理论知识,所参考的主要书籍是《水动力学和水质》(第二版,季振刚著,海洋出版社)。

晏长街的博客 1万+

Unity直接使用.java文件

目录 环境配置说明 前言 准备一个.java插件的源文件 Unity工程 调用安卓自Toast功能 不想复制粘贴的,可以下载工程查看 环境配置说明 Unity2018.4.12f1(64bit),Visual Studio Pro 2019 前言 从Unity2018.2版本以后,Unity已经可以直接编译 .cpp、.a、.java 文件作为 插件 在Unity程...

yhx956058885的博客 2342

手把手带你实现DAF-Net:零代码基础入门红外与可见光图像融合(从理论到实战)

本文介绍了红外与可见光图像融合技术及DAF-Net网络的应用。红外图像能捕捉热源但缺乏细节,可见光图像纹理丰富但在低光环境下表现不佳。DAF-Net采用双分支特征提取和动态注意力融合架构,能智能分配特征权重实现优势互补。文章详细讲解了环境配置、数据集准备(如TNO数据集)和预处理方法,并提供了DAF-Net的核心代码实现,包括特征提取、注意力融合和图像重建模块。通过该技术可在安防、自动驾驶等领域获得更优质的融合图像,提升视觉感知能力。

m0_71589036的博客 229

[Unity安卓开发][使用篇]Unity&Android交互基础

AndroidJavaObject AndroidJavaObject是 java.lang.Object的Unity 表示,可以理解为Java Object的化身。可以用过指定Object的来源来构造对应的Java实例。 AndroidJavaObject中文文档 AndroidJavaObject javaString = new AndroidJavaObject("java.lang.String"); 主要的几个api的使用: Call 调用实例对象Java 方法,这里不是静..

卡塔部落-老酋长 1990

GRCNN抓取网络学习3【自制Jacquard数据集模型调优】

请先完成,这样有利于下面操作的理解!然后第二步是,有了自己的数据集输入到GRCNN中是三种文件,那么可以GRCNN抓取网络学习2【自制Jacquard数据集训练】!既然学会训练,那么开展下一步计划模型调优。GRCNN源码:https://github.com/skumra/robotic-grasping。

vor234的博客 2502

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Unity-使用Unity2018.2直接编译.java

文章目录环境配置说明前言准备一个.java插件的源文件添加到Unity工程中在Unity中使用示例 环境配置说明 Unity2018.2.2f1(64bit),Visual Studio Pro 2017 前言 从Unity2018.2版本以后,Unity已经可以直接编译 .cpp、.a、.java 文件作为 插件 在Unity程序中使用了,可以节省下使用VS、AS、XCode进行插件开发的导出调...

闲心居 3864

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Unity 调用java代码 以及java回调

Unity版本2018.2.17 , 直接支持java代码,所以我在使用的时候没有打包成aar。 基本都是固定的代码 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //固定的,获取UnityPlayer类 currentActivity = jc.GetSta...

BDDNH的博客 3088

老版QQ原生表情gif动态

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[Unity]Unity和Android的交互,不继承UnityPlayerActivity

        项目上需要获取CPU型号,但是Unity自身的API接口刚好没有这个功能,只好通过安卓自身的接口来获取。现在很多Unity和安卓的交互都是通过继承UnityPlayerActivity,但是一般这种继承都是用于写SDK的。         还好有过之前的Unity调用NDK的经验,刚开始转程序的时候,在上海一家公司的实验室里有待过一段时间,刚好处理过类似的。先用AndroidSt...

学习之路 1万+

unity 调用 java_实现Unity 调用Android中的java代码

实现Unity 调用Android中的java代码Android 法式按照变态流程创建一个Android工程。在unity的装配路子Editor\Data\PlaybackEngines\androidplayer\bin 下找到classes.jar(windows)将Unity的classes.jar 拷贝到Android工程下libs文件夹下,并引入工程里(右键 >Build path...

weixin_31913557的博客 702

unity调用普通java类_Unity中C#和Java的相互调用实例代码

1、通过C#调用Java的方法:在C#中添加调用的一些代码,利用Unity提供的一些接口实现调用Java!private const string JAVA_CLASS_Name = "com.unity3d.player.UnityPlayer";private void CallJavaFunc(string javaFuncName,params object[] args){try{//获...

weixin_42505792的博客 317
上一篇: Android Unity3D游戏开发之躲避方块
下一篇: Unity射线应用(第三人称Demo制作)
羽化
博客等级 码龄16年 323粉丝 27原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值