Unity与Android交互及退出机制

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交互退出unity unity android 交互_android


unity与android交互退出unity unity android 交互_unity_02


unity与android交互退出unity unity android 交互_jar文件_03

2.创建Module

unity与android交互退出unity unity android 交互_jar文件_04


unity与android交互退出unity unity android 交互_jar_05


unity与android交互退出unity unity android 交互_jar文件_06

3.导入Unity中classes.jar文件

切换到Project面板

unity与android交互退出unity unity android 交互_jar_07


找到当前Unity版本的classes.jar,Windows的路径当前Unity版本\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Development\Classes

unity与android交互退出unity unity android 交互_jar文件_08


把classes.jar文件拷贝到libs文件夹下,并设置成library,用于导入。

unity与android交互退出unity unity android 交互_Android_09


unity与android交互退出unity unity android 交互_jar文件_10

4.编辑代码

在自己创建的工程名称下创建空的Activity。

unity与android交互退出unity unity android 交互_Android_11


unity与android交互退出unity unity android 交互_jar_12


编写代码,注意红框中的内容,这里只写了一个简单的返回文字的方法。

unity与android交互退出unity unity android 交互_android_13

5.设置AndroidManifest

只需要设置自己创建的文件夹下的AndroidManifest。

unity与android交互退出unity unity android 交互_Android_14

6.打包Android Studio

构建自己创建的模块。

unity与android交互退出unity unity android 交互_jar文件_15


构建完成后,切换至Project面板,找到arr文件并复制。

unity与android交互退出unity unity android 交互_jar文件_16

7.导入Unity

创建Unity工程,在Assets文件夹下创建Plugins文件夹,再创建子文件夹Android,arr文件粘贴到该文件夹下。

unity与android交互退出unity unity android 交互_android_17


更改arr文件的后缀名为zip,并解压缩。

unity与android交互退出unity unity android 交互_unity_18


删除libs文件夹下的classes.jar文件,防止与另一个classes.jar发生冲突。

unity与android交互退出unity unity android 交互_android_19


删除不必要的文件,只保留这两个文件即可。

(注意这两个文件一定要放在Android文件夹下面,不可以再包一层父文件夹)

unity与android交互退出unity unity android 交互_jar_20

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

               

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空