unity与android的相互调用

快要过年了,今天是上班的最后一天,下午就要回家啦~

最近项目中的任务完成的差不多了,主程让我们研究一下unity和Android之间的相互调用,于是在网上找了些资料,自己琢磨出来了。

公司使用unity引擎进行开发,所以对于安卓我没有什么经验,算是第一次接触。

下面将做法分享出来,希望能帮助到有需要的人,也作为自己的学习笔记吧。

一、安卓部分        (我用的是AndroidStudio)

(1)在Android试图下打开build.gradle,将 apply plugin:'com.android.application'修改为 apply plugin:'com.android.library'(这样做的目的是将安卓项目到处成unity需要的aar或者jar文件,而不是一个apk)

(2)删除defaultConfig下的applicationId一行,dependencies下删到只剩一行 compile fileTree(include: ['*.jar'],dir:'libs')

(3)将values文件夹下的style.xml删除,同时修改AndroidMenifest.xml中的主题设置 android:theme="@android:style/Theme.NoTitleBar"

(4)android:name=".MainActivity"本来是.Activity名 修改为自己的包名.Activity名,之后的Activity也是这样

(5)下图是我的AndroidMenifest.xml文件

 
(6)引入unity的classes.jar包。
mac下的路径为Application-unity-PlaybackEngines-AndroidPlayer-Variations-mono-Release-Classes-classes.jar
将这个文件拷贝到项目中的app-libs目录下,然后右键classes.jar选择Add As Library可以将其引入
或者在build.gradle文件中写一行compile files('libs/classes.jar')
(7)接下来写安卓代码
注意MainActivity继承自UnityPlayerActivity

然后在res下新建一个xml文件命名为firstactivity.xml




在src-main-java-自己的包名下新建一个java文件

注意要在AndroidMenifest.xml中配置,上面有图



到这里安卓部分已经大概完成了,解释一下上面的代码

MainActivity.java

继承自UnityPlayer,实现了一个切换到fristactivity的方法JumpToActivity1,这个方法是由unity来调用的,参数也是由unity传递过来

FirstActivity.java

继承自Activity,textView显示unity传递过来的字符串参数,button按下发送消息调用unity的方法,将editText中输入的内容作为参数传递过去

UnityPlayer.UnitySendMessage("Main Camera","GetMsg",editText.getText().toString());参数1是unity脚本挂载的物体,参数2是unity中c#脚本中的实现方法,参数3是Android传递给unity的参数
 
接下来将安卓项目导出给unity使用
Build Apk 将会在app-build-outputs-aar下生成一个app-debug.aar文件,在文件夹中打开它,将后缀改为.zip,解压,得到以下文件

其中标红框的文件是等会要用到的
 
 
二、unity部分
创建一个unity项目,新建Plugins-Android文件夹。将上图红框标记的文件赋值到Android文件夹下,将外面的Classes.jar拖到libs下替换libs下面的classes.jar
(1)在场景中拖上一个文本框Text,一个输入框InputField,一个按钮Button

(2)创建一个C#脚本 MainController.cs

(3)将脚本挂在Main Camera上
(4)给Button添加点击事件,按下按钮调用安卓的方法
 

(5)打包apk,在真机或者模拟器下运行

其中playerSetting中Bundle Indentifier 设置为自己的安卓包名


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值