Android与Unity的交互

Android与Unity的交互,第1张

概述Android与Unity的交互方式Unity做好功能之后提供classes.jar文件,导入到AndroidStudio中进行之后的功能开发。最后由AndroidStudio打包APK。AndroidSutido做好项目导出jar或aar包,导入到Unity中作为Unity的插件使用,最后由Unity打包APKAndroid开发主要采用第一种方式,由A AndroID与Unity的交互方式

Unity做好功能之后提供classes.jar文件,导入到AndroID Studio中进行之后的功能开发。最后由AndroID Studio打包APK。

AndroID SutIDo做好项目导出jar或aar包,导入到Unity中作为Unity的插件使用,最后由Unity打包APK

AndroID开发主要采用第一种方式,由AndroID方来打包apk

使用方法

简单来说,跟AndroID与Js交互很像,都是定义好相同名字的方法互相调用

约定好相互调用的方法之后,由Unity编写代码,并导为出AndroID library

这个library中会包含所需的so库,assets,最主要的是lib下的class.jar,与AndroID交互主要就是使用这个类中的方法

AndroID方面直接引用这个library库即可

AndroID调用Unity,拿到类UnityPlayer(library库中自动生成的方法位于class.jar中),调用约定要好的方法

munityPlayer.UnitySendMessage("Manager", "Manager", str); 三个参数依次是 Unity中交互脚本所挂的对象、需要调用的方法、方法里需要传递的参数 

Unity调用AndroID,约定好调用那个类中的什么方法,以及方法的参数,是否有返回值等

如下示例,就是调用com.unity3d.player.UnityPlayer类中的ShowRedPacket方法(无参数,无返回值)

AndroIDJavaClass jc = new AndroIDJavaClass("com.unity3d.player.UnityPlayer");AndroIDJavaObject jo = jc.GetStatic<AndroIDJavaObject>("currentActivity");jo.Call("ShowRedPacket"); AndroID中定义相应的方法,执行 *** 作:    public voID ShowRedPacket() {        Log.e(TAG,"ShowRedPacket所在线程:"+Thread.currentThread().getname());        //这里的线程是Unity main线程,需要转换到androID的主线程中 *** 作自己的业务逻辑        runOnUiThread(new Runnable() {            @OverrIDe            public voID run() {                showMyDialog();            }        });    }

注:

AndroIDJavaClass 代表一个java类, 例如 com.nobo.unity包下有个Util类 有一个静态方法 checkPermission()

可以这样调用new AndroIDJavaClass(“com…nobo.unity.Util”).callstatic(“checkPermission”);就相当于Util.checkPermission()


AndroIDJavaObject 代表一个java对象, 例如com…nobo.unity.Util, 有一个构造函数Util(String name, int age), 有一个方法checkPermission()

可以new AndroIDJavaObject(“com…nobo.unity.Util”,“wilfrIEd”,18).call(“checkPermission”), 就相当于 new Util(“wilfrIEd”,18).checkPermission();

缺点启动unity动画时可能会很耗时,但是Unity在导出的时候可以设置启动unity时的loading动画,应该可以规避此问题对手机性能影响比较大UnityPlayer.quit()调用的时候会杀死当前进程,所以我们需要为界面创建新的进程androID为Unity定义的方法,被调用的线程不是androID的主线程,如果需要 *** 作UI需切换到主线中进行 *** 作参考文献

android与Unity3d交互
关于Unity和Android交互的那些坑
Unity3D研究院之与Android相互传递消息(十九)
Android与Unity交互以及各种踩的坑
bilibili视频讲解

Demo示例

UnityDemo

总结

以上是内存溢出为你收集整理的Android与Unity的交互全部内容,希望文章能够帮你解决Android与Unity的交互所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1210411.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存