Unity之Android项目的打包

一 Unity里面配置Android运行环境

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

3fb1275833b64dcab002a8f60ca600ef.png

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

a6b55154d35c4ac38d1fc6c89ecbc30c.png

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

b204154f4e274364aee5578458766d9d.png

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

a819c9120d5549ed8467cbe8ea25b3a1.png

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

3a0982fce8ff4ab889f5f65106a26c15.png

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

2044234a260b467a94fa18f75305fd2b.png

二 编译运行Android

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

c4a7616966774db494abfcf9dd522248.png

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

edffe74fe59c48f58cc4f28d3a601d3d.png

96034c7161a843fd94edcdf8871f035f.png

屏幕放向

6cbd1cc8332942f1b39c66ac523e7cd1.png

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

7104a882b5194c3ea8bac7926a12ab78.png

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

6374843673ab4ebdb5ccd04070a08be8.png

三 unity对android项目签名

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

6c6e8410d4fd4efabc0b7267b7e0313f.png

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

acf7a22f5ed84ebeb989de44551bef57.png

8c2e1a829d7d46a3a783ef282829c358.png

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

3d4d481a17b8404ea5350b56a8ece4c8.png

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

fe4bf6202f2b4582a633b2ca9757f07f.png

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

d4d2a4463bef4e5a8e0238ca9c94db17.png

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

392466dc597b4346bff5e41cb92c9736.png

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

d55998bc27364600a1e109603c10bfcf.png

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

38dcc3b24cb646e780c48210ac67468f.png

64位架构必要配置说明:

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

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

5ea13646344d4043899213341dc6b4a3.png

af147c5e0a074abe881d80710544c17d.png

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

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

51b639ea138f453182be4769981bbc8e.png

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

8afbf8d96bc644d4812cfb34bea7aa4f.png

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包

a06021707b2d4f608cab6798ec17a619.png

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

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

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

ea4e8b3531d04f29aa6a083f82553f78.png

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

a8fe0baf177a411f8fa1bd013f2249b1.png

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

c275358f45df4db9a7a903b29f3d8105.png

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

6d39a7520ad046f89b67c7f61a457c64.png

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

29d13798f82146c29c1dac2c36df41d2.png

edfeaecfef664e1f953e1277a049162a.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/109619.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式事务解决方案之2PC

分布式事务解决方案之2PC 前面已经学习了分布式事务的基础理论,以理论为基础,针对不同的分布式场景业界常见的解决方案有2PC、 TCC、可靠消息最终一致性、最大努力通知这几种。 什么是2PC 2PC即两阶段提交协议,是将整个事务流程分为两个阶段…

变压器寿命预测(python代码,Logistic Regression模型预测效果一般,可以做对比实验)

1.数据来源官网:Data for: Root cause analysis improved with machine learning for failure analysis in power transformers - Mendeley Data 点Download All 10kb即可下载数据 2.下载下来后是这样 每一列的介绍: Hydrogen 氢气; Oxyge…

C语言之const

C语言之const const修饰全局变量 此时全局变量只能使用但是不能修改, 如果直接拿全局变量修改值,编译直接报错 如果使用全局变量的地址修改值,运行时程序异常结束 const修饰普通局部变量 可以读取变量的值 不能直接通过变量进行修改值&a…

[交互]交互的实战问题1

[交互]交互的实战问题1 状态码 431 Request Header Fields Too LargeReferrer Policy: no-referrer-when-downgrade路径参数高并发问题使用场景使用的方法异常情况 状态码 431 Request Header Fields Too Large 最近做项目,遇到一个问题,后台导出表格时…

GeoSOS-FLUS未来土地利用变化情景模拟模型

软件简介 适用场景 GeoSOS-FLUS软件能较好的应用于土地利用变化模拟与未来土地利用情景 的预测和分析中,是进行地理空间模拟、参与空间优化、辅助决策制定的有效工 具。FLUS 模型可直接用于: 城市发展模拟及城市增长边界划定;城市内 部高分…

Java基础篇

目录 1、Java语言有哪些特点 2、面向对象和面向过程的区别 3、八种基本数据类型的大小 4、标识符命名规则 5、Java 关键字 6、访问控制 7、instanceof 关键字的作用 8、final 关键字的作用 9、static 关键字作用 10、transient 关键字的作用 11、try catch final…

Virtualbox中Ubuntu根目录空间不足

现象 Virtualbox中Ubuntu根目录空间不足 解决 动态存储 虚拟机关闭先在虚拟介质管理里把硬盘Size调大开启Ubuntu用Disks或者GParted重新调整分区大小重新启动 步骤参考: https://zhuanlan.zhihu.com/p/319431032 https://blog.csdn.net/ningmengzhihe/article/details/1272…

数据结构与算法:树

目录 树 定义 结构 二叉树 定义 结构 形式 满二叉树 完全二叉树 存储 链式存储结构 数组 孩子节点 父节点 应用 查找 维持相对顺序 遍历 深度优先遍历 前序遍历 中序遍历 后序遍历 广度优先遍历 层序遍历 二叉堆 定义 自我调整 操作 插入加点 删…

408强化(番外)文件管理

有点看不下去书,408,哎好久没看了,死磕数学时完全不想看其他科目,数学分数也尚未质变。 突然想到一个好点子,只看大纲尝试回忆一下这章的内容。 文件就是为了方便用户使用,按名访问而提出的,从…

OPC是通讯协议吗安全性

目录 1 安全防护 1.1 防火墙 1.2 网闸 2 OPC是通讯协议吗 2.1 什么通讯协议 2.2 那么OPC又是什么? OPC官方说明文档 1 安全防护 本文阐述了控制网络以OPC接口接入信息网络应当采用的安全防护。 1.1 防火墙 防火墙是大家熟知的网络安全产品,并被用作控制网…

分布式事务解决方案之可靠消息最终一致性

分布式事务解决方案之可靠消息最终一致性 什么是可靠消息最终一致性事务 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能 够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终…

SpringMVC多文件上传

文章目录 一、文件上传1.1 导入pom依赖1.2 配置文件上传解析器1.3 设置文件上传表单1.4 实现文件上传 二、文件下载三、多文件上传四、JRebel的使用 一、文件上传 1.1 导入pom依赖 <commons-fileupload.version>1.3.3</commons-fileupload.version><dependency…