[Unity] 모바일에서 조이스틱으로 플레이어 이동시키기
⭐️ 목표 ⭐️
1. 모바일에서 조이스틱으로 플레이어와 카메라를 이동시킬 수 있다.
저는 유니티 에디터 20202.3.26 f1 (LTS) 버전을 사용 중이고
유니티 유튭영상 에 나오는 내용을 기반으로 하고 있습니다.
[1] Starter Assets > Mobile 살펴보기
모바일에서 Playground를 빌드해보면 PC에서와 달리 화면 터치 이벤트를 못받는 것을 볼 수 있습니다.
모바일에서도 플레이어를 이동시킬 수 있도록 지원해주기 위해서
모바일 인풋처리를 따로 해줘야합니다. (조이스틱을 만들고 스크립트를 연동해서 플레이어를 이동시키고...)
하지만 Starter Assets은 Touch zone mobile controls 와 Joystick mobile controls를 제공해주고 있습니다. 🎉
이를 사용하면 간단하게 모바일에서도 플레이어 이동을 구현할 수 있습니다.
저는 조이스틱을 사용해보겠습니다.
[2] 모바일에서 조이스틱으로 플레이어 이동시키기
이전 글에서 만든 플레이어로 진행해보겠습니다.
# JoyStick UI 추가
StarterAssets > Mobile > Prefabs > CanvasInputs에 들어가보면
터치존과 조이스틱 prefab이 있습니다.
저는 조이스틱을 사용해줄 것이여서 이 prefab을 현재 Scene으로 끌어와줬습니다.
Inspector 창 > UI Canvas Controller Input 에 가보면
Start Assets Inputs이 None으로 되어있는데, 현재 플레이어로 설정해줘야합니다.
Canvas와 Canvas Scaler 컴포넌트를 보면 조이스틱 UI가 화면 사이즈에 맞게 잘 배치될 것을 알 수 있습니다.
실제 디바이스에 돌려서 가로, 세로모드로 해보면 스크린 사이즈에 맞게 잘 위치하는 것을 확인할 수 있습니다.
(UI Sacle Mode가 Scale With Screen Size 로 되어있기 때문)
# EventSystem 추가
그리고 이벤트를 받을 수 있게 하기 위해
StarterAssets > Mobile > Prefabs > EventSystem 에 들어가서 UI_EventSystem prefab을 Scene에 끌어다 놓습니다.
그리고 모바일에서 빌드해보면 조이스틱이 잘동작하는 것을 볼 수 있습니다.
오른쪽 하단에 위치한 Sprint 버튼은 Jump 버튼처럼 단독으로 클릭하는게 아니라
방향키 조이스틱과 함께 사용해주는 것임을 유의해주세요!
(참고로 PC에서는 Shift + 방향키 이동으로 Sprint 동작을 합니다.)