tvOS는 iOS를 기반으로 빌드하지만 tvOS 입력으로 작동하도록 콘텐츠를 조정하고 더 큰 화면에 표시하기 위해 콘텐츠를 조정하는 등 새로운 과제를 만듭니다.
다음의 두 가지 기본 입력이 tvOS에 제공됩니다.
Apple TV 리모트(Siri 리모트)는 다목적 입력 기기로서 전통적인 메뉴 내비게이션 컨트롤러, 앱 컨트롤러, 자이로스코프, 가속도 센서, 터치 제스처 기기로 사용됩니다. Unity는 Apple TV 리모트 입력을 해당 Unity API로 라우팅하지만 해당 입력에 대해 다른 처리는 수행하지 않습니다. Apple TV 리모트의 특정 입력 기능을 활용하려면 애플리케이션에서 입력 체계를 약간 수정해야 할 수도 있습니다. 예를 들어 애플리케이션은 하나의 아날로그 축과 추가 행동 버튼이 있는 기존 애플리케이션 컨트롤러처럼 다루거나 가속 센서를 사용하여 방향을 조정하는 애플리케이션도 있습니다. 앱을 tvOS에 이식할 때 다양한 입력 방식을 실험해볼 수 있습니다.
Unity는 iOS와 tvOS에 대한 표준화된 컨트롤러 지원인 Made For iOS(MFi)를 지원합니다. MFi 컨트롤러는 즉시 사용 가능한 입력 매핑을 제공하며 Unity 에디터(메뉴: Edit > Project Settings > Input Manager)에서 커스텀 행동 매핑을 설정할 수 있습니다. 자세한 내용은 iOS 게임 컨트롤러 지원 및 게임 컨트롤러를 참조하십시오.
Apple TV 기기에는 무선 MFi 컨트롤러를 두 개 더 연결할 수 있어서 효과적으로 콘솔로 전환할 수 있습니다. 애플리케이션은 iOS MFi 컨트롤러와 동일한 방식으로 컨트롤러를 사용할 수 있으나 Apple TV 리모트만으로도 유용해야 합니다. 현재 tvOS 시스템에 추가할 수 있는 컨트롤러의 개수는 두 개로 제한합니다.
다음은 특정 TV 리모트 기능에 하는 방법에 대한 기술 세부사항입니다.
Apple TV 리모트 버튼 또는 기능 | 참고: |
---|---|
터치 영역 | Input.touches(Touch.type은 Indirect로 설정되며 Unity GUI에 의해 무시됨)와 조이스틱 입력 API(Input.GetAxis(“Horizontal”) 등) 모두에 매핑됩니다. |
터치 영역 클릭 | A 버튼에 매핑된 다음 조이스틱 버튼 14에 매핑됩니다 |
자이로스코프 | Input.gyro에 매핑됩니다. Input.gyro.attitude는 중력 벡터에서 파생되므로 중력 벡터와 평행한 축을 중심으로 회전하지 않습니다. Input.gyro.rotationRate도 마찬가지입니다. |
가속도 |
Input.acceleration에 매핑됩니다. 참고: Input.acceleration은 자이로스코프 API에서 파생되며 불안정한 부분이 있을 수 있습니다. tvOS SDK에는 전용 가속 센서 API가 없습니다. |
일지정지/재생 버튼 | X 버튼에 매핑된 다음 조이스틱 버튼 15에 매핑됩니다 |
메뉴 버튼 | 길게 누르면 tvOS 태스크 스위처를 호출합니다. 이 동작은 오버라이드할 수 없습니다. 짧은 탭은 두 가지 방식으로 처리할 수 있습니다. a) UnityEngine.tvOS.Remote.allowExitToHome이 true인 경우 tvOS 시스템 홈 화면으로 돌아갑니다. b) UnityEngine.tvOS.Remote.allowExitToHome이 false인 경우 앱이 이 탭에 반응하게 합니다(일시정지 버튼/조이스틱 버튼 0에 매핑됩니다). 이 방식이 기본값입니다. 앱은 현재 상태에 따라 a)와 b) 사이에서 전환해야 합니다. 사용자가 상단 메뉴를 사용 중이라면 a) 동작을 활성화합니다. 앱을 실시간으로 조작 중이라면 b) 동작을 활성화하고 이 버튼을 눌렀을 때 인앱 일시 정지 메뉴를 호출해야 합니다. |
리모트 모서리로 스와이프 | 방향 패드(D 패드) 상/하/좌/우 버튼 입력을 발생시킵니다. 매핑 리스트는 iOS 게임 컨트롤러 지원을 참조하십시오. |
다음과 같이 전용 API를 통해 Apple TV 리모트 작동 모드를 컨트롤할 수 있습니다. * UnityEngine.tvOS.Remote.allowExitToHome * UnityEngine.tvOS.Remote.allowRemoteRotation * UnityEngine.tvOS.Remote.reportAbsoluteDpadValues * UnityEngine.tvOS.Remote.touchesEnabled
참고: UnityEngine.tvOS.Remote.allowExitToHome이 false이면 메뉴 버튼이 조이스틱 버튼 0에 매핑됩니다. 조이스틱 버튼 0을 사용하여 Submit 가상 버튼을 매핑하기 때문에 기본 Input 창과 충돌을 일으킵니다. 그 결과 메뉴 버튼이 UI 요소 동작을 트리거하게 됩니다. 이 문제를 해결하려면 Input 창(메뉴: Edit > Project Settings, Input 카테고리 선택)에서 Submit 가상 버튼을 제거하거나 수정해야 합니다.