
게임플레이 · 약 3분
Enhanced Input으로 한 번 누르는 공격 액션 만들기
Input Action·Mapping Context·로컬 플레이어 등록을 연결하고 Started와 Triggered를 의도에 맞게 사용합니다.
Wolfgadeok · 업데이트
키 이름 대신 행동을 정의하기
IA_Attack은 H 키 그 자체가 아니라 공격하려는 행동입니다. 키보드 H, 마우스 버튼, 게임패드 버튼을 같은 행동에 매핑하면 게임 로직은 입력 장치마다 복제할 필요가 없습니다. 한 번 누르는 공격에는 Boolean 값의 Input Action이 간단한 출발점입니다. 이동 방향처럼 두 축이 필요한 행동과는 값 타입을 구분합니다.
Input Action을 만든 것만으로 이벤트가 오지는 않습니다. Input Mapping Context에 키를 연결하고 그 Context를 해당 로컬 플레이어의 Enhanced Input Subsystem에 활성화해야 합니다. 기존 ThirdPerson 입력 환경에 액션을 추가하더라도 사용할 Context가 등록돼 있는지 확인합니다. 새 Pawn이나 메뉴 화면에서 시작할 때에는 활성 Context와 우선순위까지 확인합니다.
Started와 Triggered의 목적
Started는 트리거 평가가 시작되는 시점을 나타냅니다. 추가 조건 없는 즉시 공격을 한 번 요청하려면 이 이벤트가 알기 쉬운 출발점입니다. Triggered는 설정된 트리거 조건이 충족됐음을 나타내며, 액션 구성에 따라 키를 누르는 동안 반복해서 발생할 수 있습니다. 반복 발생하는 이벤트에 몬타지 재생을 바로 연결하면 누르고 있는 동안 공격이 계속 재시작되는 문제가 생길 수 있습니다.
Hold나 Tap처럼 조건을 설정했다면 Started에서 공격하면 조건이 완료되기 전에 실행될 수 있습니다. 그런 액션은 의도한 Triggered 시점과 Canceled·Completed 처리까지 설계합니다. 어떤 핀이든 이름만 외우기보다 키를 짧게 누르기·길게 누르기·도중 해제하기를 테스트해 실제 호출 횟수를 확인합니다. 입력 빈도 제어와 게임의 공격 상태 제어는 별도 책임입니다.
공격 시스템에 연결하기 전에 검사하기
먼저 이벤트 발생 횟수만 출력해 키 한 번에 요청이 몇 번 생기는지 확인합니다. 그다음 TryAttack 같은 단일 진입점으로 연결해 행동 가능 여부를 판단합니다. 죽음·피격·메뉴 입력 중에는 요청을 거절할 수 있고, 콤보 입력은 다음 공격으로 예약할 수도 있습니다. 이 판단을 여러 입력 노드에 흩어 놓으면 장치별로 다른 규칙이 생기기 쉽습니다.
- IA_Attack과 활성 Mapping Context를 확인합니다.
- 즉시 입력인지 Hold·Tap 조건 입력인지 정합니다.
- 짧게 누르기·길게 누르기·UI 포커스 변경 시 호출 횟수를 검사합니다.
- 입력 이벤트는 한 개의 공격 요청 함수로 보내고 상태 판단은 그 함수에 둡니다.