本文使用环境::win10 + Unity2017.3.1 + Android4.1.1
请自行配置好 JDK 和 NDK 环境变量
一,从Unity工程导出为Android工程
打开需要导出的项目:【File】-- 【Build Settings...】 , 然后切换到Android平台,然后切换【Export Project】- 【Gradle】,勾选下面【Export Project】,最后点击Export
PS:PlayerSettings页的设置内容和正常打.apk设置一样即可...
导出成功的目录大概长这个样子:
若上述过程没有看明白,请点击查看详细教程:Unity 之 导出 Android项目过程
二,将导出工程在AS打开,并调试其编译通过
- 打开AndroidStudio,选择【Import Project(Gradle,Eclipse ADT,etc.)】打开刚刚导出的工程
若你的之前开过项目,打开Android自动开的了其他项目,这时你可选择【File - Close Project】即可退回到上面选择项目的界面了
2.找到Unity打出Android包的目录选择,然后点击OK,如下图:
导入后你的工程右上角是这个状态的,那基本没有什么问题了,可以试着运行,按照报错去修改现有问题就可以了。
3.修改根目录的build.gradle文件,在下图两处添加【goole()】方法,修改你gradle版本,和buildToolsVersion版本。
4.gradle版本需要根据你的gradle-wrapeer.properies下的设置相对应,
AndroidGradle的版本说明:点击链接查看
当前版本更新如下:
插件版本 | 所需的 Gradle 版本 |
---|---|
1.0.0 - 1.1.3 | 2.2.1 - 2.3 |
1.2.0 - 1.3.1 | 2.2.1 - 2.9 |
1.5.0 | 2.2.1 - 2.13 |
2.0.0 - 2.1.2 | 2.10 - 2.13 |
2.1.3 - 2.2.3 | 2.14.1+ |
2.3.0+ | 3.3+ |
3.0.0+ | 4.1+ |
3.1.0+ | 4.4+ |
3.2.0 - 3.2.1 | 4.6+ |
3.3.0 - 3.3.3 | 4.10.1+ |
3.4.0 - 3.4.3 | 5.1.1+ |
3.5.0 - 3.5.4 | 5.4.1+ |
3.6.0 - 3.6.4 | 5.6.4+ |
4.0.0+ | 6.1.1+ |
4.1.0+ | 6.5+ |
5.buildToolsVersion版本需根据你的AndroidSDK下载的版本来进行选择,你可通过【Tools - SDKManager】来管理你的SDK,打开后界面如下,你可复制你的下载地址看一下,你已下载的版本是什么,就OK了。
没有解决可查看: Unity 之 AndroidStudio打开导出Android工程详解
三,Unity和Android的互调
- 在AndroidStudio中找到UntiyPlayerActicity.java这个脚本我的工程目录如下,供你参考
编写如下代码,用来和Unity互调
// 在Unity上调用的方法
public void UnityToAndroid() {
Log.i("Unity", "Czhenya Unity调用的安卓函数 UnityToAndroid...");
// Android 回调回 Unity arg: 游戏对象名, 方法名, 参数
UnityPlayer.UnitySendMessage("WellComeManager", "LoginSuccess", "用户名");
}
2.编写Unity代码,需要和上面的Android代码对应,创建名称为“WellComeManager ”的脚本,内部代码编写如下如下:
using System;
using System.Collections;
using UnityEngine;
// 和上面Android的名称要对应上
public class WellComeManager : MonoBehaviour
{
/// <summary>
/// 调用Android
/// </summary>
public void LoginForAndroid()
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
// 上面那个的Android的方法名
jo.Call("UnityToAndroid");
}
/// <summary>
/// Android的回调
/// </summary>
public void LoginSuccess(string arg)
{
Debug.Log("Android 的 回调参数..." + arg);
}
}
3.代码处理完成后,需要按照按照一,二步来导出项目,并重新进行配置, 然后进行运行或者打包调试即可。
Unity工程导出为Android包并将其在AndroidStudio中使用,整个流程就是这样了,这中间没遇到一个问题我都是上网查是怎么回事,也都一一解决了,没有什么特别的点,若你碰到了比较奇葩的问题,欢迎你留言提问;若你有什么已经踩过的坑,那么也请你分享出来,以便帮助更多的人吧。