본문 바로가기
Utils

Unity, 현재 입력된 KeyCode 가져오기

by Client. DJ 2022. 12. 28.
반응형

입력된 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

반응형

댓글