Apple은 iOS, tvOS, iPadOS 14 이상에서 게임패드, 키보드, 마우스, 트랙패드 등의 다양한 입력 디바이스를 지원합니다. 여기에는 Xbox, PlayStation, MFi 게임패드 컨트롤러의 게임패드 버튼을 OS 수준으로 리맵하는 기능이 포함됩니다. OS에서는 이러한 디바이스에 대한 버튼 글리프 디스플레이 처리를 제공하여 애플리케이션에서 사용자의 커스텀 매핑에 정확한 글리프를 획득할 수 있습니다. 이는 OS 버전 14 이상을 타깃으로 하는 모든 앱에 요구됩니다.
Apple에서는 인게임 버튼 디스플레이가 사용자의 OS 수준 입력 바인딩에 정확할 것을 요구합니다. 이 요구사항을 준수하지 않을 경우, App Store와 Apple Arcade에서 앱의 배포가 거부될 수 있습니다.
언리얼 엔진 4.26 이상에서는 Apple의 새로운 입력 처리를 완전히 지원하여 애플리케이션에서 다양한 디바이스를 폭넓게 활용할 수 있도록 합니다. 사용자가 입력을 Apple 디바이스에 올바르게 연결할 경우, 추가 설정 없이 이 기능을 사용할 수 있습니다. 다만, UI에 대한 Apple의 요구사항을 준수하는 데 도움이 되는 기능이 포함되어 있습니다.
게임패드 버튼 글리프 가져오기
블루프린트(Blueprint) 의 Get Gamepad Button Glyph 노드를 사용하여 사용자의 매핑에 정확한 글리프를 가져옵니다.

버튼 키(Button Key) 필드에 Gamepad_Facebutton_Top 텍스트가 입력된 Get Gamepad Button Glyph 노드.
함수의 파라미터는 다음과 같습니다.
파라미터 | 타입 | 설명 |
---|---|---|
버튼 키 | String | 대상이 되는 버튼의 FKey 이름으로, InputCoreTypes.h 에서 정의되어 스트링으로 변환됩니다. |
컨트롤러 인덱스 | Integer | 버튼 글리프를 가져오고자 하는 연결된 컨트롤러의 인덱스입니다. |
값 반환 | Texture2D | UI 위젯에서 사용할 버튼 글리프가 포함된 2D 텍스처입니다. |
예를 들어 컨트롤러의 상단 페이스 버튼에 대한 버튼 글리프를 가져오고자 하는 경우, Gamepad_Facebutton_Top 스트링을 사용합니다.
이와 같은 버튼 요청 시, 기본 매핑을 기반으로 사용자가 사용할 것으로 예상하는 버튼을 요청해야 합니다. 사용자가 OS 내에서 버튼을 리매핑한 경우, 함수에서 리매핑된 버튼을 자동으로 반환합니다. 예를 들어 사용자가 Xbox 컨트롤러에서 X 버튼과 Y 버튼을 뒤바꾼 경우 Gamepad_Facebutton_Top
은 Y 대신 X 버튼 글리프를 반환합니다.