Showing

[Unreal] const FInputActionValue& InValue 인자 빌드가 안되는 경우 본문

Issue Solving

[Unreal] const FInputActionValue& InValue 인자 빌드가 안되는 경우

RabbitCode 2024. 1. 6. 19:14

하고자 했던 작업

h

private:
    void Move(const FInputActionValue& InValue);

cpp

void AgViewCharacter::Move(const FInputActionValue& InValue)
{
    FVector2D MovementVector = InValue.Get<FVector2D>();
    AddMovementInput(GetActorForwardVector(), MovementVector.X);
    AddMovementInput(GetActorRightVector(), MovementVector.Y);
}

문제 해결을 위한 노력

위의 간단한 인풋에 따른 Move 함수를 추가하려고 하였으나 const FInputActionValue& InValue 인자에 대해서 먹통이 되면서 프로젝트 자체가 빌드가 안되는 이슈가 있었다.
 
그럴리가 없다면서 h와 cpp에 작성된 Move 함수만 지웠다 고쳤다는 수번째..
애꿎은 .cpp에 달린 헤더들만 다시 뜯어봤었고..
// Fill out your copyright notice in the Description page of Project Settings.
#include "Character/gViewCharacter.h"
#include "Kismet/KismetSystemLibrary.h"
#include "Components/CapsuleComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"
#include "GameFramework/CharacterMovementComponent.h"
#include "DrawDebugHelpers.h"
#include "Components/InputComponent.h"
#include "GameFramework/Controller.h"
#include "EnhancedInputSubsystems.h" //https://docs.unrealengine.com/5.0/en-US/enhanced-input-in-unreal-engine/
#include "EnhancedInputComponent.h" //https://docs.unrealengine.com/4.26/en-US/InteractiveExperiences/Input/EnhancedInput/
#include "Input/InputConfigData.h"
 
아래와 같은 오류문들을 수도 없이 봤다.
 
 
You
1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Private\Character\gViewCharacter.cpp(42): note: 가리킨 형식이 관련이 없습니다. 변환하려면 reinterpret_cast, C 스타일 캐스트 또는 괄호가 있는 함수 스타일 캐스트가 필요합니다.
EnhancedInput\Public\EnhancedInputComponent.h(499): note: 또는 'FInputActionBinding &UEnhancedInputComponent::BindAction(const FName,const EInputEvent,UserClass *,DelegateType::TMethodPtr<UserClass>,VarTypes...)' 1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Private\Character\gViewCharacter.cpp(42): note: 'FInputActionBinding &UEnhancedInputComponent::BindAction(const FName,const EInputEvent,UserClass *,DelegateType::TMethodPtr<UserClass>,VarTypes...)': 'DelegateType'의 템플릿 인수를 추론할 수 없습니다. 1>C:\Program Files\EpicGames\UE_5.2\Engine\Plugins\EnhancedInput\Source\EnhancedInput\Public\EnhancedInputComponent.h(497): note: 또는 'FInputActionBinding &UEnhancedInputComponent::BindAction(const FName,const EInputEvent,UserClass *,TMemFunPtrType<false,UserClass,void(FKey)>::Type)' 1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Private\Character\gViewCharacter.cpp(42): note: '초기화 중': 'TObjectPtr<UInputAction>'에서 'const FName'(으)로 변환할 수 없습니다. 1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Private\Character\gViewCharacter.cpp(42): note: 이 변환을 수행할 수 있는 사용 가능한 사용자 정의 변환 연산자가 없거나 연산자를 호출할 수 없습니다. 1>C:\Program Files\Epic Games\UE_5.2\Engine\Plugins\EnhancedInput\Source\EnhancedInput\Public\EnhancedInputComponent.h(495): note: 또는 'FInputActionBinding &UEnhancedInputComponent::BindAction(const FName,const EInputEvent,UserClass *,TMemFunPtrType<false,UserClass,void(void)>::Type)' 1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Private\Character\gViewCharacter.cpp(42): note: '초기화 중': 'TObjectPtr<UInputAction>'에서 'const FName'(으)로 변환할 수 없습니다. 1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Private\Character\gViewCharacter.cpp(42): note: 이 변환을 수행할 수 있는 사용 가능한 사용자 정의 변환 연산자가 없거나 연산자를 호출할 수 없습니다. 1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Private\Character\gViewCharacter.cpp(42): note: 인수 목록 '(TObjectPtr<UInputAction>, ETriggerEvent, AgViewCharacter *, void (__cdecl AgViewCharacter::* )(const int))'을(를) 일치시키는 동안 1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Private\Character\gViewCharacter.cpp(46): error C2511: 'void AgViewCharacter::Move(const FInputActionValue &)': 오버로드된 멤버 함수가 'AgViewCharacter'에 없습니다. 1>C:\Users\user\Documents\Unreal Projects\firstProject\Source\firstProject\Public\Character\gViewCharacter.h(13): note: 'AgViewCharacter' 선언을 참조하십시오.
 
 

문제 해결

아주 뒤늦게 #include "InputActionValue.h"가 없다는 것을 알게되었다.

#include "CoreMinimal.h"
#include "Character/gCharacter.h"
#include "InputActionValue.h"
#include "gViewCharacter.generated.h"