유니티에서는 다양한 방식으로 게임의 입력을 구현할 수 있는데,
그 중 플레이어 이동에서 가장 많이 사용되는 InputSystem으로 가장 기본적인 WASD 이동을 구현하여
핵심을 알아보자.
1. 프로젝트 설정
프로젝트 매니저에 들어가서,
패키지를 Unity Registry로 해주고, Input System을 찾아서 설치해준다.
만약에 "재시작" 하라는 알림창이 뜨면 재시작을 실행해준다.
2. 인풋 시스템 설정하기
인풋 시스템을 설치하고 나면, 프로젝트 폴더에 Input Action을 생성해줄 수 있다.
생성하고 나면, 해당 인풋 시스템을 선택하고 Edit Asset 을 눌러준다.
말 그대로 Asset을 수정하기 위함이다.
그러면 이렇게 설정 창이 나온다.
먼저, ActionMaps 에서 하나를 추가해주고, 해당 맵에 Actions를 추가해준다.
이름을 Move라고 설정해주고, Action Type을 Value로 설정해준다.
Action을 값으로 해석한다는 의미로 이해가능하다.
Control Type은 Vector2로 설정해준다. 값을 Vector2값으로 해석한다고 볼 수 있다.
해당 Move Actions 옆에 + 버튼을 누르고, 두번째를 선택해준다.
그러면 Up, Down, Left, Right 입력이 나온다.
각 방향에 맞게 키를 지정해준다.
그 다음 움직임을 줄 플레이어에게 input System을 넣어주고
Behavior는 Invoke Unity Events로 변경해준다.
그러면 아래 Events 항목이 생기는데,
안을 열어보면 방금 설정해준 Move 항목을 볼수 있다.
이벤트를 추가하고 스크립트를 만들어 설정해주면 된다.
3. 스크립트 작성
위와 같이 InputAction.CallbackContext로 입력 값을 받아 읽어주는 스크립트를 작성하고
플레이어 움직임을 구현해주면,
WASD로 움직이게 할 수 있다.
'유니티' 카테고리의 다른 글
[유니티] FSM:유한 상태 머신 / State Pattern으로 NPC AI 구현하기 (0) | 2025.03.25 |
---|---|
[유니티] 유니티에서 Delta에 대한 이해 (0) | 2025.03.06 |
[유니티] Coroutine 작동 방식 및 yield의 역할 (0) | 2025.03.05 |
[유니티] SkyBox 개념과 적용 방법 (0) | 2025.03.04 |
[유니티] IEnumrator를 사용한 스토리 컷 편집하는 법 (0) | 2025.02.27 |