一、Unity官方文档配置事项简介
-
android SDK ::>=6.0 "Marshmallow" (API level 23)
-
Manifest element attributes
启动需要singleTask启动模式
-
纹理压缩:
选择Ericsson Texture Compression (ETC)和Adaptable Scalable Texture Compression (ASTC)
-
Gradle 版本兼容性
Unity | Gradle Version | Android Gradle Plug-in version |
---|---|---|
2023.2 | 7.6 | 7.3.1 |
2022.3 | 7.2 | 7.1.2 |
2021.3 | 6.1.1 | 4.0.1 |
-
Gradle项目导出
- UnityLibrary module:包含Unity运行和资源数据,可以把该module嵌入到自己的Android App中
- Launcher module:简单的Android App demo,可以替换为自己的App
-
Unity Library Manifest描述了什么 ?
-
Unity build Setting for Android配置说明 docs.unity3d.com/cn/2023.2/M...
-
Unity as Library一些限制
- 只支持全屏
- 一个runtime实例
- 不能作为一个dynamic module
- 和跨平台Xamarin app platform不兼容
二、Android 官方文档游戏使用入门
通常,您可以开始在游戏引擎(例如 Unity、Unreal、Defold 或 Godot)中开发游戏。这也可能是您进行视觉设计的地方。然后,使用 Android 工具开发、优化和分发游戏。
开始开发 Android 游戏之前,您必须确定开发环境的三个基本组件。这其中包括:
- 游戏引擎
- 集成开发环境 (IDE)
- 图形 API
使用游戏引擎,您可以从以下方法中进行选择:
- 使用未经修改的游戏引擎(推荐)
- 自定义现有的游戏引擎
- 开发新的游戏引擎
这里即使用无需修改即可使用的游戏引擎Unity
- Unity :
一个使用 C# 编程语言的商业游戏引擎。
Unity配置说明
developer.android.com/games/engin...
个人认为比较重要的有如下:
-
帧率
为了防止 Android 设备过热,应以平均帧时间值低于 21 毫秒为目标。核心游戏体验的帧时间阈值仍应保持在 21 毫秒以下。许多 Android 设备的屏幕刷新率为 60Hz 和 120Hz。(
60Hz
时以10 毫秒
为目标,120Hz
以5 毫秒
),如果将帧时间的目标定得更低就可以避免渲染速率较高所带来的温控降频和耗电过多风险。如需在 Unity 中为游戏设置一个特定的帧速率,请使用
Application.targetFrameRate
如需要流畅的渲染,则在Project Settings > Player >Setting for Android > Optimized Frame Pacing 勾选上 -
图形API 使用
Vulkan
它是一个跨平台的高性能 3D 图形 API,与 OpenGL ES 相比,它的开销更低。设置Auto Graphics API,Unity会优先使用Vulkan,如果设备不支持,Vulkan, Unity会回退到OpenGL 3.2、3.1、3.0或者2.0- Project Setting> Player > Rendering
-
纹理压缩格式 对于 Android 上的 RGB 和 RGBA 纹理,建议使用的纹理压缩格式是 ASTC。
-
内存管理 使用 C# 编写脚本时,请慎用字符串、字符串比较和字符串相关对象(例如用于游戏设置的 JSON 文件)分配。这些用途需要频繁分配内存,并有可能导致内存碎片化。 请考虑优先使用
StringBuilder
类进行大型字符串序列操作 -
资源 & 纹理压缩
三、要点总结
编号 | 事项 | 说明 |
---|---|---|
1 | Android SDK | >=23 |
2 | Android Manifest | 启动模式为singleTask |
3 | Unity纹理压缩 | 建议使用ASTC |
4 | Gradle版本兼容 | 1. Gradle Version: 7.2 2. Android Gradle Plugin:7.1.2 |
5 | 限制 | 1. 只支持全屏渲染 2.一个runtime实例 |
6 | 帧率 | 考虑设备性能,建议60HZ,可以在C#脚本里设置Application.targetFrameRate |
7 | 图形API | 考虑设备性能,优先Vulkan,通过设置Auto Graphics API |
8 | 内存管理 | 脚本使用StringBuilder |
9 | 资源管理 | 需要纹理压缩 |