새소식

개발/유니티3D

[UI] Key Mapping 방법 (구 버전 입력체계)

  • -

따로 에셋을 쓰지 않고, 자체제작을 했을 때 가장 문제시 되는 것은 사용자가 입력장치를 통해 입력한 값을 찾아내는 것이다.
이 부분에 있어 인터넷에선 두 가지 종류의 방식을 찾아볼 수 있었다.

1. KeyCode 열거형의 value를 모두 탐색해 Input.GetKeyDown과 같은 처리기를 통해 확인한다.

foreach(KeyCode value in System.Enum.GetValues(typeof(KeyCode)))
{
	if (Input.GetKeyDown(value))
        //	키맵핑 처리
}

2. OnGUI에서 사용가능한, Event.current를 참조해 현재 입력한 keycode를 얻는다.

private OnGUI()
{
    if(enable)
    {
        var keyCode = Event.current.keyCode;
        //	키맵핑 처리
    }
}

첫 번째 방법은 이벤트가 발생하면 324개의 값으로 이뤄진 KeyCode를 탐색하기에, 성능상 문제도 없고 구현도 간단해 많이 사용된다.

두 번째 방법은 Event.current.keyCode 값을 읽으려면 OnGUI 루프에서 사용해야 하기에, 매 프레임 마다 연산이 아주 조금 늘어나는 문제가 있다. 다만, 이도 아주 극소량이기에 문제 될 이유는 없다.

따라서 그냥 취향과 가독성에 따라 마음 편히 개발하고 넘기는 것이 정신건강에 이롭다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.