本部分介绍在开始使用 iOS 时出现的最常见和最重要的问题。
答:下载 SDK,在 Apple 开发者网站上设置并运行,建立开发团队,准备好设备,并调配资源。我们提供了一份基本步骤列表供您入门之用。
A:是,但仅限于特定情况。要在模拟器中启用 Metal 支持,必须使用 XCode 11 和 macOS 10.15。然而,模拟器本身对 Unity 不是很有用,因为它不会模拟来自 iOS 的所有输入,也不能正确模拟您在 iPhone/iPad 上获得的性能。您应该直接在 Unity 内部测试游戏,使用 iPhone/iPad 作为远程控制装置,同时在设备上运行 Unity Remote 应用程序。然后,准备好测试性能并优化游戏时,应该将游戏发布到 iOS 设备。
答:在 Unity 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 iPhone 支持原生插件系统,您可以在其中添加所需的任何功能,包括访问图库、音乐库、iPod 播放器以及 iOS SDK 公开的任何其他功能。Unity iOS 不提供 API 来通过 Unity 脚本访问列出的功能。
答:使用更多控件时,UnityGUI 会消耗更多资源。在游戏运行时,最好将 UnityGUI 的使用范围仅限于游戏菜单或非常小的 GUI 控件。必须注意,只要对象具有包含 OnGUI()
调用的脚本,就需要额外的处理器时间,即使是空的 OnGUI()
代码块也是如此。如果未使用 GUI 控件,最好禁用所有具有 OnGUI()
调用的脚本。为此,可将脚本标记为 enabled = false
。
答:尽可能减少 GUILayout 的使用。如果在一个 OnGUI()
调用中未使用任何 GUILayout,可以使用 MonoBehaviour.useGUILayout = false;
禁用所有 GUILayout 渲染。这样可以使 GUI 渲染性能提高一倍。最后,在渲染 3D 场景时使用尽可能少的 GUI 元素。