info8995 님의 블로그

TIL: 컨트롤러에서 R 키 바인딩하여 재장전 구현하기 본문

TIL(Today I Learned)/Unreal Engine

TIL: 컨트롤러에서 R 키 바인딩하여 재장전 구현하기

info8995 2025. 2. 28. 20:14

1. R 키를 재장전(Input Action)으로 바인딩하기

언리얼 엔진에서는 Enhanced Input System을 사용하여 키 입력을 관리할 수 있다.
**재장전(R 키)**을 구현하려면 Input Action을 생성하고 이를 컨트롤러에서 바인딩해야 한다.

 

2. IA_Reload Input Action 생성

🔹 Input Action을 생성하는 방법

  1. 콘텐츠 브라우저에서 Input Action 생성
    • Content > Input 폴더에서 우클릭 → Input → Input Action 생성
    • 이름: IA_Reload
    • Value Type: Boolean (True/False)
  2. Input Mapping Context(IMC)에 추가
    • IMC_Character 열기
    • IA_Reload 추가
    • R 키를 바인딩

이제 R 키를 누르면 IA_Reload가 활성화됨!

3. 컨트롤러 (AFPSPlayerController)에서 ReloadAction 추가

📌 AFPSPlayerController.h에서 ReloadAction 변수 선언

ReloadAction(nullptr);를 생성자에서 기본값으로 설정

추가적으로 BP_FPSPlayerController에 들어가서 키 바인딩

4. 캐릭터에서 R 키 바인딩 (SetupPlayerInputComponent)

📌 FPSCharacter.cpp에서 입력을 감지하도록 설정

 

5. AFPSCharacter::Reload() 구현

📌 AFPSCharacter.cpp에서 실제 재장전 기능을 추가

현재 무기가 있으면 Reload() 호출하여 탄약을 채움
무기가 없으면 "장착된 무기가 없습니다!" 메시지 출력


6. 무기 클래스 (AWeapon)에서 Reload() 추가

📌 Weapon.cpp에서 무기 재장전 기능을 구현

재장전 시 탄약을 MaxAmmo로 복원