본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 c++ EnhancedInput

by MRG 2024. 4. 15.
728x90
반응형

 

▣ EnhancedInput 입력 Context와 InputAction을 생성합니다. 

 

 

▣ Project Settings -> Input -> Default Classess에 EnhancedInput과 Component를 설정했는지 확인합니다. 

그리고 플레이어 C++ 코드를 불러옵니다. 

 

 

▣ 솔루션 탐색기에서 Source폴더에 프로젝트폴더에 프로젝트이름. Build.cs를 찾아서 PublicDependencyModuleNames.AddRange()함수코드에 "EnhancedInput"을 추가하고 저장합니다. 

 

 

▣ 그리고 플레이어 캐릭터 C++에. h 헤더로 가서  #Include "InputActionvalue.h"를 추가합니다. 

이때 빨간 줄로 오류가 나오는 경우가 있습니다. 저장 후 

 

 

▣ 프로젝트 경로로 가서 프로젝트 exe에서 오른쪽마우스를 클릭 후 generate visual studio project files을 클릭하여
비주얼 스튜디오 프로젝트 파일 생성을 합니다. 그리고 다시 c++로 들어가면 오류가 해결됩니다. 

 

 

▣ InputMapping과 InputAction에 관한 변수 및 함수를 선언합니다. 

함수를 선언하면 오류가 나오는데 이때 함수이름을 클릭하고 Alt + Enter키를 눌러. cpp에 함수를 정의하고 저장합니다. 

 

 

▣. cpp로 가서 필요한 3개의 헤더를 추가합니다. 

 

 

 

▣ . h에서 선언했던 변수에 Content에 있는 3개 Context, Action Input 경로를 저장 후 위에 코드처럼 각각 변수에 정의합니다. 

 

 

 

▣ 그리고 Event BeginPlay에서 블루프린트처럼 플레이어 컨트롤러를 캐스팅하고 SubSystem과 Input Mapping Context를 연결하는 코드를 작성합니다. 

 

 

 

▣  UenhancedInputComponent를 캐스팅하고 바인딩하는 코드를 완성합니다. 

 

 

 

 

▣ 그리고 각각 함수마다 입력 매개변수(FInputActionValue& Value)를 이용하여 위에 블루프린트처럼 이동 및 마우스 회전 코드를 작성하고 저장합니다.

 

https://docs.unrealengine.com/4.27/en-US/API/Runtime/Core/Math/FRotationMatrix/

 

FRotationMatrix

Rotation matrix no translation

docs.unrealengine.com

 

https://docs.unrealengine.com/4.27/en-US/API/Runtime/Core/Math/FMatrix/GetUnitAxis/

 

FMatrix::GetUnitAxis

Get unit length axis of this matrix

docs.unrealengine.com

 

 

▣ 빌드 후 플레이를 해보면 이동하고 마우스로 회전하는 걸 확인할 수 있습니다. 

 

 

UObject : U

AActor : A

State : S

Template class : T

순수 클래스, 구조체, Fantastic : F

 

 

 

▣ 마우스 위 아래 회전에 대한 부분은 SpringArm을 접근해서 Use Pawn Control Rotation을 True로 하는 코드를 적용합니다.

728x90
반응형

댓글