Unity与安卓交互 之 ✨ 在Android Studio中写代码导出aar包,在Unity中使用交互(小白完整篇)

举报
呆呆敲代码的小Y 发表于 2021/08/16 09:17:54 2021/08/16
【摘要】 在Android Studio中写代码导出aar包,在Unity中使用交互(小白完整篇)

在Android Studio中写代码导出aar包,在Unity中交互调用(小白完整篇)

AndroidStudio中的操作步骤:

首先,打开AndroidStudio新建一个工程,版本不同,所以操作的界面跟步骤可能不太一样,但是核心就是包名罢了,其他的一律默认Next带过就行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就是等它把工程新建完打开工程后,File->New->New Module,选中Android Library,新建一个Module。我这里新建的Module名字是MyunityLibrary。在这里创建一个EmptyActivity,起名为MainActivity,创建好后是这个样子
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

现在这里有两个AndroidManifest,一个是本工程的,还有一个就是新建的unityLibrary的。这里把app的AndroidManifest中红色背景的部分全部复制到另一个AndroidManifest中。

在这里插入图片描述在这里插入图片描述
报红的都删掉。android:label改成想要的应用名字。并且加上这一句:


<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>

如下图配置所示就行

在这里插入图片描述

删除layout下的activity_main.xml文件,并删除刚刚新建的MainActivity中的setContentView(R.layout.activity_main);


在这里插入图片描述在这里插入图片描述
导入Unity的classes.jar文件,我的路径是在D:\Program D:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes下。复制,粘贴到libs目录下。
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
描述
Build->Make Project,等待执行完毕。
选中unitylibrary->Build->Make Module"unitylibrary",等待执行完毕。


在这里插入图片描述在这里插入图片描述
找到build目录下的AndroidMainfest和unitylibrary.aar包,都复制出来。
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

然后修改刚才单独复制出来的AndroidMainfest文问:修改报名packet=,此处报名需和等会unity打包时的报名一致即可。(此处尽量修改一下,不要与原来的package一样,因为我设置一样的时候在unity调用的时候可能会找不到android中的方法类,原因可能是aar包中的AndroidMainfest与aar包外的这个AndroidMainfest的package一样导致unity不知道用哪个出错。这是自己猜想的,大家知道尽量不一样就好)
在这里插入图片描述
描述
到了这一步,AndroidStudio中的步骤就算完成了,然后就得到了一个AndroidMainfest.xml和一个自己命名aar包,接下来就是unity中的操作了。


Unity中的操作步骤

在Project下新建一个Plugins/Android两个文件夹,将得到的.xml和aar包放到这个文件夹目录下。这样就把AndroidStudio中拿到的文件配置好了

在这里插入图片描述在这里插入图片描述
接下来在unity中写一个脚本调用安卓中写的方法进行调试,新建一个Text,将脚本挂在Canvas上,建一个Text,用来显示结果。新建脚本调arr包中写好的add方法,把结果显示在text上。这里用了try cash,如果出错方便从手机上直接看到报错信息,实际操作中不需要。
在这里插入图片描述在这里插入图片描述
调试脚本如下,


 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
    这两行时固定写法,获取安卓相关
 jo.Call<int>("add", 2, 3);

这一行是调用安卓中的add方法

在这里插入图片描述

接下来就是打包这个unity工程,在player Settings找到这个Package Name 改为在AndroidMainfest中设置的Packagename相同
,然后Build打包即可。


在这里插入图片描述在这里插入图片描述
在这里插入图片描述

文章参考这个,自己照着做的时候感觉有些地方不懂,弄好了以后修正了一些地方发布的。点击可转到原文

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。