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面板
切换到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”;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值