728x90
사용하는 환경에 따라 플레이어를 움직이게 하는 방법은 많다. 그 중에서 모바일 화면 터치로 플레이어를 움직이게 하는 방법에 대해 설명하겠다.
우선 TouchPhase는 터치 입력을 5가지 단계로 나타내준다. 다음은 5가지 상태에 관한 설명은 유니티 메뉴얼에서 가져온 것이다.
Began | 화면에 터치가 시작된 상태를 나타냅니다. |
Moved | 손가락 터치가 화면에서 움직인 경우를 나타냅니다. |
Stationary | 터치를 했지만 움직이지 않은 상태를 나타냅니다. |
Ended | 사용자가 화면에서 손가락을 뗀 경우를 나타냅니다. 터치의 마지막 단계를 나타냅니다. |
Canceled | 사용자가 자신의 얼굴에 장치를 가져간 경우 또는 5개의 터치가 동시에 이루어진 경우에 시스템이 터치의 추적을 취소합니다. 터치의 마지막 단계를 나타냅니다. |
이렇게 보면 Button이나 Touch로 플레이어를 움직이는 거는 다르지 않다는 것을 알 수 있을 것이다.
그렇게 해서 TouchPhase를 이용하여 플레이어 스크립트를 작성한다면 아래 처럼 된다.
코드를 풀이하자면
만약 현재 어플리케이션이 플레이 되고 있는 플랫폼이 안드로이드라면 첫번째 조건문 안으로 들어간다.
그리고 첫번째 터치 상태가 Stationary이거나 Began이라면 두번째 조건에 들어가게 되고 이때는 모바일 화면을 한번 누르고 유지하고 있는 상태를 말하는 거다. 그렇다면 이때 첫번째 터치에 대한 정보를 가져와서 가운데를 기준으로 왼쪽에 있으면 왼쪽으로 이동하게 오른쪽에 있으면 오른쪽으로 이동할 수 있게 변수를 설정해준다.
다음에는 왼쪽, 오른쪽 움직임에 맞게 플레이어 이동이 매끄럽게 보이기 위해 뒤집어준다. 마지막으로 만약 첫번째 터치의 상태가 Ended가 된다면 그에 맞게 움직임 변수를 바꿔준다.
정해진 변수 설정에 맞게 플레이어를 이동시켜준다.
728x90
'Unity' 카테고리의 다른 글
[Unity] A* 알고리즘 2d 길찾기 설명 (0) | 2020.04.07 |
---|---|
[Unity] Camera를 이용한 게임 화면 크기 구하기 (0) | 2020.04.06 |
[Unity] RaycastHit2D, Invoke()를 사용한 생각하는 적 만들기 (0) | 2020.03.30 |
[Unity] 오브젝트에 능력 넣어주기 (0) | 2020.03.28 |
[Unity] Prefab을 이용한 랜덤 뽑기 (0) | 2020.03.27 |