일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리액트네이티브
- oveflow
- Unity
- 코루틴
- 유니티
- 키보드
- File
- GetKey
- Explicit Conversion
- 중단
- 명시적형변환
- 훅
- 오버플로우
- 마우스
- Subscribe
- JSON
- 클래스
- implicit Conversion
- OnMouseClick
- useEffect
- 암시적형변환
- 불러오기
- 구독
- 팁
- 저장
- 리액트
- C#
- stopcoroutine
- Fetch
- >.NET
- Today
- Total
Log to grow
[Unity] 키보드, 마우스 조작 정리 본문
유니티 에디터에서 디버깅을 위해 키보드, 마우스로 조작하는 방법에 대해 알아보자.
- 기본적으로 매 프레임마다 입력이 있는지 없는지 확인해야 하기 때문에 Update 문 안에 코드를 작성한다.
1. 키보드
# 1. 메서드
- 키보드의 인풋을 받아들이는 메서드는 GetKey, GetKeyDown, GetKeyUp 3가지가 존재한다.
- GetKey : 해당하는 키를 누르는 동안 true를 반환한다. 즉, 키를 누르고 있다면 매 프레임마다 if 문이 실행된다.
- GetKeyDown : 해당하는 키가 눌릴 때 1회 true를 반환한다.
- GetKeyUp : 해당하는 키를 뗄 때 1회 true를 반환한다.
# 2. 인자
- 인자는 2가지의 형태로 들어갈 수 있다. 첫 번째는 문자열의 형태("w"), 두 번째는 KeyCode를 사용하는 것이다.
- 유의해야할 점은 문자열의 형태로 인자를 작성할 때 소문자로 작성해야 한다는 것이다. 때문에 실수를 막기 위해 KeyCode를 사용하는 것이 좋다.
- 예를 들어, WASD를 이용하여 플레이어를 움직이는 코드는 아래와 같이 작성할 수 있다.
float speed = 1;
void Update()
{
if (Input.GetKey(KeyCode.W))
{
this.transform.Translate(0,speed * Time.deltaTime,0);
}
if (Input.GetKey(KeyCode.S))
{
this.transform.Translate(0,- speed * Time.deltaTime,0);
}
if (Input.GetKey(KeyCode.A))
{
this.transform.Translate(-speed * Time.deltaTime,0,0);
}
if (Input.GetKey(KeyCode.D))
{
this.transform.Translate(speed * Time.deltaTime,0,0);
}
}
1. 마우스
# 1. 메서드
- 마우스의 인풋을 받아들이는 메서드는 GetMouseButton, GetMouseButtonDown, GetMouseButtonUp 3가지가 존재한다.
- 동작하는 방식은 키보드의 경우와 똑같다.
- GetMouseButton 삼총사는 모바일에서의 터치도 마우스가 클릭된 것 처럼 인식한다.
# 2. 인자
- GetMouseButton 삼총사는 인자로 0,1,2를 받을 수 있다.
- 0은 마우스 왼쪽 버튼, 1은 마우스 오른쪽 버튼, 2는 마우스 휠을 의미한다.
- 예를 들어 마우스 왼쪽 버튼을 클릭했을 때 Shoot() 이라는 메서드를 실행시키려면 아래와 같이 코드를 작성하면 된다.
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Shoot();
}
}
'Game > Unity' 카테고리의 다른 글
[Unity] 클래스를 Json으로 저장, 불러오기(Json.NET) (0) | 2020.01.24 |
---|---|
[Unity] 코루틴 중단하는 모든 방법 정리 (StopCoroutine) (1) | 2019.07.15 |
[Unity] Awake, Start, OnEnable 간단 정리 (0) | 2018.08.28 |
[Unity] 스마트 게임엔지니어링의 3대 요소 (0) | 2018.08.13 |
[Unity] 오브젝트의 회전에 대하여(Rotation, Quaternion, Euler) (4) | 2018.08.03 |