iOS 设备的大多数功能通过 Input 和 Handheld 类公开。对于跨平台项目,UNITY_IPHONE 定义用于有条件地编译 iOS 特定 C# 代码。
您可以访问许多特定于设备的属性。请参阅脚本参考页面以了解:
破解应用程序的一种常见方法是移除 AppStore DRM 保护,然后免费重新分发。使用 Unity 的反盗版检查来找出您的应用程序是否在提交到 AppStore 后被修改。
使用 Application.genuine 属性检查您的应用程序是否为正版(未被破解)。如果属性返回 false
,您可以警告用户他们正在使用破解版应用程序,或者您可以禁用某些功能。
注意: 使用 Application.genuineCheckAvailable 以及 Application.genuine
来验证应用程序完整性。由于访问 Application.genuine 属性是资源密集型操作,因此您不应在帧更新或其他时间关键代码中执行此操作。
您可以通过调用 Handheld.Vibrate 来触发振动。没有振动硬件的设备会忽略此调用。
移动操作系统具有内置的活动指示器,您可以在执行缓慢操作时使用。请参阅 Handheld.StartActivityIndicator 文档 以获取示例。
您可以在 iOS 和 Android 设备上控制应用程序的屏幕方向。通过检测方向变化或强制特定方向,您可以创建依赖于用户如何握持设备的应用程序行为。
要检索设备方向,请访问 Screen.orientation 属性。方向可以是以下之一
方向 | 行为 |
---|---|
纵向 | 设备处于纵向模式,设备保持直立,主页按钮位于底部。 |
纵向倒置 | 设备处于纵向模式,但倒置,设备保持直立,主页按钮位于顶部。 |
横向左侧 | 设备处于横向模式,设备保持直立,主页按钮位于右侧。 |
横向右侧 | 设备处于横向模式,设备保持直立,主页按钮位于左侧。 |
将 Screen.orientation 设置为以上方向之一,或者使用 ScreenOrientation.AutoRotation 来控制屏幕方向。启用自动旋转后,您仍然可以逐案禁用某些方向。
有关更多信息,请参阅以下 API 文档
无论您的应用程序的默认方向设置如何,应用程序的屏幕方向都可能因用户设置的设备方向而异。
下表显示了为您的应用程序设置的默认屏幕方向以及应用程序根据设备方向加载的实际方向。
默认屏幕方向:自动旋转 | 默认屏幕方向:纵向 | 默认屏幕方向:横向 | |
---|---|---|---|
设备方向:自动旋转 | 应用程序屏幕以纵向加载,并且可以在纵向、横向右侧和横向左侧方向之间旋转(不包括纵向倒置方向)。 注意:在 iPad 上,应用程序屏幕根据设备方向以纵向或横向方向加载。屏幕可以在纵向、纵向倒置、横向右侧和横向左侧方向之间旋转。 |
应用程序屏幕加载并保持锁定在纵向方向。尽管允许纵向倒置方向,但屏幕不会旋转到该方向。 注意:在 iPad 上,应用程序屏幕以纵向加载,并且可以在纵向和纵向倒置方向之间旋转。如果设备方向在启动时为横向,则启动画面可以以横向方向加载。 |
启动画面以与设备方向相同的方向加载。当场景加载时,应用程序屏幕以横向加载,并且可以在横向左侧或横向右侧方向之间旋转。 注意:在 iPad 上,应用程序屏幕以横向加载,并且可以在横向左侧和横向右侧方向之间旋转。如果设备方向在启动时为纵向,则启动画面可以以纵向方向加载。 |
设备方向:锁定纵向 | 应用程序屏幕加载并保持锁定在纵向方向。 注意:在纵向方向上,如果您将 ScreenOrientation.AutoRotation 属性设置为纵向为 false,则应用程序屏幕会旋转到横向方向。如果您现在将 ScreenOrientation.AutoRotation 属性设置为横向为 false,则屏幕方向保持不变。 |
应用程序屏幕加载并保持锁定在纵向方向。 | 启动画面以纵向方向加载,但当场景加载时,应用程序屏幕以横向加载。默认情况下,应用程序屏幕保持锁定在横向左侧方向。 注意:在 iPad 上,启动画面以纵向方向加载,而场景以横向方向加载。应用程序屏幕保持锁定在横向方向。 |
设备方向:锁定横向 | 不适用,因为 iPhone 没有横向锁定设置。如果用户在应用程序处于横向时关闭了设备自动旋转设置,则应用程序屏幕会旋转到纵向方向并保持锁定在该方向。 注意:在 iPad 上,应用程序加载并保持锁定在横向方向。 |
不适用,因为 iPhone 没有横向锁定设置。应用程序保持锁定在纵向方向。 注意:在 iPad 上,启动画面以横向方向加载,而场景以纵向方向加载。应用程序屏幕保持锁定在纵向方向。 |
不适用,因为 iPhone 没有横向锁定设置。应用程序屏幕以横向加载,并且在应用程序加载时可以保持锁定在横向左侧或横向右侧方向。 注意:在 iPad 上,应用程序屏幕根据设备方向以横向加载,并保持锁定在横向左侧或横向右侧方向。 |
不同的设备代具有不同的性能,并支持不同的功能。使用 iOS.DeviceGeneration 属性查询设备的代。
在某些显示器上,屏幕的某些区域可能被遮挡或无法使用,因为其他硬件占用该空间。使用 Screen.cutouts 返回围绕每个切口的边界框列表。
iOS 设备没有提供获取显示切口信息的原生 API,因此切口在每个可用的 iOS 设备的 Xcode 项目中被硬编码。您可以修改现有数据或在 Unity Xcode 项目 ReportSafeAreaChangeForView
函数中添加其他设备,该函数位于 UnityView.mm
文件中。
您可以使用 ReplayKit 来录制游戏的音频和视频,以及从设备的麦克风和 相机一个组件,它创建场景中特定视点的图像。输出要么绘制到屏幕上,要么作为纹理捕获。 更多信息
参见 术语表 捕获的音频和视频评论。