Version: 2020.2
iOS 开发入门
iOS 帐户设置

Unity iOS 基础知识

本部分介绍在开始使用 iOS 时出现的最常见和最重要的问题。

先决条件

我刚收到 Apple 的 iPhone 开发者审批,但我以前从未进行过 iOS 的开发。我首先需要做什么?

:下载 SDK,在 Apple 开发者网站上设置并运行,建立开发团队,准备好设备,并调配资源。我们提供了一份基本步骤列表供您入门之用。

Unity 构建的游戏可以在 iPhone 模拟器中运行吗?

A: Yes, but only in specific circumstances. To enable Metal support in the simulator, you must use XCode 11 and macOS 10.15. However the simulator itself is not very useful for Unity because it does not simulate all inputs from iOS or properly emulate the performance you get on the iPhone/iPad. You should test out gameplay directly inside Unity using the iPhone/iPad as a remote control while it is running the Unity Remote application. Then, when you are ready to test performance and optimize the game, you should publish to iOS devices.

Unity 功能

如何使用触摸屏和加速度计?

:在 Unity iOS 安装附带的脚本参考中,您将找到构建应用程序所需的钩入设备功能的类。请参阅输入页面以了解更多信息。

我现有的粒子系统似乎在 iOS 上运行得非常慢。我该怎么办?

:iOS 的填充率相对较低。如果您的粒子有多层并覆盖了大部分屏幕,即使使用最简单的着色器也会严重影响 iOS 性能。我们建议将粒子效果烘焙成一系列离线纹理。然后,在运行时,可以使用 1–2 个粒子通过动画纹理显示这些粒子。这样可以通过最少量的过度绘制获得良好的结果。

我可以制作大量使用物理系统的游戏吗?

A:物理系统在 iOS 上的成本可能很高,因为它需要大量的浮点数计算。如果可能的话,应该完全避免使用 MeshColliders,但如果确实有必要,也可以使用。要提高性能,请使用 Edit > Time > Fixed Delta Time 设置低固定帧率。建议帧率为 10–30。在使用低物理帧率时,启用刚体插值可以实现平滑运动。为了实现完全流畅的帧率而不出现振荡,最好根据游戏在 iOS 上获得的平均帧率来选择固定的 deltaTime 值。建议使用 1:1 或一半的帧率。例如,如果获得的帧率为 30 fps,则应使用 15 或 30 fps 的固定帧率(0.033 或 0.066)

我可以在 Unity iOS 中访问图库、音乐库或原生 iPod 播放器吗?

:可以,如果您实现它的话。Unity iPhone 支持原生插件系统,您可以在其中添加所需的任何功能,包括访问图库、音乐库、iPod 播放器以及 iOS SDK 公开的任何其他功能。Unity iOS 不提供 API 来通过 Unity 脚本访问列出的功能。

UnityGUI 注意事项

UnityGUI 会对我的游戏产生什么样的性能影响?

:使用更多控件时,UnityGUI 会消耗更多资源。在游戏运行时,最好将 UnityGUI 的使用范围仅限于游戏菜单或非常小的 GUI 控件。必须注意,只要对象具有包含 OnGUI() 调用的脚本,就需要额外的处理器时间,即使是空的 OnGUI() 代码块也是如此。如果未使用 GUI 控件,最好禁用所有具有 OnGUI() 调用的脚本。为此,可将脚本标记为 enabled = false

是否有任何其他关于使用 UnityGUI 的技巧?

:尽可能减少 GUILayout 的使用。如果在一个 OnGUI() 调用中未使用任何 GUILayout,可以使用 MonoBehaviour.useGUILayout = false; 禁用所有 GUILayout 渲染。这样可以使 GUI 渲染性能提高一倍。最后,在渲染 3D 场景时使用尽可能少的 GUI 元素。


  • 2018–06–14 页面已修订
iOS 开发入门
iOS 帐户设置