> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IGameInputReading::GetKeyState

> IGameInputReading::GetKeyState

# IGameInputReading::GetKeyState

키보드 입력에서 활성 키의 상태를 검색합니다.

## 구문

```cpp theme={null}
uint32_t GetKeyState(
    uint32_t stateArrayCount,
    GameInputKeyState* stateArray
);
```

### 매개변수

*stateArrayCount*   \_In\_\
형식: uint32\_t

키보드에서 활성 상태인 키의 개수를 반환합니다. 이는 [IGameInputReading::GetKeyCount](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeycount) 메서드를 호출하여 얻을 수 있습니다.

*stateArray*   \_Out\_writes\_(stateArrayCount)
형식: [GameInputKeyState\*](/reference/input/gameinput/structs/gameinputkeystate)

[GameInputKeyState\*](/reference/input/gameinput/structs/gameinputkeystate) 구조체에 대한 포인터입니다.

### 반환값

형식: uint32\_t

유효한 버퍼 항목의 수입니다.

## 설명

`IGameInputReading::GetKeyState` 메서드는 게임 컨트롤러 입력에서 활성 키의 상태를 검색합니다. 기본적인 키보드 상태는 이동이나 무기 발사와 같은 게임 동작에 키보드 입력을 매핑하는 데만 사용됩니다. 일반적인 텍스트 입력을 위한 것이 아닙니다. 게임에서 텍스트 상자와 같이 간단한 기능을 구현하려면 이 상태 위에 상당한 양의 코드가 필요합니다(IME와 같은 복잡한 기능은 말할 것도 없음). 해당 기능이 필요한 경우 다른 API를 사용해야 합니다.

각 키의 상태는 배열 내의 고정 인덱스에 저장되지 않습니다. 오히려 배열의 유효한 요소 수는 키가 눌리면 늘어나고 키가 해제되면 줄어듭니다. 새 키는 배열의 끝에 추가되며, 키가 해제되면 모든 것이 아래로 이동하여 간격을 채웁니다. 배열의 첫 번째 요소로 `scancode`와 `vkey` 값이 모두 0인 지점이 있습니다. 이는 배열 내 유효한 데이터의 끝을 나타냅니다. 표준 키보드는 한 번에 4~~6개의 키 입력만 보고할 수 있으며, 고급 게이밍 키보드도 한 번에 12~~16개 이상의 키를 지원하는 경우는 드뭅니다. 따라서 이러한 방식은 일반적으로 배열의 최대 크기를 작게 유지합니다(최대 크기는 `IGameInputDevice` 인터페이스를 통해 쿼리할 수 있음). 이는 애플리케이션이 키보드 상태를 확인할 때마다 256개 값의 배열을 반복하는 것보다 훨씬 효율적입니다.

## 요구 사항

**헤더:** GameInput.h

[GameInput 고급 항목](/build/core-features/common/input/advanced/input-advanced-topics)\
[GameInput 개요](/build/core-features/common/input/overviews/input-overview)\
[IGameInputReading](/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)

## 버전 기록

| 버전     | 변경 사항 |
| ------ | ----- |
| **v0** | 도입됨.  |


## Related topics

- [IGameInputReading::GetKeyCount](/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeycount.md)
- [IGameInputReading::GetGamepadState](/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getgamepadstate.md)
- [IGameInputReading::GetMouseState](/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getmousestate.md)
- [IGameInputReading::GetMotionState](/ko/reference/input/gameinput/deprecated/interfaces/igameinputreading/methods/igameinputreading_getmotionstate.md)
- [IGameInputReading::GetTouchState](/ko/reference/input/gameinput/deprecated/interfaces/igameinputreading/methods/igameinputreading_gettouchstate.md)
