Unity3
Unity 3일차
1. GetMouse 이용하기
저번 시간에 이어서 이번에는 GetMouse를 이용해서 마우스의 입력을 받아 그 결과를 콘솔에 출력해보도록 하자.
이는 저번 시간과 같이 C# Script 부분이다. GetMouseButtonDown, GetMouseButton, GetMouseButtonUp을 사용해서 Down, Stay, Up을 구현하였다. 미사일을 쏘는 상황으로 가정하였을 때, 미사일 쏘고 미사일을 충전하여 더 쎈 미사이를 쏘는 방식이다. 여기서 (0)의 의미는 마우스 왼쪽 버튼을 의미하고 (1)이었을 경우에는 마우스 오른쪽 버튼을 의미한다.
유니티 콘솔에서의 결과는 이렇게 나온다. 사용자가 아무 키를 입력하고 미사일을 발사하고 계속 누르면 발사 준비중이었다가 마우스 클릭을 놓은 순간, 수퍼 미사일을 발사한다!
2. 다른 버튼 사용해보기
마우스, 키보드를 벗어나서 다른 버튼을 눌러보고 결과를 확인해보자.
Edit -> Prohect Settings -> Input 으로 들어간다.
Input에 있는 것들은 모두 버튼들이다. 우리는 그 중에서 Jump 버튼을 이용해볼 것이다. Sensitivity는 감도 조절이다. space 버튼을 이용해서 제어한다.
다음은 C# 스크립트이다. GetButton을 이용해서 “Jump” 버튼을 제어한다. 누르는 순간 점프하고 누르고 있는 도중에는 점프를 준비하고 버튼을 떼면 슈퍼점프를 하는 방식이다.
유니티 콘솔에서의 결과를 보면 점프 과정을 확연히 볼 수 있다!
이번에는 “Horizontal” 버튼을 이용해서 이동 좌표를 표시해보도록 하자.
버튼 “Horizontal”을 클릭하면 “이동!”이라는 글씨와 함께 GetAxis로 현재 좌표를 같이 출력하도록 하였다. GetAxis는 float 값을 반환한다.
콘솔 결과는 이러하다. 왼쪽은 -, 오른쪽은 +의 형태를 가진다. 이와 똑같이 Vertical 버튼을 사용하면 키보드의 위, 아래 좌표가 나올 것이다! 이는 중간값이다.
이번에는 아까와 같은 코드에 Raw만 추가해주었다.
그랬더니 이번에는 1을 기준으로 이동한다. 1, -1, 그리고 둘 다 같이 누르면 0이 나온다.
이번에는 저번 시간에 배웠던 라이프 사이클에 있던 UPDATE()를 사용해서 오브젝트를 이동시켜보자.
아까는 Start() 함수 내에서 코드를 작성했지만 이번에는 Update() 내에서 작성하였다. Vector3을 이용해서 3차원으로 x, y, z를 지정해주도록 한다. 또한 transform 객체를 사용하는데 이는 유니티에서 기본적으로 제공해주기 때문에 다로 객체 생성을 할 필요없이 바로 사용하면 된다. 객체를 생성하여서 y축 값에는 1.f의 값을 넣어서 계속 Update되면서 증가시키도록 한다. 결과는 아마도 y축으로 1.f만큼 끊임없이 증가하게 될 것이다.
공이 떠오르고 있다. Scene에서는 이미 화면 밖을 나간 상태이다.
아까 그 코드에서 Raw를 사용한다면 어떻게 될까?
3차원 x, y좌표를 GetAxisRaw로 변경해보았다.
키보드의 방향키대로 자유롭게 제어가 가능하다는 것을 알 수 있다! 이를 이동시키다 보면 1, -1 값 만큼 더해지고 뺴지는 과정을 확인할 수 있다.