unity和android通讯,【Unity3D】Unity3D与Android的交互通讯(Android Studio3.0版本)

1、前言

这篇文章主要讲的是如何使用Android Studio与Unity的交互通讯。主要内容有如何在Android Studio建立工程,如何设置,以及如何导出。以及在Unity调用Android的方法。java

2、参考资料

3、目录

新建Android项目

新建Android模板Module

导入加载jar文件

修改AndroidMainfest.xml文件

修改MainActivity文件

编译构建项目

导入Unity

Unity调用Android项目方法

4、正文

一、新建Android项目

Fiele->New->New Project

0466d30d4626b3aa1e6513b2a02e3150.png

de244ee06b6d0d4d385ba0972276e031.png

31b8d31030974e1eca46d0ccb52fd0e0.png

1fe3c07c0557a3c4cae840d6ae0ce2dd.png

点击 FINISH 按钮,新建工程。

ad73fc39618366b414c5c00cf35c73e6.pngweb

二、新建Android模板Module

右键项目 New->Module

7dc3908865e40c821ccfd64981f08410.png

选择Android Library

480062adeb28c65408f5f88d79d52efa.png

这个地方能够设置模块的名字

6fa47d6a50765a18a99f27ae80dc7f15.png

点击Finsh就能够了

ff90018437f3c8a66e4f703bee1fd732.png

若是不当心写错模块名字了,想删除了,就右键 Open Module Settings

6cabc021382f4fa397582f07f03b19b7.png

删除就好了

2fda114585cccd341e8822cc86538eb4.pngapp

三、导入加载外部jar文件

这个有三种加载外部jar文件的方法,这边只采用第一种,剩余方法能够参考我另外一篇文章。

【Android Studio】导入外部jar包【https://blog.csdn.net/q764424567/article/details/85231151】

切换到Project视图

29024bdf7d1b5f851036daa2494f44d3.png

找到libs文件夹

169e0e9b5d6ff9c06ce961dd58a2f6cb.png

将你本身要使用的jar包拖进去(复制粘贴也行)

2879a2972b7191a804f34327eb439f98.png

742025def79676b9d694ca0240a23c33.png

ab367b7a626f86dba36546baaf78df04.png

右击Jar文件,点击Add As Library后,在出现的弹出框点击肯定便可

2194826fc10428f8b59b8a1a6e0a1c17.png

添加成功

导入成功的jar包

1ff443e0b1cd5ef5b511a1f9c265dbe7.png

打开build.gradle文件,能够看到最后一行添加成功的代码

f4bb3d108b94837893cb06d1ab3ae529.png

320dc4309155f877159726eec744b8e2.pngsvg

四、将Unity的classes.jar加载到项目中去

classes.jar这个文件,直接能够在Unity的安装目录中搜索,找到以后复制粘贴到项目的libs文件中

eb24f10332cb2a62b6ac872ea0283b07.png

10b35d3e163c18a098428877808874d8.png

df0561489dc65886277aff4ddc168620.png

f06364c6aaf481c1f6312fb69e3918c6.png

OK了

55c5a4e1d8eb5b65387539a836ed14b7.pnggradle

五、 新建MainActivity

切换到Android视图,而后展开unity_exchange->java->右键第一个文件夹

7c24e31d657d24f158088a8314089082.png

a2e96578114f85159f36407e61026dcb.png

不作任何 处理,点击 FINISH 按钮后。ui

就新建了MainActivity ,右边是初始脚本。

68db40b11394e9157fde5a6fefb0350a.pngspa

六、修改AndroidMainfest.xml文件

1.先把unity_exchange下面res文件夹中的layout下面的activity_main_xml删除

7b19b8f06d1aa120cc86dda19bc2dfb2.png

若是有报错

c106581dc235ae1579200635805b83f0.png

就把MainActivity.java脚本中的

78b3af0993f446c31d1c334a3a36356f.png

这一行注释掉.net

2.修改unity_exchange目录下的mainfests文件中的AndroidManifest.xml3d

打开app目录下的manifests文件夹中的AndroidManifest.xml

8fa955d9772b5aa9fe1f66c0225d819c.png

复制这一段代码

7573483c9251db8ea38656889943ed78.png

粘贴到unity_exchange->manifest->AndroidManifest.xml

19347c1e9131e9c75ce705c55df90076.pngcode

七、修改MainActivity文件

f20056acfc5fa757ee114fdbd7d1eb48.png

51f09002f1ba2b087c3f1a01d440ed39.png

这个时候,以下所示。

05eee54b8607531dea1ecac70e8af1ac.png

改成以下所示。

701d5bf64638598551a4970a3d57a213.png

下面就是在Android中编写Unity要调用的方法了,例如我这里只写一个简单的两数求和的方法:

9b3074561885b3c6b080601eb74fea9e.png

e2864861325d5e6380f17fa8cb7a1e00.png

八、编译构建项

1.编译

选中 unity_exchange 点击build – Make Module ‘unityexchange’

72a8b600310e07ff6b9195dcf1a537da.png

等待一下,就会显示以下所示。若是没有,就从新试几回。

263f3370fed947eaf03ffc25ef283ad7.png

使用 Build – Make Project 或者 Build – Rebuild Project 从新编译工程。

切換到Project视图,能够看到build文件中有一个packaged-classes文件夹,不一样版本的Android Stuido可能文件夹名字不同,百度一下就知道了

d1a0f584b1d79168406bbae66a143cf8.png

右键show in explorer,打开文件夹到当前目录

b544301ed17915a3e0826a61f63df4f8.png

2.把classes.jar移动到libs文件夹中

7253d3218759a9f7b7c76f791beff582.png

3.将AndroidManifest.xml和res文件夹,复制到这个文件夹中

AndroidManifest.xml在

ed950656f04b929b9ee8285444589dac.png

5e9ad4ddbfa656abdf0e5f61b807b2b3.png

856ff968f8ad34c25de7a14e09b1093e.png

九、导入Unity

新建Unity工程

在工程目录建立Plugins->Android

而后将上图中的3个文件复制过来

e9204306051b093934e9436855145ec3.png

十、Unity调用Android项目方法

1.新建test1.cs挂载在Main Camera上面

1e825c688692aae436f98ccd33877825.png

2.编写代码

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

public class test1 : MonoBehaviour

{

private Transform cantrans;//Canvas

private Text text;//text

private Button button;//按钮

private AndroidJavaObject jo = null;

private InputField input1;

private InputField input2;

void Start()

{

//固定写法

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

jo = jc.GetStatic("currentActivity");

cantrans = GameObject.Find("Canvas").transform;

text = cantrans.Find("Text").GetComponent();

button = cantrans.Find("Button").GetComponent();

input1 = cantrans.Find("InputField").GetComponent();

input2 = cantrans.Find("InputField2").GetComponent();

button.onClick.AddListener(OnClick);

}

//按钮方法

public void OnClick()

{

text.text = "";

int res = jo.Call("Add", int.Parse(input1.text), int.Parse(input2.text));

text.text = res.ToString();

}

}

3.制做UI

d19d842e1f315822d4f300768658c8c5.png

4.打包发布

复制AndroidManifest.xml中这一行代码

79dd98670859d22bab485c9dd07a1c99.png

粘贴到这里

7a68d87b0ad6891bd6191915052b4946.png

发布,运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值