今日长缨在手,何时缚住苍龙。这篇文章主要讲述Unity3D调用android方法(非插件方式)相关的知识,希望能为你提供帮助。
关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客。假设你对Unity3Dproject增加到androidproject的过程不熟悉。也请先看完以下这篇博客:
android与Unity3D交互,fragment显示unity3d视图。
以下,我们来说说本博客的终端,Unity3D调用android的方法:
1.首先,在网络上大家能够看到非常多把android project打包,然后以插件的方式,放入Unity3D工程中来调用的方式,这样的方式,我不做评论,可是非常麻烦,所以我也没有进行尝试。大家有兴趣能够到网络上搜索一下看看。
2.假设讲Unity3D的project导出为android project然后进行再次开发的过程中。须要Unity3D调用android的方法,这个时候,再使用1中的方法。显然是不合适的。
那么我们要怎么样来做呢?分为以下几部分:
1.在初始化UnityPlayer的Activity中加入方法,例如以下:
/** * 測试Unity调用Android的方法 */ public void testMethod(String param){ System.out.println(" 參数为:" +param); }
对于提供的方法,不能够进行UI操作,由于Unity3D对于android的UI线程来说,仅仅是个子线程。假设要进行UI操作,能够使用Handler发消息。
2.在Unityproject中。利用c#文件来书写,Unity调用的代码:
public static void ActivateShareImage(string content) { if (Application.platform == RuntimePlatform.IPhonePlayer) { _PressButton3(content); } else if (Application.platform == RuntimePlatform.Android) { UISystem.Console(" test method!" ); AndroidjavaClass jc = new AndroidJavaClass(" com.unity3d.player.UnityPlayer" ); AndroidJavaObject jo = jc.GetStatic< AndroidJavaObject> (" currentActivity" ); jo.Call(" testMethod" , " unity" ); } else { } }
3,假设你已经有android项目了,那么就把新修改的Unity3D的项目导出为android project的,把新导出的project中的assets的目录,替换掉之前老的project中的,这样做的目的是更换Unity的修改,假设修改了其它的东西,也是这样更换的。可是假设你的assets目录下还有其它资源。请保留。
假设。你没有android项目,那么就把Unity3D的项目导出为android的project项目使用。
4.对于AndroidJavaClass这个类。以及它提供的方法,大家能够參考以下的站点:
AndroidJavaClass 安卓Java类
【Unity3D调用android方法(非插件方式)】这样,就能够完毕调用了。根本就不须要使用插件。关于android向Unity3D发送消息,日后会发博客叙述。
推荐阅读
- 安天移动安全联合猎豹移动首次揭露“Operation Manul”疑似在Android端的间谍软件行为
- appium启动时如何禁止安装UnlockSetting
- Android技术书4
- dapper的简单封装
- Android中TextView设置字体
- android生成分享长图而且加入全图水印
- [React] Theme your application with styled-components and "ThemeProvider"
- android开发——从相冊中选择图片不裁剪
- Android NDK开发篇(Java与原生代码通信(异常处理))