U
章 05导出到手机7 课 — 点击打开
01 / 07 · 9 分钟
导出到手机

Android 构建设置

到目前为止的项目

Assets/

Scenes/

Arena.unity
TouchCanvas

Scripts/

GameDirector.cs

Prefabs/

Knight prefab

项目设置

Android moduleSDK / NDK / JDKplatform switch

你已经有的这一课新增

你手上已经有一个值得发布的 game:从 tab 01 一路做到 tab 04 的 Arena.unity,前面还放着 Intro.unity。这两个场景里的东西从没在编辑器外面跑过。这一 tab 就来解决这件事。

在你能构建任何东西之前,Unity 需要 Android module、一套 SDK、一个 NDK 和一个 JDK。交给 Unity Hub 的话,这四个它能一次帮你装好。

动态图解

从你的项目到手机能装上的那个文件 —— 这就是整条流水线。

安装模块

  1. 1

    Unity Hub → Installs → 你的版本旁边的齿轮图标 → Add Modules。

  2. 2

    勾上 Android Build Support,以及它的两个子项:Android SDK & NDK Tools 和 OpenJDK。

  3. 3

    两个子项都不能少。只装父项,之后就会撞上那个莫名其妙的 'Android SDK not found'。

  4. 4

    要下好几个 GB。趁现在就先装好,别等到 demo 前一晚才动手。

切换平台

  1. 1

    File▸Build Profiles(旧版 Unity 里叫 Build Settings)→ Android → Switch Platform。

  2. 2

    Unity 会为 mobile 重新 import 并重新压缩每一张 texture。大项目上这一步要 10–40 分钟,不过只有这一次。

  3. 3

    检查场景列表:按你在 tab 01 里的设置,Intro 在 index 0,Arena 在 index 1。App 永远从 index 0 那个场景打开。

  4. 4

    以后再切回 PC 又要重新 import 一遍 —— 所以工作期间选定一个平台就一直用它的。

准备手机

  1. 1

    设置 → 关于手机 → 连续点 Build number 七次。你现在就是开发者了。

  2. 2

    设置 → 开发者选项 → 打开 USB 调试。

  3. 3

    用能传数据的数据线插上去 —— 很多充电线压根就不传数据。

  4. 4

    手机上弹出 'Allow USB debugging' 时点允许,并勾上 Always allow。

用 adb 验证

terminal
# adb lives inside the Unity Android SDK folder
# macOS example path
# /Applications/Unity/Hub/Editor/<version>/PlaybackEngines/AndroidPlayer/SDK/platform-tools

adb devices
# List of devices attached
# R58M12ABCDE     device        <- good
# R58M12ABCDE     unauthorized  <- accept the prompt on the phone

现在就按一下 Build And Run

别等游戏做完才去构建。今天就先往手机上构建一个空场景,趁时间还充裕把配置问题暴露出来。

  • 第一次构建要把所有 script 编译成 C++,可能要 10–20 分钟。之后就快得多。

  • 构建输出目录选在项目外面 —— 就是跟 Assets/ 平级的 Builds/,并且把它写进 .gitignore。

  • 如果失败了,去读 Console 最后 30 行。真正的错误几乎从不在最后一行。