iOS 기기의 기능 대부분은 Input 및 Handheld 클래스를 통해 노출됩니다. 크로스 플랫폼 프로젝트의 경우 iOS 전용 C# 코드를 조건부로 컴파일하기 위해 UNITY_IPHONE 을 정의합니다.
액세스할 수 있는 다양한 기기별 프로퍼티가 있습니다. 다음에 대한 스크립트 레퍼런스 페이지를 참조하십시오.
애플리케이션을 해킹하는 가장 일반적인 방법은 AppStore DRM 보호를 제거한 후 무료로 재배포하는 것입니다. Unity의 불법 복제 방지 검사를 사용하면 애플리케이션이 AppStore에 제출된 후에 변경되었는지 알아낼 수 있습니다.
Application.genuine 프로퍼티를 사용하여 애플리케이션이 정품이며 해킹되지 않았는지 확인합니다. 프로퍼티가 false를 반환하면 사용자에게 해킹된 앱을 사용하고 있다고 경고하거나 특정 기능을 비활성화할 수 있습니다.
참고: Application.genuine과 함께 Application.genuineCheckAvailable을 사용하여 애플리케이션 무결성을 확인하십시오. Application.genuine 프로퍼티에 액세스하는 것은 리소스를 많이 소모하는 작업이기 때문에 프레임 업데이트 및 처리 시간이 중요한 코드에서는 수행하지 않아야 합니다.
Handheld.Vibrate를 호출하여 진동을 트리거할 수 있습니다. 진동 하드웨어가 없는 기기는 이 호출을 무시합니다.
모바일 운영체제는 느린 작업에 사용할 수 있는 빌트인 작업 표시기를 지원합니다. 예시는 Handheld.StartActivityIndicator 기술 자료를 참조하십시오.
iOS 및 Android 기기 모두에서 애플리케이션의 화면 방향을 제어할 수 있습니다. 방향 변경을 감지하거나 특정 방향을 강제로 사용하도록 만들어 사용자가 기기를 잡는 방식에 따른 앱 동작을 구현할 수 있습니다.
기기 방향을 검색하려면 Screen.orientation 프로퍼티에 액세스합니다. 방향은 다음 상태 중 하나를 나타냅니다.
| Orientation | Behavior |
|---|---|
| Portrait | 디바이스가 세워진 상태로 홈버튼이 아래쪽에 위치하는 세로 모드를 나타냅니다. |
| PortraitUpsideDown | 디바이스가 세워진 상태로 홈버튼이 위쪽에 위치하는 뒤집어진 세로 모드를 나타냅니다. |
| LandscapeLeft | 디바이스가 세워진 상태로 홈버튼이 오른쪽에 위치하는 가로 모드를 나타냅니다. |
| LandscapeRight | 디바이스가 세워진 상태로 홈버튼이 왼쪽에 위치하는 가로 모드를 나타냅니다. |
위 방향 중 하나로 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 프로젝트에 하드코딩됩니다. 기존 데이터를 수정하거나 UnityView.mm 파일에 있는 Unity Xcode 프로젝트 ReportSafeAreaChangeForView 함수에서 기기를 추가할 수 있습니다.
ReplayKit를 사용하면 게임의 오디오 및 비디오를 기기의 마이크 및 카메라에서 캡처된 오디오 및 비디오 설명과 함께 기록할 수 있습니다.