# 把 Unreal Engine 游戏移植到 iOS

> 从 Unreal 到 iOS 是一次在小得多的功耗预算下的重建。让 PC 版好看的那些渲染特性，通常是最先要砍掉的。

- URL: https://www.summerengine.com/zh/port-unreal-game-to-ios
- Keyword: 移植 Unreal 游戏到 iOS
- Related: https://www.summerengine.com/zh/porting

把 Unreal Engine 游戏移植到 iOS，意思是重建一款你拥有的游戏以适配手机硬件，然后通过 App Store 审核。没有东西能自动把桌面 Unreal 项目转换成一个过审的 iOS 应用。

这次移植由预算定义。现代 iPhone 的 GPU 很能打，但它和手机机身与电池共用一个散热包线。面向桌面 GPU 的渲染手法、繁重的动态光照、密集几何体和大块未压缩贴图，只能替换而不是缩小。内存是第二堵墙：超了会被系统终止应用，而玩家看到的就是崩溃。

Summer Engine 目前导出桌面版本，iOS 版本需要装有 Xcode 的 Mac、签名，还要针对触控输入做一轮适配。代码是 C++ 和 GDScript，C# 可在桌面编辑器中使用，不过在 Godot 4 工作流中，C# 在 iOS 上仍属实验性。项目归你，不收分成。

## 为移动渲染器重建观感

按烘焙光照、少量动态光源、压缩贴图和激进的细节层级来规划。降低主要资产的面数，合并绘制调用，把后期处理砍到在更低分辨率下仍然成立的程度。瞄准稳定帧率，而不是峰值帧率。很多优秀的桌面游戏移动版会有意改变美术方向，选择更强的剪影和更平的着色，而不是做一份被稀释的 PC 观感副本。

## 触摸操作需要一次设计过程

双摇杆射击、掩体射击和精确平台跳跃，直译到玻璃上都活不下来。精简动词集合，加入吸附瞄准或边缘自动跳跃之类的辅助，并把目标做到至少 44 点宽。尊重主屏指示条周围的安全区。为想要原方案的玩家支持 MFi 手柄，但游戏必须只靠触摸就完整，因为审核员和多数玩家都会用触摸。

## 体积限制与安装摩擦

超过一定体积后，苹果会限制蜂窝网络下载并提示用户等待网络。App Store 的安装包也有硬性上限。大型 Unreal 项目很少不做工作就能塞进去，所以要打算在首次启动后提供可下载内容包，或者真正做一套更小的资源。更小的应用也更容易被装上。要在设备上量安装体积，而不是量你的源资源体积。

## 通过 App Store Connect 发布

你需要一台装有 Xcode 的 Mac、一份每年 99 美元的 Apple Developer Program 会员资格、一张分发证书和一个描述文件。上传到 App Store Connect，通过 TestFlight 分发做真机测试，然后提交审核。审核关注的是崩溃、元数据是否属实、隐私政策是否有效、隐私清单是否填好，以及任何数字商品是否使用了应用内购买。

## FAQ

### Unreal 项目能导入 Summer Engine 吗？

不能。这里没有 .uproject 或 .uasset 导入器。你要重建游戏，并把属于你的、导出后的网格、贴图、动画和音频搬过来。

### 把画质调低，桌面 Unreal 游戏就能在手机上跑吗？

通常不能。桌面的渲染预算和内存占用超出了手机能持续承受的范围，而设置滑条不会消除底层的内容开销。现实的路是按移动端预算重建内容。

### 我需要一台 Mac 吗？

需要。签名和上传 iOS 构建都要用 Xcode，而 Xcode 只在 macOS 上运行。

### iOS 版本能用 C# 吗？

C# 可在桌面编辑器中使用，但在 Godot 4 工作流中，C# 在 iOS 上仍属实验性。iOS 版本用 C++ 或 GDScript 更稳妥。

### 怎样在较老的 iPhone 上保持 60 fps？

从第一周就在你支持的最老设备上测试，测量几分钟内的持续帧率以捕捉热降频，并去修内容而不是改设置。常见原因是贴图尺寸、绘制调用和过度绘制。

[开始重建](https://www.summerengine.com/zh/download)

---

## Machine-readable resources

- Site index for agents: https://www.summerengine.com/llms.txt
- Full inlined content: https://www.summerengine.com/llms-full.txt
- Porting catalog: https://www.summerengine.com/llms-porting.txt
- Structured catalog: https://www.summerengine.com/agent-catalog.json
- Sitemap: https://www.summerengine.com/sitemap.xml
- Developer resources: https://www.summerengine.com/docs
- Summer API (assets from any agent or code; public per-call model prices): https://docs.summerengine.com/api