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

김준영님의 프로필 이미지

작성한 질문수

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

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

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

작성

·

200

·

수정됨

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

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

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

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

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

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

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

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

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