Android Studio导出Jar包,实现Unity与Android之间的交互

首先说一下我的开发环境:
Android Studio 3.13
Unity3D 2018.2.7
JDK:1.8.1
Android API:28

Android Studio端操作:
1、新建Android工程

  • 创建一个空工程

Android Studio导出Jar包,实现Unity与Android之间的交互_第1张图片
最小API记得选API16
Android Studio导出Jar包,实现Unity与Android之间的交互_第2张图片
选择Empty Activity
Android Studio导出Jar包,实现Unity与Android之间的交互_第3张图片
其他设置可以默认,点击【finish】,创建一个新的工程
Android Studio导出Jar包,实现Unity与Android之间的交互_第4张图片

  • 新建一个Library module
    我们后面Unity3d中要使用的jar包就是从这个module导出

Android Studio导出Jar包,实现Unity与Android之间的交互_第5张图片
选择android library,再选择next
Android Studio导出Jar包,实现Unity与Android之间的交互_第6张图片
Android Studio导出Jar包,实现Unity与Android之间的交互_第7张图片
这个就是我们创建的模块:
Android Studio导出Jar包,实现Unity与Android之间的交互_第8张图片
为模块添加Unity中的classes.jar文件
找到Unity2018.2.7的安装位置中的classes.jar,复制这个jar文件:
Android Studio导出Jar包,实现Unity与Android之间的交互_第9张图片
将classes.jar粘贴到模块的libs文件夹下:
Android Studio导出Jar包,实现Unity与Android之间的交互_第10张图片
为模块添加classes.jar依赖:
右键选择模块设置:
Android Studio导出Jar包,实现Unity与Android之间的交互_第11张图片
添加classe.jar依赖
Android Studio导出Jar包,实现Unity与Android之间的交互_第12张图片
Android Studio导出Jar包,实现Unity与Android之间的交互_第13张图片

  • 在androidlibrary这个模块下新建Activity
    我们将在这个Activity调用Unity中的方法以及在这里提供方法让Unity调用
    Android Studio导出Jar包,实现Unity与Android之间的交互_第14张图片
    Android Studio导出Jar包,实现Unity与Android之间的交互_第15张图片
    可以默认设备,单击【finish]
    Android Studio导出Jar包,实现Unity与Android之间的交互_第16张图片

删除我们刚刚创建的activity_main.xml文件
Android Studio导出Jar包,实现Unity与Android之间的交互_第17张图片
Android Studio导出Jar包,实现Unity与Android之间的交互_第18张图片
修改模块中的MainAcitvity.java类,如下:
Android Studio导出Jar包,实现Unity与Android之间的交互_第19张图片
修改模块中的AndroidMainfest.xml文件,如下
Android Studio导出Jar包,实现Unity与Android之间的交互_第20张图片

  • 导出jar包
    Android Studio导出Jar包,实现Unity与Android之间的交互_第21张图片
    找到生成的classe.jar文件,替换原来的classe.jar
    Android Studio导出Jar包,实现Unity与Android之间的交互_第22张图片

在桌面新建一个文件夹temp,在temp里面再新建 libs文件夹和res文件夹
Android Studio导出Jar包,实现Unity与Android之间的交互_第23张图片
将生成的classes.jar文件拷贝到libs文件夹中:
Android Studio导出Jar包,实现Unity与Android之间的交互_第24张图片
将layout和values文件夹拷贝到res文件夹中:
Android Studio导出Jar包,实现Unity与Android之间的交互_第25张图片
Android Studio导出Jar包,实现Unity与Android之间的交互_第26张图片
将AndroidMainfest.xml文件拷贝到temp文件夹中:
Android Studio导出Jar包,实现Unity与Android之间的交互_第27张图片
Android Studio导出Jar包,实现Unity与Android之间的交互_第28张图片

修改这个AndoridMainfest.xml文件:

Android Studio导出Jar包,实现Unity与Android之间的交互_第29张图片
以上为Android 端的设置

Unity端操作

  • 将刚刚temp文件夹中的文件复制到Unity工程中:

Android Studio导出Jar包,实现Unity与Android之间的交互_第30张图片

  • 新建测试脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UnityAndroidTest : MonoBehaviour {
    public Text resultText;

	// Use this for initialization
	void Start () {
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic("currentActivity");
        //调用android端的add方法
        int result = jo.Call("add", 1, 2);
        resultText.text = result.ToString();
	}
	
	// Update is called once per frame
	void Update () {
		
	}

	/// 
    /// 提供方法让android调用
    /// 
    public void ChangeColor()
    {
        resultText.color = Color.red;
    }
}

unity build 设置
Android Studio导出Jar包,实现Unity与Android之间的交互_第31张图片
运行结果
Android Studio导出Jar包,实现Unity与Android之间的交互_第32张图片
真机运行得出红色的3,unity与android相互调用成功

你可能感兴趣的:(Unity)