Unity 之 导出为Android工程及在AndroidStudio中使用记录

举报
陈言必行 发表于 2021/11/30 08:16:46 2021/11/30
【摘要】 从Unity工程导出为Android工程,将导出工程在AS打开,并调试其编译通过,Unity和Android 互调

@[TOC](Unity 之 导出为Android工程及在AndroidStudio中使用记录)

本文使用环境::win10 + Unity2017.3.1 + Android4.1.1
请自行配置好JDKNDK 环境变量

一,从Unity工程导出为Android工程

打开需要导出的项目:【File】-- 【Build Settings…】 , 然后切换到Android平台,然后切换【Export Project】- 【Gradle】,勾选下面【Export Project】,最后点击Export
在这里插入图片描述
PS:PlayerSettings页的设置内容和正常打.apk设置一样即可…

导出成功的目录大概长这个样子:
1.0

若上述过程没有看明白,请点击查看详细教程:Unity 之 导出 Android项目过程


二,将导出工程在AS打开,并调试其编译通过

  1. 打开AndroidStudio,选择【Import Project(Gradle,Eclipse ADT,etc.)】打开刚刚导出的工程
    2.1

    若你的之前开过项目,打开Android自动开的了其他项目,这时你可选择【File - Close Project】即可退回到上面选择项目的界面了
    2.2

2.找到Unity打出Android包的目录选择,然后点击OK,如下图:
2.2
导入后你的工程右上角是这个状态的,那基本没有什么问题了,可以试着运行,按照报错去修改现有问题就可以了。
2.3
3.修改根目录的build.gradle文件,在下图两处添加【goole()】方法,修改你gradle版本,和buildToolsVersion版本。2.4
4.gradle版本需要根据你的gradle-wrapeer.properies下的设置相对应,
2.5
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了。
2.6

没有解决可查看: Unity 之 AndroidStudio打开导出Android工程详解


三,Unity和Android的互调

  1. 在AndroidStudio中找到UntiyPlayerActicity.java这个脚本我的工程目录如下,供你参考
    3.1
    编写如下代码,用来和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中使用,整个流程就是这样了,这中间没遇到一个问题我都是上网查是怎么回事,也都一一解决了,没有什么特别的点,若你碰到了比较奇葩的问题,欢迎你留言提问;若你有什么已经踩过的坑,那么也请你分享出来,以便帮助更多的人吧。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。