저번 시간에는 키보드나 마우스를 눌렀을 때 값이 출력될 수 있도록 Getanykey와 GetmouseButton을 배웠습니다.
이번 시간에는 유니티에서 지정해준 버튼을 이용해서 여러 가지를 배워보도록 하겠습니다.
바로 시작!!!!
유니티에서 우측 상단을 눌러보면 Edit가 있는데 그 중에서 Project Setting의 Input Manager를 누르게 되면 위와 같이 유니티에서 지정해준 버튼들이 나오게 됩니다.
이번 시간에는 이것을 이용해보도록 하겠습니다.
(비록 직접 움직이지는 못하지만 ㅎㅎㅎㅎ)
제가 사용하고 있는 유니티는 2D 기반이기때문에 Horizontal에 대해서만 다루도록 하겠습니다.
사진 안에 보면 설정되어 있는 키는 키보드의 left, right 버튼과 a, d로 되어있습니다.
Negative와 Positive는 -와 +를 뜻하는데 뒤로 가면 x축을 기준으로 -값이 되기 때문이며 앞으로 가면 값이 +가 되기 때문입니다.
Horizontal안에 두 방향이 다 포함되어있기에 "앞으로 간다", "뒤로 간다"는 따로 하지 않겠습니다.
출력되는 값은 저번 시간에 배운대로 눌렀을 때 "플레이어가 움직이기 시작했습니다."가 나올 것이고, 키를 누르고 있다면 "플레이어가 이동 중입니다."
키에서 손을 떼는 순간에 "플레이어가 멈췄습니다."가 출력될 것입니다.
이처럼 유니티에서 지정해둔 키 종류가 다양한데 Jump와 Fire도 있어 따로 함수를 만들지 않아도 편하게 이용이 가능합니다.
물론 유니티에서 자기가 쓰고 싶은 키를 직접 바꿀 수 있기 때문에 자유도 높습니다.
여기서 주의해야 될 점!!!!
유니티에서 입력한 키 값은 대소문자 구분을 하기 때문에 헷갈리지 않도록 주의해야 합니다!!!!!!
지정된 키를 누르면 이동하는 것을 배웠으니 다음으로는 이동하는 방법에 대해서 배워보겠습니다.
바로 GetAxis와 GetAxisRaw입니다.
먼저 GetAxis에 대해서 보겠습니다.
출력 값을 보기 전에 GetAxis는 -1과 1 사이에서 float값을 가지는 것이 특징입니다.
즉, 부드러운 움직임을 나타내고 싶을 때 주로 사용됩니다.
사진에 다 담지는 못했지만 값이 0.03부터 시작해 천천히 올라가 마지막에는 1로 끝나는 것을 볼 수 있습니다.
실제로 움직일 때도 바로 빡!!! 하고 움직이는 것이 아니라 한 발, 두 발 점점 속도가 붙어 일정한 속도로 가는 느낌이 GetAixs입니다.
GetAixs가 0부터 천천히 올라가는 것이 특징인 반면에 GetAxisRaw는 바로 1 또는 -1의 값을 가지게 됩니다.
다음으로 위치 값을 다뤄보도록 하겠습니다.
유니티에서 각각의 오브젝트는 저마다 꼭 하나씩의 Transform을 가지고 있습니다.
먼저 배워볼 것은 Transform의 간단한 함수인 Translate입니다.
Translate는 Vector값을 가져야 하는데, 여기서 Vector란 크기와 방향을 가지는 값입니다.
이제 Vector값을 지정해줘야 합니다.
Vector를 만들 때도 역시나 new를 써서 값을 지정해줘야 하는데, 일단 간단하게 x축의 값은 1y축의 값은 0으로 지정해보겠습니다.
기본적으로 2D는 y축이 점프이기 때문에 거의 값이 0이 들어가게 됩니다.
보면 처음에 1까지의 위치로 움직이고 그 뒤로 앞으로 쭈~~~ 욱 나가게 됩니다.
그리고 Vector값은 float값도 사용할 수가 있습니다.
x축의 값인 1을 0.01f로 바꾼다면 아래와 같은 결과가 나오게 됩니다.
그렇다면!!!!!! 오늘 배웠던 버튼 입력을 Vector값 안에 넣어주게 된다면 키 입력에 따라서 움직이지 않을까??
Vector값의 크기는 아까와 마찬가지로 유니티 안의 Input Manager에서 Sensitivity값을 설정해주면 됩니다.
오늘은 드디어 직접 키보드를 이용해 오브젝트를 움직여보는 것을 배웠습니다.
드디어 뭔가를 만들고 있다는 느낌이 나는 것 같습니다.
오늘 배운 것 중에 주의해야 될 것이 있다면
1. 유니티의 키값은 대소문자 구분을 해야 한다.
2. Translate는 Vector값을 갖는다.
이렇게 두 가지입니다.
다음 시간에도 정진하는 내가 될 수 있도록!!!!!
투 비 컨티뉴
'TIL > 유니티' 카테고리의 다른 글
오브젝트 움직이기(4) (0) | 2020.10.07 |
---|---|
오브젝트 움직이기(3) (0) | 2020.09.26 |
오브젝트 움직이기(Input) (0) | 2020.09.19 |
2D 애니메이션 (2) (0) | 2020.09.01 |
2D 애니메이션 (0) | 2020.09.01 |
댓글