GameInput 판독값
GameInput 판독값
모든 장치로부터 수신된 원시 입력 패킷은 “판독값(reading)” 객체에 캡슐화됩니다. 판독값은 원시 패킷 데이터와 (일반적으로) 원시 데이터를 상위 수준 형식으로 변환한 하나 이상의 결과를 포함합니다. 데이터 컨테이너 역할 외에도, 판독값은 입력 스트림 내 특정 위치를 참조하는 식별자 역할도 합니다.
GetCurrentReading을 호출하면 입력 스트림에서 가장 최근 판독값을 검색합니다. 반환되는 판독값을 게임패드나 키보드와 같은 특정 종류의 입력으로 제한하는 선택적 GameInputKind 필터를 전달할 수 있습니다. 반환되는 판독값을 지정된 장치에서 생성된 판독값만으로 제한하는 선택적 IGameInputDevice 필터도 전달할 수 있습니다. 이러한 필터는 개별적으로 또는 함께 적용할 수 있습니다.
IGameInputReading 인스턴스는 참조 계수형 싱글턴입니다. 판독값을 검색하는 것은 매우 빠르고 가벼운 작업입니다. 메모리 할당이나 복사가 수행되지 않으며 API 호출은 커널 모드 전환 없이 락 프리입니다. 판독값이 싱글턴이기 때문에, 애플리케이션은 판독값 포인터의 동등 여부를 비교하여 두 번의 GetCurrentReading 호출이 동일한 판독값을 반환했는지(즉, 새 입력이 생성되지 않았는지) 확인할 수 있습니다.
입력 요구 사항이 덜 복잡한 게임은 단순히 프레임당 한 번 새 입력을 폴링하고, 두 판독값에 저장된 상태를 비교하여 차이를 확인하는 것으로 충분할 수 있습니다(두 판독값이 동일하지 않은 경우). 그러나 입력 요구 사항이 더 복잡한 게임은 이전 프레임 이후 발생한 모든 입력 상태 변경의 전체 상황을 파악하기 위해 입력 스트림을 순회해야 할 수 있습니다. 이는 GetCurrentReading과 동일한 필터를 허용하는 GetNextReading 및 GetPreviousReading 메서드에 의해 가능합니다. 입력 스트림은 버퍼에 최근 0.5초의 히스토리 판독값을 유지합니다.
또는 애플리케이션은 입력이 생성될 때마다 호출되는 콜백을 등록할 수 있습니다. 이전 동기 메서드와 마찬가지로, 여러 필터를 적용하여 어떤 종류의 판독값이 어떤 장치에서 반환되는지 제어할 수 있습니다. 자세한 내용은 GameInput 고급 주제 섹션의 GameInput 콜백을 참조하세요.
판독값에서 사용할 수 있는 데이터의 종류는 입력 장치와 그 물리적 속성에 따라 다릅니다. 예를 들어, 표준 키보드의 판독값에는 키보드 데이터만 포함될 수 있지만, 트랙볼이 통합된 키보드의 판독값에는 키보드와 마우스 데이터가 모두 포함될 수 있습니다.
거의 모든 게임 컨트롤러는 익명의 축과 버튼 상태의 모음인 일반적인 “컨트롤러” 데이터를 포함하는 판독값을 생성합니다. 이를 통해 입력 매핑 UI를 가진 애플리케이션에 대해 폭넓은 장치 지원이 가능합니다. 하지만 (게임패드와 같은) 많은 게임 컨트롤러는 판독값에서 익숙한 고정 형식 상태도 노출하며, 이는 일반적인 게임이 소비하기에 훨씬 쉽습니다.
IGameInputReading 인터페이스에는 판독값이 지원하는 모든 형식으로 상태를 검색하기 위한 메서드가 포함되어 있습니다. 판독값에서 사용할 수 있는 모든 서로 다른 표현은 미리 계산되어 있으므로, 이러한 메서드는 단순히 몇 바이트의 데이터를 복사하고 반환합니다.
마지막 수정일 2026년 8월 13일
관련 항목
Windows.Xbox.Input에서 GameInput으로 포팅GameInputMouseButtonsGameInputArcadeStickButtonsGameInputRacingWheelButtonsGameInputGamepadButtons