인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

gojob123님의 프로필 이미지

작성한 질문수

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

6강 언리얼 오브젝트 리플렉션 시스템 II

클래스 상속

작성

·

48

0

스크린샷 2025-04-16 161054.png.webp

첫번째 질문

강의에서는 새로운 클래스 3개를 만들어서 Visual studio 안에서 상속을 해주셨는데, 이런식으로 Child Class를 만들어도 똑같은지, 혹은 차이점이 있다면 어떠한 차이점이 있는지 궁금합니다.

 

두번째 질문

DoLesson함수 같은 경우 UFUNCTION() 매크로를 지정해주셨는데 getter 함수와 setter 함수에는 UFUNCTION() 매크로를 지정을 안해도 되는지 궁금합니다.

답변 2

0

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

네 Part1에서 알려드린 언리얼 엔진의 독특한 클래스 선언 규칙 및 파일 위치, 설정이 모두 부합하다면 어떻게 진행해도 무방합니다.
UFUNCTION 매크로는 가볍게 말하면 해당 C++ 멤버 함수를 언리얼 만의 특수 기능에 사용하겠다는 겁니다. 크게는 블루프린트에서의 호출, 언리얼 네트웍을 사용한 RPC 작업등이죠.
만일 언리얼 특수 기능과 관련 없이 C++ 내 에서만 가볍게 사용한다면 UFUNCTION은 없어도 무방합니다.

0

인프런 AI 인턴님의 프로필 이미지

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

첫 번째 질문에 대한 답변:

강의에서 새로운 클래스를 만들고 Visual Studio와 같은 개발 환경에서 상속을 설정합니다. 언리얼 엔진에서 C++ 클래스를 만들 때, Visual Studio에서 직접 기본 클래스를 상속하는 것과 언리얼의 에디터나 툴을 사용하여 클래스를 상속받아 생성하는 방법은 일반적으로 같은 효과를 가집니다. 그러나 아래와 같은 차이점이 있을 수 있습니다:

  1. 편의성: 언리얼 엔진의 에디터를 사용하면 에디터 안에서 설정을 쉽게 변경할 수 있어 빠르게 개발할 때 좋은 옵션입니다.

  2. 자동화: 언리얼 에디터에서 제공하는 기능은 클래스 설정 및 관련 파일을 자동으로 세팅해주어 개발자의 편의를 도모합니다.

  3. 구조 관리: 큰 프로젝트에서 파일구조를 일관되게 유지하기 위해서는 언리얼의 프로젝트 기준 설정을 이용하는 것이 효율적일 수 있습니다.

두 번째 질문에 대한 답변:

UFUNCTION() 매크로는 블루프린트에 노출되거나 다른 엔진 기능과 상호작용할 필요가 있을 때 사용됩니다. 일반적으로 DoLesson 함수와 같이 특정 기능을 제공해야 하거나 이벤트 핸들러로 사용되는 함수들은 UFUNCTION을 정의하는 것이 유용합니다.

반면, gettersetter 함수는 외부에서 접근이 필요 없거나 매우 단순한 데이터 접근자 역할만 수행할 경우 UFUNCTION 매크로를 굳이 사용하지 않아도 됩니다. 이러한 함수들은 C++의 클래스 내에서 보조적인 역할을 하기 때문입니다. 물론, 블루프린트나 슬로팅 기능 등을 통해 외부에서의 접근이 필요하다면 UFUNCTION을 통한 노출이 필요할 수도 있습니다.

추가 자료

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

gojob123님의 프로필 이미지

작성한 질문수

질문하기