728x90
반응형
💙 Input 클래스 개념 요약
- Input 클래스: 사용자의 입력(키보드, 마우스, 조이스틱 등)을 감지하는 메서드 모음
- 종류: ① Input.GetKey()
② Input.GetAxis()
③ Input.GetButton()
④ Input.GetMouseButton()
✅ Input 클래스
- 사용자의 입력(키보드, 마우스, 조이스틱 등)을 감지하는 메서드의 모음
- Update() 함수에서 Input 클래스를 사용하여 매 프레임마다 사용자의 입력 감지
1️⃣ Input.GetKey()
1) 정의
- 특정 키보드 버튼의 입력값을 true/false로 반환하는 메서드
- 키보드 버튼(KeyCode): 키보드의 물리적인 키 (식별자)
ex) UpArrow (위쪽 방향키), Alpha1 (숫자 1), Colon(:) 등
2) 주요 메서드
메서드 | 설명 | 반환 |
Input.GetKeyDown() | 키보드를 누르는 순간 | true / false |
Input.GetKey() | 키보드를 누르는 동안 | |
Input.GetKeyUp() | 키보드를 누르다 손을 떼는 순간 |
3) 사용 예제 코드
// 스페이스키를 누르는 순간 콘솔창에 "Space key was pressed" 출력
if (Input.GetKeyDown(KeyCode.Space))
{
print("Space key was pressed.");
}
2️⃣ Input.GetAxis()
1) 정의
- 키보드와 조이스틱의 어떤 축에 대한 입력값을 숫자로 반환하는 메서드
- Input Manager(Edit > Project Settings > Input 메뉴)에서 미리 지정한 입력값을 받아오는 것
- 기본적으로 18가지의 입력값 지정 → 사용자가 수정 가능
2) 주요 메서드
키워드 | 입력값 (대응키) | 출력값 |
Horizontal | 음: ← , A | -1.0 |
X | 0 | |
양: → , D | +1.0 | |
Vertical | 음: ↓ , S | -1.0 |
X | 0 | |
양: ↑ , W | +1.0 | |
* 조이스틱은 조금 밀었을 경우, -0.5, +0.5도 가능 |
3) 사용 예제 코드
// 좌우 방향키를 누르면 z축을 따라 이동
void Update()
{
float translation = Input.GetAxis("Horizontal") * speed;
translation *= Time.deltaTime;
transform.Translate(0, 0, translation);
}
3️⃣ Input.GetButton()
1) 정의
- Input Manager에 입력된 키의 이름에 따라 호출되는 메서드
- Input Manager 내용은 Input.GetAxis()에서 참고
2) 주요 메서드
메서드 | 설명 | 반환 |
Input.GetButtonDown() | 특정 버튼을 누르는 순간 | true / false |
Input.GetButton() | 특정 버튼을 누르는 동안 | |
Input.GetButtonUp() | 특정 버튼을 누르다 손을 떼는 순간 |
3) 사용 예제 코드
// 마우스 왼쪽을 누르는 순간 콘솔창에 메시지 출력
if(Input.GetButtonDown("Fire1")
{
print("Left click was detected");
}
4️⃣ Input.GetMouseButton()
1) 정의
- 마우스가 클릭됐을 때 호출되는 메서드
- 0 (마우스 왼쪽), 1(마우스 오른쪽), 2(마우스 휠 스크롤)를 의미
2) 주요 메서드
메서드 | 설명 | 반환 |
GetMouseButtonDown() | 마우스 버튼을 누르는 순간 | true / false |
GetMouseButton() | 마우스 버튼을 누르는 동안 | |
GetMouseButtonUp() | 마우스 버튼에서 손을 떼는 순간 |
3) 사용 예제 코드
// 마우스 왼쪽을 누르는 동안 메시지 출력
if(Input.GetMouseButton(0))
{
print("Left click was detected");
}
[출처 참고] https://docs.unity3d.com/kr/530/ScriptReference/Input.html
[출처 참고] https://docs.unity3d.com/kr/2021.3/Manual/class-InputManager.html
[출처 참고] 책 '레트로의 유니티 게임 프로그래밍 에센스'
읽어주셔서 감사합니다.
잘못된 내용에 대한 피드백은 언제나 환영합니다.
728x90
반응형
댓글