一 Unity里面配置Android运行环境
1.1 首先unity需要集成android编译环境,点击FIle->Build Settings
1.2 没是否有Android模块,没的话先下载Android模块
1.3 按下面的操作,下载Android支持,SDK,NDK,和JDK
1.4 如果之前AndroidStudio配置有这些,可以不用下载,进行配置就行,Edit->Preferences
1.5 选择External Toos选项,往下拉出现SDK相关配置,我们选择本地路径就可以了
有可以在AndroidStudio里面管理SDK版本
二 编译运行Android
2.1 点击File -> Build Setting -> Player Settings,进入项目配置页面
2.2 找到Player -> Android模块,配置图标,方向,发布包名等信息
屏幕放向
2.3 退出到Build Settings,点击Build或者Build Run
可以在目录文件生成一个未签名的apk
三 unity对android项目签名
3.1 上面只是编译了未签名的包,这是不安全的包,上不了应用市场,所以需要对apk进行签名发布。选择Project Setting选项的publish,进行密钥管理,可以新建或者选择本地密钥
3.2 那就新建一个,填写密钥信息
3.3 点击add Key就配置上了密钥密钥,选择Release正式包
3.4 还需要配置包名信息,包名是项目的唯一标识,非常重要。在Other Setting里面找到Identification的位置,填写包名,版本。
3.5 注意,默认只支持ARMV7架构,可能在部分手机不能运行,所以给了提示:您正在制作一个发布版本并使用自定义签名密钥,但它不支持本机64位。如果您计划发布此版本,请注意,大多数商店都需要支持本机64bit的二进制文件。通过更新播放器设置添加本机64位支持:将ScriptingBackend设置为lL2CPP,并确保目标体系结构包括ARM64
根据提示我们将ScriptingBackend设置为lL2CPP
3.6 然后换了提示:通过更新播放器设置添加本机64位支持:确保TargetArchitectures包含ARM64。
这是因为没有勾选ARM64,我们勾选下就可以了
64位架构必要配置说明:
- Minimum API Level:26 足以满足所有平台要求
- ScriptingBackend:IL2CPP,转编译为C++,性能更好,代码加密效果更佳
- Target Architectures:ARM64 2023年了目前所有一体机设备架构基本都以支持ARM64
3.7 然后我们重新编译,就在项目目录生成一个apk文件
3.8 查看apk是否是签过名的release包
首先要USB连接手机的开发者模式,即Unity里面有这个手机的连接信息
到jdk安装目录,右击进入终端窗口
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原生项目交互
4.1 有时候我们需要在另一个app里面启动一个unity游戏模块,这个时候就需要把unity导出项目为android的一个三方库,android集成这个unity库就可以跳转到游戏了。
4.2 在Build Setting里面勾选Export Project,看到底部的Build选项已经变为Export了,我们导出下
4.3 我们导出下,会生成一个Gradle构建的android模块,这个做android项目的就比较熟了,导入AndroidStudio就可以运行了
4.4 打开AndroidStudio,选择打开该Unity项目
4.5 可以看到UnityPlayerActivity就是游戏的入口,我们点击运行下
4.6 可以看到能够运行起来,结构也是支持32和64的,这时候就可以在任意一个其它页面跳转进来我们游戏页面了