关键的 Player Settings
Assets/
Scripts/
项目设置
你已经有的这一课新增
你在 tab 03 搭的那个触控 canvas,正是这一 tab 重要的原因:屏幕方向、安全区和 CPU 架构这几项设置没配对,Knight 的操作按钮就不会长在拇指够得着的地方。
Player Settings 里差不多有二百个选项,其中十二个决定了你的 build 能不能跑、能不能发、能不能过审。
屏幕方向和安全区,决定了你的 UI 到了真机上能不能活下来。
身份信息 —— 第一次 build 之前就配好
- 1
,设置 Company Name 和 Product Name。
- 2
Other Settings → Package Name 填 com.yourstudio.yourgame。这个是永久的 —— Google Play 永远靠它来认你的应用。
- 3
Version 填 1.0.0,Bundle Version Code 填 1。每次上传都要把 code 加 1;重复的号码 Play 会直接拒收。
- 4
应用图标在 Icon → Adaptive 里设置。Android 要一个前景层加一个背景层,不是一张平的图片。
分辨率与显示设置
Default Orientation 选 Landscape Left,或者 Portrait。只有一种朝向合理却还开着 Auto Rotation,只会让玩家烦躁。
Render Outside Safe Area 保持勾选,让游戏铺满整屏,然后 UI 里用 Screen.safeArea 来处理 Notch。
只有真的看到卡顿时才去掉 Optimized Frame Pacing 的勾;在大多数机器上它是有帮助的。
Other Settings —— 专门搞坏 build 的那一组
- 1
Scripting Backend 选 IL2CPP。64-bit 下 Play Store 不允许用 Mono,而且 IL2CPP 本来就快得多。
- 2
Target Architectures 把 ARMv7 和 ARM64 都勾上。ARM64 是必须的,ARMv7 用来覆盖老机型。
- 3
Minimum API Level 设 23 或 24(Android 6–7)几乎就能覆盖所有用户。Target API Level → Automatic(highest installed)。
- 4
Managed Stripping Level 选 Medium。High 剥得更狠,但会把只能通过 reflection 访问的代码也一起删掉。
- 5
Graphics APIs 里去掉 Auto,把 Vulkan 排第一、OpenGLES3 排第二。OpenGLES2 整个删掉。
<linker>
<assembly fullname="Assembly-CSharp">
<type fullname="SaveData" preserve="all" />
<namespace fullname="Game.Data" preserve="all" />
</assembly>
</linker>选 APK 还是 AAB?
✓ APK
✓ AAB (App Bundle)
帧率 —— Unity 不会替你操心
using UnityEngine;
public class MobileBoot : MonoBehaviour
{
void Awake()
{
// mobile defaults to 30 fps unless you say otherwise
Application.targetFrameRate = 60;
// VSync must be off for targetFrameRate to be respected
QualitySettings.vSyncCount = 0;
// stop the screen dimming during gameplay
Screen.sleepTimeout = SleepTimeout.NeverSleep;
DontDestroyOnLoad(gameObject);
}
}