欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Unity与Android Studio交互的实现

程序员文章站 2022-09-06 11:32:43
Unity与Android Studio交互的实现在使用Unity开发功能的时候,有时会需要调用android原生的功能,这时就要用Android Studio打包出插件放到Unity工程中。一、开发工具1.Unity 2018.4.23f12.Android Studio 3.5.2(不同的版本和操作系统的操作方式几乎相同,只是界面选项有些许不同。)二、开发流程Android Studio创建library -> Android Studio导出arr文件 -> arr文件移至...

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. 创建工程

Unity与Android Studio交互的实现
Unity与Android Studio交互的实现
Unity与Android Studio交互的实现

2.创建Module

Unity与Android Studio交互的实现
Unity与Android Studio交互的实现
Unity与Android Studio交互的实现

3.导入Unity中classes.jar文件

切换到Project面板
Unity与Android Studio交互的实现
找到当前Unity版本的classes.jar,Windows的路径当前Unity版本\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Development\Classes
Unity与Android Studio交互的实现
把classes.jar文件拷贝到libs文件夹下,并设置成library,用于导入。
Unity与Android Studio交互的实现
Unity与Android Studio交互的实现

4.编辑代码

在自己创建的工程名称下创建空的Activity。
Unity与Android Studio交互的实现
Unity与Android Studio交互的实现
编写代码,注意红框中的内容,这里只写了一个简单的返回文字的方法。
Unity与Android Studio交互的实现

5.设置AndroidManifest

只需要设置自己创建的文件夹下的AndroidManifest。
Unity与Android Studio交互的实现

6.打包Android Studio

构建自己创建的模块。
Unity与Android Studio交互的实现
构建完成后,切换至Project面板,找到arr文件并复制。
Unity与Android Studio交互的实现

7.导入Unity

创建Unity工程,在Assets文件夹下创建Plugins文件夹,再创建子文件夹Android,arr文件粘贴到该文件夹下。
Unity与Android Studio交互的实现
更改arr文件的后缀名为zip,并解压缩。
Unity与Android Studio交互的实现
删除libs文件夹下的classes.jar文件,防止与另一个classes.jar发生冲突。
Unity与Android Studio交互的实现
删除不必要的文件,只保留这两个文件即可。
(注意这两个文件一定要放在Android文件夹下面,不可以再包一层父文件夹)
Unity与Android Studio交互的实现

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”;

本文地址:https://blog.csdn.net/weixin_44143264/article/details/107297669