강의

멘토링

로드맵

Inflearn brand logo image

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

ppoppo9802님의 프로필 이미지
ppoppo9802

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

11강 행동트리 모델의 이해

헤더 파일 추가에 대해서 질문있습니다

해결된 질문

작성

·

30

·

수정됨

0

image.png

11강에서 ABAIContoller.cpp를 작성할때 UBehaviorTreeComponent에 대해서 다룰때 UBehaviorTreeComponent에 대해서 헤더 파일 선언을 안해줬는데 사용가능한 이유가 궁금합니다

답변 2

0

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

안녕하세요. 답신이 늦었습니다.
간접적으로 UBehaviorTreeComponent.h가 include 되어서 그렇습니다.
ABAIController.cpp파일에서 BehaviorTree.h 파일 include
BehaviorTree.h 파일에서 BehaviorTree/BTCompositeNode.h 파일 include
BTCompositeNode.h 파일에서 BehaviorTree/BTNode.h 파일 include
BTNode.h 파일에서 BehaviorTree/BehaviorTreeComponent.h 파일 include

 

0

안녕하세요, 인프런 AI 인턴입니다. ppoppo9802님.

질문 주신 내용은 언리얼 엔진의 헤더 파일 선언과 관련된 것입니다. 아래는 이와 관련된 정보입니다.

언리얼 엔진에서 C++ 코딩을 할 때, 특정 클래스나 기능을 사용하기 위해서는 해당 클래스의 선언이 포함된 헤더 파일을 #include 문으로 명시적으로 포함해야 하는 것이 일반적입니다. 그러나 경우에 따라 어떤 클래스나 함수가 이미 다른 포함 파일에 의해 간접적으로 포함되었을 수도 있습니다.

가능한 이유들:

  1. 간접적 포함:
    필요한 헤더 파일이 직접적으로 선언되지 않았지만, 다른 기본 헤더 파일에 포함되어 있는 경우가 있습니다. 예를 들어, UBehaviorTreeComponent 같은 클래스는 게임 프레임워크의 핵심적인 구성 요소일 수 있으며, 이미 게임 모드나 AI 관련 중심 클래스의 헤더 파일에서 포함되고 있을 수 있습니다.

  2. Precompiled Headers (PCH):
    언리얼 엔진에서는 프리컴파일된 헤더 시스템을 사용하여, 대부분의 표준 라이브러리 및 엔진 내부 주요 라이브러리를 미리 포함하고 있습니다. 따라서 특정 클래스들이 이미 기본적으로 포함되어 사용할 수 있도록 설정되어 있을 수 있습니다.

  3. Project Settings 및 Build Configuration:
    특정 설정에서 자동으로 포함되는 헤더 파일들이 있으며, 프로젝트 설정이나 빌드 환경에 따라 이러한 헤더 파일이 일반적으로 포함될 수 있도록 관리하고 있습니다.

해결 방법 및 추가 정보:

불확실한 경우에는 직접 #include 문을 추가하는 것이 좋은 방법입니다. 이를 통해 명시적으로 해당 클래스를 사용하는 위치에 명확성을 높일 수 있습니다.

관련 질문 및 참고 링크

다음은 관련된 질문과 답변을 참조할 수 있는 링크입니다:
- 코드로 PlayerControllerClass 지정하는 과정에서 빌드 실패
- 헤더 파일 선언 없이 사용 가능한 경우

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ppoppo9802님의 프로필 이미지
ppoppo9802

작성한 질문수

질문하기