인프런 커뮤니티 질문&답변

김준영님의 프로필 이미지

작성한 질문수

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

13강 캐릭터 무브먼트의 확장

13강 void UABCharacterMovementComponent::ABTeleport() 구현에서 문제가 있습니다.

24.02.22 17:15 작성

·

192

·

수정됨

1

강의 코드와 같이 작성했으나 CharacterOwner에 멤버함수에 대해 접근이 안됩니다.

//.h FIle 
class ARENABATTLE_API UABCharacterMovementComponent : public UCharacterMovementComponent 

분명 UCharacterMovementComponent 클래스를 상속받았고 UCharacterMovementComponent 클래스안에 ACharater에대한 선언도 있는듯 한데

CharacterOwner포인터가 incompleted class라고 하면서 클래스 내부에 대해 접근을 하지못하네요..ㅠㅠ

FVector TargetLocation = CharacterOwner->GetActorLocation() + CharacterOwner->GetActorForwardVector() * TeleportOffset;

#include "GameFramework/Character.h"

우선 해당 클래스를 cpp에 포함시켜서 해결은 했는데 저만발생하는거같아 이상하네요

 더좋은 방법이 있을까요??

 

아래는 에러코드들입니다.

error C2027: use of undefined type 'ACharacter'

error C2039: 'GetActorLocation': is not a member of 'TObjectPtr<ACharacter>

error C2027: use of undefined type 'ACharacter'

답변 1

1

이득우님의 프로필 이미지
이득우
지식공유자

2024. 02. 22. 17:47

안녕하세요 현재 버전이 어떻게 될까요?
말씀하신대로 클래스 선언을 참조할 수 없어서 발생한 문제로 보여지고요,
버전마다 특정 헤더 파일의 포함 여부에 차이가 있어서 cpp파일에 추가해주면 될 것 같습니다.

김준영님의 프로필 이미지
김준영
질문자

2024. 02. 22. 19:02

답변 감사합니다. 5.1 버전을 사용중인데 강의자료로 빌드해보아도 같은 이슈인걸로보아

코드에서 발생하는건 아닌거같고 말씀주신대로 버전이나 컴파일과정중에 뭔가 다른게 있지않을까 예상해보고있습니다.

이득우님의 프로필 이미지
이득우
지식공유자

2024. 02. 23. 08:11

음.. 저의 경우 빌드는 성공적으로 되고, 인텔리센스 오류만 나옵니다.
커뮤니티 에디션 최신 버전 ( 17.9.1 )으로 테스트했습니다.
다만 제안주신대로 헤더를 추가하는 것이 바람직합니다.
제보 감사합니다~

#include "Character/ABCharacterMovementComponent.h"
#include "GameFramework/Character.h"
#include "ArenaBattle.h"