将Unity游戏嵌入到Android App中 —— 1) 理论知识储备

一、Unity官方文档配置事项简介

Unity官网文档链接

  1. android SDK ::>=6.0 "Marshmallow" (API level 23)

  2. Manifest element attributes

    启动需要singleTask启动模式

  3. 纹理压缩:

    选择Ericsson Texture Compression (ETC)和Adaptable Scalable Texture Compression (ASTC)

  4. 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
  1. Gradle项目导出

    • UnityLibrary module:包含Unity运行和资源数据,可以把该module嵌入到自己的Android App中
    • Launcher module:简单的Android App demo,可以替换为自己的App
  2. Unity Library Manifest描述了什么

  3. Unity build Setting for Android配置说明 docs.unity3d.com/cn/2023.2/M...

  4. Unity as Library一些限制

  • 只支持全屏
  • 一个runtime实例
  • 不能作为一个dynamic module
  • 和跨平台Xamarin app platform不兼容

二、Android 官方文档游戏使用入门

Android官网文档链接

通常,您可以开始在游戏引擎(例如 Unity、Unreal、Defold 或 Godot)中开发游戏。这也可能是您进行视觉设计的地方。然后,使用 Android 工具开发、优化和分发游戏。

开始开发 Android 游戏之前,您必须确定开发环境的三个基本组件。这其中包括:

  • 游戏引擎
  • 集成开发环境 (IDE)
  • 图形 API

使用游戏引擎,您可以从以下方法中进行选择:

  • 使用未经修改的游戏引擎(推荐)
  • 自定义现有的游戏引擎
  • 开发新的游戏引擎

这里即使用无需修改即可使用的游戏引擎Unity

  • Unity一个使用 C# 编程语言的商业游戏引擎。

Unity配置说明

developer.android.com/games/engin...

个人认为比较重要的有如下:

  1. 帧率

    为了防止 Android 设备过热,应以平均帧时间值低于 21 毫秒为目标。核心游戏体验的帧时间阈值仍应保持在 21 毫秒以下。许多 Android 设备的屏幕刷新率为 60Hz 和 120Hz。(60Hz 时以 10 毫秒为目标,120Hz5 毫秒),如果将帧时间的目标定得更低就可以避免渲染速率较高所带来的温控降频和耗电过多风险。

    如需在 Unity 中为游戏设置一个特定的帧速率,请使用 Application.targetFrameRate 如需要流畅的渲染,则在Project Settings > Player >Setting for Android > Optimized Frame Pacing 勾选上

  2. 图形API 使用Vulkan 它是一个跨平台的高性能 3D 图形 API,与 OpenGL ES 相比,它的开销更低。设置Auto Graphics API,Unity会优先使用Vulkan,如果设备不支持,Vulkan, Unity会回退到OpenGL 3.2、3.1、3.0或者2.0

    1. Project Setting> Player > Rendering

  1. 纹理压缩格式 对于 Android 上的 RGB 和 RGBA 纹理,建议使用的纹理压缩格式是 ASTC。

  2. 内存管理 使用 C# 编写脚本时,请慎用字符串、字符串比较和字符串相关对象(例如用于游戏设置的 JSON 文件)分配。这些用途需要频繁分配内存,并有可能导致内存碎片化。 请考虑优先使用 StringBuilder 类进行大型字符串序列操作

  3. 资源 & 纹理压缩

三、要点总结

编号 事项 说明
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 资源管理 需要纹理压缩
相关推荐
沃普天科技2 小时前
IF8032芯片TYPE C全功能输出支持C口显示器,支持AR眼镜 显示,支持接扩展坞,支持PD100W 4K144
游戏·智能手机·计算机外设·电脑·ar·音视频·显示器
weixin199701080163 小时前
《QX 游戏商城商品详情页前端性能优化实战》
前端·游戏·性能优化
呆呆敲代码的小Y4 小时前
【Unity-AI开发篇】| 游戏中接入DeepSeek实现AI对话,完整详细步骤
人工智能·游戏·unity·ai·游戏引擎·u3d·deepseek
IT从业者张某某19 小时前
基于EGE19.01完成恐龙跳跃游戏-V00-C++使用EGE19.01这个轮子
c++·游戏
SmalBox1 天前
【节点】[Absolute节点]原理解析与实际应用
unity3d·游戏开发·图形学
Sator11 天前
Unity关于射击游戏人物动画的设计经验
游戏·unity·游戏引擎
王杨游戏养站系统1 天前
3分钟搭建1个游戏下载站网站教程!SEO站长养站系统!
开发语言·前端·游戏·游戏下载站养站系统·游戏养站系统
huwuhang2 天前
索尼PS3游戏合集【中文游戏】8.12T 1430个游戏+PS3模拟器
android·游戏·智能手机·游戏机·电视
毕业设计-小慧2 天前
计算机毕业设计springboot游戏数据管理系统 基于SpringBoot的电竞赛事数据管理平台 基于SpringBoot的在线游戏运营数据分析系统
spring boot·游戏·课程设计
黑客说2 天前
AI驱动剧情,解锁无限可能——AI游戏发展解析
人工智能·游戏