반응형
입력된 KeyCode가 필요할 때
개인적으로 키입력이 어떻게 들어오나 테스트 케이스가 필요한 경우가 있었는데, Input.GetKey(KeyCode)를 입력하는 방식으로는 일일이 체크하기 어려운 상황이 있었습니다. 다양하게 들어오는 상황이어서 여러 케이스로 반환을 해주는 함수가 필요했습니다.
스크립트
public class Utils
{
/// <summary>
/// 감지된 KeyCode를 반환한다.
/// </summary>
/// <returns>현재 틱에서 입력된 키코드를 반환</returns>
private KeyCode DetectPressedKeyCode()
{
foreach (KeyCode kcode in Enum.GetValues(typeof(KeyCode)))
{
if (Input.GetKeyDown(kcode))
{
return kcode;
}
}
return KeyCode.None;
}
}
예제
private void Update()
{
KeyCode keyCode = DetectPressedKeyCode();
if (keyCode != KeyCode.None)
{
Debug.Log(keyCode); // 감지된 키코드를 로그로 남긴다.
}
}
마무리
앞서 이야기에 있었듯, 다양한 케이스로 확인이 필요할 때 사용하면 좋은 함수입니다.
참고 : https://answers.unity.com/questions/1410349/detecting-pressed-key-and-returning-a-keycode-vari.html
반응형
'Utils' 카테고리의 다른 글
Unity, 작업 중 Editor가 점점 느려지는 경우 (3) | 2023.03.18 |
---|---|
C#, 고정된 해쉬 값 가져오기 (0) | 2023.03.18 |
C#, List 랜덤으로 섞기 확장함수 (Shuffle) (1) | 2022.10.24 |
C#, 중복되지 않게 랜덤 숫자 생성 (0) | 2022.08.22 |
C#, 데이터 리스트를 CSV파일로 생성하기 (0) | 2022.07.23 |
댓글