이번 시간에는 키 입력 받는 방법에 대해서 배워 봅시다.
일반 적으로 키 입력 받는 방법은 3가지가 있습니다.
- GetAxis( )
- GetButton( )
- GetKey( )
아래 사이트에 간략하게 설명 되어 있으니 참고하시면 좋을것 같습니다.
[유니티] 2. 키보드 입력받기 (Input)
본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다. Input을 이용하면 키보드, 마우스를 눌렀을 때 값을 입력받을 수 있습니다. 이번에는 값을 입력받을 수
ariel1910.tistory.com
1. GetAxis( )
float Input.GetAxis(string AxisName);
AxisName을 입력받고 값에 따라 -1 ~ 1 까지의 실수를 반환합니다.
AxisName들은 Edit -> Project Settings -> Input Manager에 있습니다.
간단하게 수직 수평으로 이동하는것만 배워 보겠습니다!
여기서 봐야할건 Horizontal과 Vertical 인데요
Horizontal은 수평 Vertical은 수직으로 움직일 때 사용하게 됩니다.
옆에 화살표를 눌러보면 Horizontal은 left, right, a, d 키를 입력받는걸 알 수 있고 이걸 설정할 수 있습니다!!
반대로 Vertical은 down, up, w, s 키를 입력 받지요.
이제 코드를 실제로 작성시켜 적용해 봅시다.
SerializeField는 해당 변수를 Inspector창에서 설정할 수 있게 해줍니다.
Start는 게임이 시작할 때 한번만 함수를 실행해 줍니다.
Update는 게임이 실행되는 동안 함수를 실행해 줍니다.
transform.position은 현재 오브젝트의 위치를 나타냅니다.
그 안에는 x, y, z로 구성되어 있고 그걸 초기화 시켜주면 해당 오브젝트는 실제로 위치가 변경되죠
Time.deltaTime은 기기 성능에 상관없이 동일하게 작동되게 해줍니다.
컴퓨터가 너무 좋거나 안좋아도 항상 동일하게 작동하게 해주죠
nextX와 nextY를 초기화 시켜주고 그걸 new Vector3에 맞게 끼워 넣고 transform.position을 초기화 시켜주면 됩니다.
※ 주의! AxisName의 철자 하나라도 틀리면 작동되지 않습니다! (대소문자까지 일치해야함)
2. GetButton( )
bool Input.GetButton(string ButtonName);
GetAxis처럼 InputManager의 Axes의 목록들을 문자열로 입력 받습니다.
GetAxis와 다른 점은 반환형이 boolean 형으로 해당 Axes에 해당되는걸 눌렀다면 참 그렇지 않으면 거짓 으로 반환하게 됩니다.
사용 방법은 if 문 안에 넣어서 조건문으로 활용시키면 됩니다.
3. GetKey( )
bool Input.GetKey(KeyCode key);
GetButton 처럼 키를 누르면 참 아니면 거짓을 반환하는데요, 다른 점은 KeyCode로 인자가 들어간다는 점입니다.
사용법은 간단합니다 키코드를 그대로 입력만 하면 되죠
화살표 키를 입력받는 방법은 KeyCode.[방향]Arrow 이런식으로 사용하면 됩니다.
KeyCode는 이 외에도 굉장히 많으니 아래 공식 문서에서 참고하시면 되겠습니다!
KeyCode - Unity 스크립팅 API
Key codes returned by Event.keyCode. These map directly to a physical key on the keyboard. If "Use Physical Keys" is enabled in Input Manager settings, these map directly to a physical key on the keyboard. If "Use Physical Keys" is disabled these map to la
docs.unity3d.com
'Unity' 카테고리의 다른 글
[Unity] 클릭해서 2D 오브젝트 감지하기 (0) | 2024.04.26 |
---|---|
[Unity] 맥에서 스크립트 주석 없애는 법 (0) | 2023.12.22 |
[Unity] 애니메이션 Has Exit Time (0) | 2023.12.11 |
[Unity] 유니티 기본 강좌 #02 (0) | 2023.06.23 |
[Unity] 유니티 기본 강좌 #01 (0) | 2023.06.21 |