본문 바로가기
Unity

c# / Unity 키보드 입력 감지

by 위즈밈 2022. 9. 29.
반응형

키보드 입력을 감지해야될 때는 아주 많다.

 

유니티에서는 보통 Input.GetKey 함수를 사용하게 되는데

 

이 함수의 단점은... 프로그램이 포커스 잡혀있지 않으면 반응을 안한다는 점이다.

 

이럴 때 해결방법은 GetAsyncKeyState 함수를 사용하는 것.

 

유니티에서도 사용이 가능하다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
       public enum MyKeyCode
        {
            VK_LEFT = 0x25,
            VK_UP = 0x26,
            VK_RIGHT = 0x27,
            VK_DOWN = 0x28
        }
        
 
        [DllImport("user32.dll")]
        public static extern short GetAsyncKeyState(int button);
 
        static void Main(string[] args)
        {
            if (GetAsyncKeyState((int)MyKeyCode.VK_LEFT) == -32767)
            {
                //LeftMove();
            }
        }

cs

위 코드에서 -32767은 키보드가 눌린 시점을 의미한다.

 

키 코드는 여기를 참조하면 된다.

가상 키 코드(Winuser.h) - Win32 apps | Microsoft Learn

반응형

댓글