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
点击 FINISH 按钮,新建工程。
web
二、新建Android模板Module
右键项目 New->Module
选择Android Library
这个地方能够设置模块的名字
点击Finsh就能够了
若是不当心写错模块名字了,想删除了,就右键 Open Module Settings
删除就好了
app
三、导入加载外部jar文件
这个有三种加载外部jar文件的方法,这边只采用第一种,剩余方法能够参考我另外一篇文章。
【Android Studio】导入外部jar包【https://blog.csdn.net/q764424567/article/details/85231151】
切换到Project视图
找到libs文件夹
将你本身要使用的jar包拖进去(复制粘贴也行)
右击Jar文件,点击Add As Library后,在出现的弹出框点击肯定便可
添加成功
导入成功的jar包
打开build.gradle文件,能够看到最后一行添加成功的代码
svg
四、将Unity的classes.jar加载到项目中去
classes.jar这个文件,直接能够在Unity的安装目录中搜索,找到以后复制粘贴到项目的libs文件中
OK了
gradle
五、 新建MainActivity
切换到Android视图,而后展开unity_exchange->java->右键第一个文件夹
不作任何 处理,点击 FINISH 按钮后。ui
就新建了MainActivity ,右边是初始脚本。
spa
六、修改AndroidMainfest.xml文件
1.先把unity_exchange下面res文件夹中的layout下面的activity_main_xml删除
若是有报错
就把MainActivity.java脚本中的
这一行注释掉.net
2.修改unity_exchange目录下的mainfests文件中的AndroidManifest.xml3d
打开app目录下的manifests文件夹中的AndroidManifest.xml
复制这一段代码
粘贴到unity_exchange->manifest->AndroidManifest.xml
code
七、修改MainActivity文件
这个时候,以下所示。
改成以下所示。
下面就是在Android中编写Unity要调用的方法了,例如我这里只写一个简单的两数求和的方法:
八、编译构建项
1.编译
选中 unity_exchange 点击build – Make Module ‘unityexchange’
等待一下,就会显示以下所示。若是没有,就从新试几回。
使用 Build – Make Project 或者 Build – Rebuild Project 从新编译工程。
切換到Project视图,能够看到build文件中有一个packaged-classes文件夹,不一样版本的Android Stuido可能文件夹名字不同,百度一下就知道了
右键show in explorer,打开文件夹到当前目录
2.把classes.jar移动到libs文件夹中
3.将AndroidManifest.xml和res文件夹,复制到这个文件夹中
AndroidManifest.xml在
九、导入Unity
新建Unity工程
在工程目录建立Plugins->Android
而后将上图中的3个文件复制过来
十、Unity调用Android项目方法
1.新建test1.cs挂载在Main Camera上面
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
4.打包发布
复制AndroidManifest.xml中这一行代码
粘贴到这里
发布,运行