오늘의 코드카타
오늘의 공부
팀 프로젝트 진행 내용
1. 블루프린트로 작성한 내용 C++로 전환
- BP_PlayerCharacter에서 작성한 캐릭터의 상태 전환 및 변수를 c++ 파일에 구현
- ABP에서 다양한 Enum 값을 활용해서 Chooser Table을 선택하는데 활용하기 때문에 다양한 상태를 Enum으로 c++ 파일에 구현
// MovementEnums.h
UENUM(BlueprintType)
enum class EGait : uint8
{
Walk UMETA(DisplayName = "Walk"),
Run UMETA(DisplayName = "Run"),
Sprint UMETA(DisplayName = "Sprint")
};
UENUM(BlueprintType)
enum class ECustomMovementMode : uint8
{
OnGround UMETA(DisplayName = "OnGround"),
InAir UMETA(DisplayName = "InAir")
};
UENUM(BlueprintType)
enum class EMovementState : uint8
{
Idle UMETA(DisplayName = "Idle"),
Moving UMETA(DisplayName = "Moving")
};
UENUM(BlueprintType)
enum class EStance : uint8
{
Stand UMETA(DisplayName = "Stand"),
Crouch UMETA(DisplayName = "Crouch")
};
알게 된 점
코드 함수 주석 오류?
- Blueprint 노드로 Pose Search Generate Trajectory를 통해 궤적 정보를 생성하게 되는데, 해당 노드를 c++로 옮기기 위해서 같은 이름의 함수를 먼저 찾아보았다.
PoseSearchTrajectoryLibrary.h 파일에 PoseSearchGenerateTrajectory() 함수는 아래와 같이 선언되어 있었다.

- 5.6버전을 기준으로 해당 함수는 deprecated 되었으니 쓰지 말라고 되어있다. 그럼 이 함수 대신 어떤 함수를 써야할까?
-> 주석에는 FTransformTrajectory를 사용하는 PoseSearchGenerateTrajectory()을 사용하라고 한다.
-> 그래서 같은 이름으로 오버로딩을 통해서 구현되어 있는가 했는데, 아무리 찾아봐도 없었다.
-> 이 헤더파일을 훑어보니 deprecated된 함수가 정의되어 있는 부분 말고, 사용되는 함수가 정의되어 있는 부분을 보니 아래와 같은 함수가 있었다.

- 위에 선언되어있는 함수가 실질적으로 블루프린트 노드에서 사용하고 있는 함수임을 확인했다.
- 블루프린트 노드를 찾아볼 때는
DisplayName을 통해 찾아보는 것이 상당히 효과적일 것으로 보인다.