유니티 기초/개념
[Unity 개념] 6. Input 클래스에 대하여
갓것걋
2024. 3. 4. 21:53
※참고사항※
해당 포스트는 본업 개발자가 정성껏 포스팅한 포스트가 아닙니다!
평범한 고등학생이 유니티를 배우면서 적어나가는 포스트라는 점을 이해해 주십사 하고 청하는 바입니다.
(잘못된 정보는 댓글로 감사히 받겠습니다!)
목차
1. 필자의 한마디
2. Input 클래스란?
3. 메소드 종류
4. 요약
1. 필자의 한마디
저번 포스팅에서는 클릭 이벤트에 대해서 배웠었죠?
(아직 보지 못했다면 아래의 링크를 통해서 확인하실 수 있습니다!)
[Unity 개념] 5. 클릭 이벤트에 대하여
저번 포스팅의 내용인 '클릭 이벤트'에 대한 설명이 있습니다!
rktrjtrit-unity.tistory.com/6
저번 포스팅에서 Input 클래스에 대해 얘기하지 못한게 너무 아쉽더라고요... ㅠㅠ
그래서 이번 포스팅에선 Input 클래스에 대해서 얘기해보려 합니다!
2. Input 클래스란?
Input 클래스는 사용자의 입력(키보드, 마우스, 조이스틱 등등)을 감지하는 메소드의 모음이라고 정리 할 수 있습니다.
또한 Update()에서 Input 클래스의 메소드를 사용하면 거의 사용자가 입력하는 즉시 실행된다고 볼 수 있을 정도입니다.
그래서 대부분 Update()에서 Input 클래스의 메소드를 사용합니다!
3. 메소드 종류
①. Input.GetKey()
1) 개요
- 특정 키보드 버튼의 입력을 true와 false로 반환해주는 메소드입니다.
- 키보드 버튼 (KeyCode)이란 키보드의 물리적인 키 (식별자)입니다.
- 예시) UpArrow : 위쪽 방향키, W : 키보드 W 키, LeftShift : 왼쪽 Shift 키 등
2) 주요 메소드
메소드 | 설명 | 반환 |
Input.GetKeyDown(KeyCode.~) | 키보드를 누르는 순간 실행됩니다. | true / false |
Input.GetKey(KeyCode.~) | 키보드를 누르는 동안 실행됩니다. | |
Input.GetKeyUp(KeyCode.~) | 키보드를 누르다 떼는 순간 실행됩니다. |
3) 사용 예시
// 스페이스키를 누르는 순간 콘솔창에 "스페이스키를 눌렀습니다!"를 출력합니다!
if (Input.GetKeyDown(KeyCode.Space)) { print("스페이스키를 눌렀습니다!"); }
②. Input.GetAxis()
1) 개요
- 키보드와 조이스틱의 어떤 축에 대한 입력값을 숫자로 반환해주는 메소드입니다.
- Input Manager (Edit - Project Settings - Input 메뉴)에서 미리 지정한 입력값을 받아오는 것입니다.
- 기본적으로 30가지의 입력값을 지정합니다. → 사용자가 수정할 수 있습니다.
2) 주요 키워드
키워드 | 입력값 (대응키) | 출력값 |
Input.GetAxis("Horizontal") | 음(-) : ←, A 키 | -1.0 |
입력 없음 | 0 | |
양(+) : →, D 키 | +1.0 | |
Input.GetAxis("Vertical") | 음(-) : ↓, S 키 | -1.0 |
입력 없음 | 0 | |
양(+) : ↑, W 키 | +1.0 | |
* 조이스틱은 살짝 밀었을 경우에 -0.5, +0.5도 가능합니다. |
3) 사용 예시
// Rigidbody 설정 후의 예시입니다.
// 좌우 방향키 (또는 A/D)를 누르면 그 방향으로 이동합니다.
Rigidbody2D rigid;
private void Awake() { rigid = GetComponent<Rigidbody2D>(); }
private void Update()
{
float h = Input.GetAxisRaw("Horizontal");
rigid.AddForce(Vector2.right * h, ForceMode2D.Impulse);
}
③. Input.GetButton()
1) 개요
- Input Manager에 입력된 키의 이름에 따라 호출되는 메소드입니다.
- Input Manager의 내용은 위에 있는 Input.GetAxis()의 내용을 참고해주세요!
2) 주요 메소드
메소드 | 설명 | 반환 |
Input.GetButtonDown() | 특정 버튼을 누르는 순간 호출됩니다. | true / false |
Input.GetButton() | 특정 버튼을 누르는 동안 호출됩니다. | |
Input.GetButtonUp() | 특정 버튼을 누르다 손을 떼는 순간 호출됩니다. |
3) 사용 예제 코드
// 마우스 좌클릭을 누르는 순간 콘솔창에 "마우스 좌클릭이 눌렸습니다!"를 출력합니다.
if (Input.GetButtonDown("Fire1") { print("마우스 좌클릭이 눌렸습니다!"); }
④. Input. GetMouseButton()
(저번 포스팅에서 다룬 내용이라서 간단하게 알아보겠습니다!)
1) 개요
- 마우스가 클릭됐을 때 호출되는 메소드입니다.
- 0 (좌클릭), 1 (우클릭), 2 (휠 버튼)을 의미합니다.
2) 주요 메소드
메소드 | 설명 | 반환 |
Input.GetMouseButtonDown() | 마우스 버튼을 누르는 순간 호출됩니다. | true / false |
Input.GetMouseButton() | 마우스 버튼을 누르는 동안 호출됩니다. | |
Input.GetMouseButtonUp() | 마우스 버튼을 누르다가 떼는 순간 호출됩니다. |
3) 사용 예시
// 마우스 휠 클릭을 누르고 있는 동안 콘솔창에 "휠 클릭을 누르고 있습니다!"를 출력합니다.
if (Input.GetMouseButton(2)) { print("휠 클릭을 누르고 있습니다!"); }
⑤ Input.anyKey
1) 개요
- 아무런 입력이라도 들어오면 호출되는 메소드입니다.
2) 주요 메소드
메소드 | 설명 | 반환 |
Input.anyKeyDown | 아무 키를 누르는 순간 호출됩니다. | true / false |
Input.anyKey | 아무 키를 누르는 동안 호출됩니다. |
3) 사용 예시
// 아무 키를 누르면 콘솔창에 "입력을 했습니다!"를 출력합니다.
if (Input.anyKeyDown) { print("입력을 했습니다!"); }
4. 요약
Input 클래스 개념 요약
Input 클래스: 사용자의 입력(키보드, 마우스, 조이스틱 등)을 감지하는 메서드 모음
메소드의 종류
①. Input.GetKey()
②. Input.GetAxis()
③. Input.GetButton()
④. Input.GetMouseButton()
⑤. Input.anyKey
이상으로 포스팅을 마치겠습니다.
다음 포스팅에서는 지금까지 배운 것을 응용해서 아이템을 구현해 보겠습니다!