Unity与Android Studio交互的实现
Unity与Android Studio交互的实现
在使用Unity开发功能的时候,有时会需要调用android原生的功能,这时就要用Android Studio打包出插件放到Unity工程中。
一、开发工具
1.Unity 2018.4.23f1
2.Android Studio 3.5.2
(不同的版本和操作系统的操作方式几乎相同,只是界面选项有些许不同。)
二、开发流程
Android Studio创建library -> Android Studio导出arr文件 -> arr文件移至Unity并解压设置位置 -> c#中实现功能 -> Unity打出Android包并测试
三、开发步骤
1. 创建工程
2.创建Module
3.导入Unity中classes.jar文件
切换到Project面板
找到当前Unity版本的classes.jar,Windows的路径当前Unity版本\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Development\Classes
把classes.jar文件拷贝到libs文件夹下,并设置成library,用于导入。
4.编辑代码
在自己创建的工程名称下创建空的Activity。
编写代码,注意红框中的内容,这里只写了一个简单的返回文字的方法。
5.设置AndroidManifest
只需要设置自己创建的文件夹下的AndroidManifest。
6.打包Android Studio
构建自己创建的模块。
构建完成后,切换至Project面板,找到arr文件并复制。
7.导入Unity
创建Unity工程,在Assets文件夹下创建Plugins文件夹,再创建子文件夹Android,arr文件粘贴到该文件夹下。
更改arr文件的后缀名为zip,并解压缩。
删除libs文件夹下的classes.jar文件,防止与另一个classes.jar发生冲突。
删除不必要的文件,只保留这两个文件即可。
(注意这两个文件一定要放在Android文件夹下面,不可以再包一层父文件夹)
8.编写c#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
public Text txt;
private AndroidJavaObject jo;
private void Awake()
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
}
void Start()
{
txt.text = jo.Call<string>("returnMessage");
}
}
一定要注意AndroidJavaClass和AndroidJavaObject,编写完成后打包测试,text的内容为“Android Studio Message”;