728x90
언리얼 엔진: Custom Input Component 생성 및 설정하기
안녕하세요!
이번 글에서는 언리얼 엔진에서 Custom Input Component를 생성하고, 입력 바인딩을 위한 설정 방법을 알아봅니다. 이 작업은 Input Config Data Asset
과 연동되어 프로젝트에서 입력 시스템을 효과적으로 관리할 수 있도록 돕습니다.
1. Custom Input Component의 필요성
언리얼 엔진의 기본 Enhanced Input Component는 프로젝트의 특수한 요구 사항에 맞추기 어려울 수 있습니다. 이를 해결하기 위해 커스텀 컴포넌트를 만들어 특정 입력 처리 로직을 정의합니다.
2. Custom Input Component 생성
1) 클래스 생성
C++ 클래스 생성
C++ 클래스
→All Classes
→Enhanced Input Component
검색 후 선택- 클래스 이름:
WarriorInputComponent
- 저장 위치:
Components/Input
폴더
컴파일 및 기본 설정
- 클래스 생성 후 프로젝트를 컴파일하여 기본 설정을 완료합니다.
2) 헤더 파일 작성
헤더 파일 수정
// WarriorInputComponent.h #pragma once #include "CoreMinimal.h" #include "EnhancedInputComponent.h" #include "Data_InputConfig.h" #include "WarriorInputComponent.generated.h" UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent)) class YOURPROJECT_API UWarriorInputComponent : public UEnhancedInputComponent { GENERATED_BODY() public: template <typename UserObject, typename CallbackFunc> void BindNativeInputAction( const UData_InputConfig* InputConfig, const FGameplayTag& InputTag, ETriggerEvent TriggerEvent, UserObject* ContextObject, CallbackFunc Func ) { // Input Config가 null인 경우 확인 checkf(InputConfig, TEXT("Input Config Data Asset is null. Cannot proceed with binding.")); // 태그에 해당하는 Input Action 검색 const UInputAction* InputAction = InputConfig->FindNativeInputActionByTag(InputTag); if (InputAction) { // Enhanced Input Component의 BindAction 호출 BindAction(InputAction, TriggerEvent, ContextObject, Func); } } };
설명
BindNativeInputAction
함수는 입력 태그를 기반으로 입력 액션을 바인딩합니다.checkf
매크로를 사용하여InputConfig
가 null인 경우 디버깅 정보를 제공합니다.
3) 모듈 추가
Build.cs
파일에 필요한 모듈을 추가합니다.
PublicDependencyModuleNames.AddRange(new string[] { "EnhancedInput" });
3. 에디터 설정
1) 기본 Input Component 변경
- 프로젝트 설정 →
Input
검색 Default Enhanced Input Component Class
를WarriorInputComponent
로 변경
4. 결과 확인
- 컴파일 후 프로젝트를 실행합니다.
WarriorInputComponent
가 정상적으로 로드되고, 입력이 올바르게 바인딩되는지 확인합니다.
5. 결론
이번 글에서는 Custom Input Component
를 생성하고, 입력 바인딩을 위한 기본 설정을 완료했습니다. 이를 통해 입력 시스템을 확장 가능하고 유지보수하기 쉽게 설계할 수 있습니다. 다음 글에서는 입력 바인딩의 실제 구현을 다룰 예정입니다.
728x90
'Unreal Engine' 카테고리의 다른 글
Unreal Engine의 generated.h 에 대하여 (1) | 2024.11.21 |
---|---|
Lyra Gameplay Ability System & Enhanced Input 4 (0) | 2024.11.15 |
Lyra Gameplay Ability System & Enhanced Input 2 (0) | 2024.11.14 |
Lyra Gameplay Ability System & Enhanced Input 1 (0) | 2024.11.13 |
언리얼 프로젝트 빌드 구성 (0) | 2020.12.12 |