✨
- Unity하면 C# 해야한다고 세상 겁먹었는데 우리의 Unity는 짱짱맨이었다...
- Java 처음 시작할 때 웹페이지에 내가 쓴 문구 나왔을 때 너무너무 신기했던 것 처럼 Input 하나로 방향키 이동이 가능한 거 보고 너무 신기했다. 그 말인 즉슨 방향키로 이동하는 것 정도는 웹페이지에 문구 한줄 띄워놓은 정도의 난도라는 거겠지 ......... 열심히 공부해서 응용해보기 화이팅.... 🔥🔥🔥
- 2D든, 3D든 등장하는 입력시스템을 다루는 Input 인터페이스에 대해서 정리해보고자 한다.
- 조이스틱이나 키보드 방향키(또는 AWSD), 마우스 좌우에도 다 매핑되어있어 자주 등장하는 인터페이스.
> Input.GetAxis, Input.GetAxisRaw
- 공통점은 Axis로 지정된 input에서 방향 벡터의 x, y값을 가져온다는 것.
- GetAxis는 -1.0f부터 1.0f 까지 범위의 값을 반환하는데. 부드러운 이동이 필요할 때 사용한다.
- GetAxisRaw는 -1.0f, 0.0f, 1.0f 세가지 값 중 하나를 반환하는데, 즉각적인 반응이 필요할 때 사용한다.
- 파라미터로 string axisName을 사용하고, axisName의 경우 Unity에서 기본적으로 정해져있는(자주 사용되는) 값들을 사용해도 되고, 정해져있는 값을 수정하거나 새로 등록해서도 사용할 수 있다.
- 상단의 Edit > Project Settings > Input Manager에서 등록되어있는 axisName들을 확인할 수 있다.
- 위의 코드를 살펴보면, Input.GetAxisRaw를 통해 입력값을 받은 뒤 받은 입력값으로 Vector 생성해서 transform.position에 적용하여 이동시킨다.
* 참고
# transform: 게임오브젝트의 위치와 회전, 스케일을 다룰 수 있는 클래스
# transform.position: 월드 공간에서 트랜스폼의 위치를 나타낸다.
# Vector3(x,y,z): 3차원 벡터와 위치를 표현하기 위해 사용 (어려운 개념인 것 같다..... 나중에 따로 공부하기.)
# Time.deltaTime: 초당 프레임 횟수(FPS)를 컴퓨터의 성능과 무관하도록 동일하게 맞춰주기 위해 사용한다.
> Input.GetKey, Input.GetKeyDown, Input.GetKeyUp
- 유저가 name에 의해 식별된 키를 누르는 동작과 관련된 메서드
- GetKey는 누르고 있는 동안, GetKeyDown은 누르는 시점, GetKeyUp은 떼는 시점이다.
> Input.GetButton, Input.GetButtonDown, Input.GetButtonUp
- 유저가 buttonName을 누르는 동작과 관련된 메서드
- Key의 경우 파라미터가 KeyCode(string)을 통해 일반적인 키보드 입력을 받는 것이고Button의 경우 지정되어있는 buttonName을 통해 입력받는다. (Edit > Project Settings > Input Manager에서 설정 가능)
- GetButton은 누르고 있는 동안, GetButtonDown은 누르는 시점, GetButtonUp은 떼는 시점이다.
'ETC > Unity(C#)' 카테고리의 다른 글
[Unity] 기초(0) - 어느날 갑자기 Unity (0) | 2022.03.02 |
---|