Unity之Android项目的打包

一 Unity里面配置Android运行环境

1.1 首先unity需要集成android编译环境,点击FIle->Build Settings

Unity之Android项目的打包_第1张图片

1.2 没是否有Android模块,没的话先下载Android模块

Unity之Android项目的打包_第2张图片

1.3 按下面的操作,下载Android支持,SDK,NDK,和JDK

Unity之Android项目的打包_第3张图片

1.4 如果之前AndroidStudio配置有这些,可以不用下载,进行配置就行,Edit->Preferences

Unity之Android项目的打包_第4张图片

1.5 选择External Toos选项,往下拉出现SDK相关配置,我们选择本地路径就可以了

Unity之Android项目的打包_第5张图片

有可以在AndroidStudio里面管理SDK版本

Unity之Android项目的打包_第6张图片

二 编译运行Android

2.1  点击File -> Build Setting -> Player Settings,进入项目配置页面

Unity之Android项目的打包_第7张图片

2.2 找到Player -> Android模块,配置图标,方向,发布包名等信息

Unity之Android项目的打包_第8张图片

Unity之Android项目的打包_第9张图片

屏幕放向

Unity之Android项目的打包_第10张图片

2.3 退出到Build Settings,点击Build或者Build Run

Unity之Android项目的打包_第11张图片

可以在目录文件生成一个未签名的apk

Unity之Android项目的打包_第12张图片

三 unity对android项目签名

3.1 上面只是编译了未签名的包,这是不安全的包,上不了应用市场,所以需要对apk进行签名发布。选择Project Setting选项的publish,进行密钥管理,可以新建或者选择本地密钥

Unity之Android项目的打包_第13张图片

3.2  那就新建一个,填写密钥信息

Unity之Android项目的打包_第14张图片

Unity之Android项目的打包_第15张图片

 3.3 点击add Key就配置上了密钥密钥,选择Release正式包

Unity之Android项目的打包_第16张图片

3.4 还需要配置包名信息,包名是项目的唯一标识,非常重要。在Other Setting里面找到Identification的位置,填写包名,版本。

Unity之Android项目的打包_第17张图片

3.5 注意,默认只支持ARMV7架构,可能在部分手机不能运行,所以给了提示:您正在制作一个发布版本并使用自定义签名密钥,但它不支持本机64位。如果您计划发布此版本,请注意,大多数商店都需要支持本机64bit的二进制文件。通过更新播放器设置添加本机64位支持:将ScriptingBackend设置为lL2CPP,并确保目标体系结构包括ARM64

Unity之Android项目的打包_第18张图片

根据提示我们将ScriptingBackend设置为lL2CPP

Unity之Android项目的打包_第19张图片

3.6 然后换了提示:通过更新播放器设置添加本机64位支持:确保TargetArchitectures包含ARM64。

Unity之Android项目的打包_第20张图片

这是因为没有勾选ARM64,我们勾选下就可以了

Unity之Android项目的打包_第21张图片

64位架构必要配置说明:

  • Minimum API Level:26 足以满足所有平台要求
  • ScriptingBackend:IL2CPP,转编译为C++,性能更好,代码加密效果更佳
  • Target Architectures:ARM64 2023年了目前所有一体机设备架构基本都以支持ARM64

 3.7 然后我们重新编译,就在项目目录生成一个apk文件

Unity之Android项目的打包_第22张图片

Unity之Android项目的打包_第23张图片

3.8 查看apk是否是签过名的release包

首先要USB连接手机的开发者模式,即Unity里面有这个手机的连接信息

Unity之Android项目的打包_第24张图片

到jdk安装目录,右击进入终端窗口

Unity之Android项目的打包_第25张图片

adb shell命令查看apk是否为debug包

$ adb shell dumpsys package xx.xx.xx | findstr flags
查看apk是否release版本xx.xx.xx为包名

命令执行成功时,返回flags:
flags=[ DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP LARGE_HEAP ]

代表该APK为debug版本
flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP LARGE_HEAP ]
代表该APK为release版本

可以看到终端输出是release包

Unity之Android项目的打包_第26张图片

四 Unity游戏和Android原生项目交互

4.1  有时候我们需要在另一个app里面启动一个unity游戏模块,这个时候就需要把unity导出项目为android的一个三方库,android集成这个unity库就可以跳转到游戏了。

4.2 在Build Setting里面勾选Export Project,看到底部的Build选项已经变为Export了,我们导出下

Unity之Android项目的打包_第27张图片

4.3 我们导出下,会生成一个Gradle构建的android模块,这个做android项目的就比较熟了,导入AndroidStudio就可以运行了

Unity之Android项目的打包_第28张图片

4.4 打开AndroidStudio,选择打开该Unity项目

Unity之Android项目的打包_第29张图片

4.5 可以看到UnityPlayerActivity就是游戏的入口,我们点击运行下

Unity之Android项目的打包_第30张图片

4.6 可以看到能够运行起来,结构也是支持32和64的,这时候就可以在任意一个其它页面跳转进来我们游戏页面了

Unity之Android项目的打包_第31张图片

Unity之Android项目的打包_第32张图片

你可能感兴趣的:(unity,android,游戏引擎)