강의

멘토링

커뮤니티

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

donghyeoggim30님의 프로필 이미지
donghyeoggim30

작성한 질문수

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

8강 언리얼 C++ 설계 II - 컴포지션

컴포지션을 위한 컴포넌트 생성에 관해 질문드립니다.

작성

·

11

0

8강 10:05를 보면 컴포지션을 위한 Card라는 클래스를 오브젝트를 상속받아서 만들었는데, 클래스를 여러개 찾다보니 ActorComponent라는 클래스를 찾았습니다. 어차피 기능 구현만을 위한 장착용 컴포넌트를 만드는 것이라면 ActorComponent를 쓰는게 더 좋은건지 둘이 어떤 차이가 있는건지 궁금합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. donghyeoggim님께서 언리얼 엔진에서의 컴포지션 구현과 ActorComponent 사용에 대해 궁금하신 것 같습니다.

언리얼 엔진에서 컴포넌트를 사용하는 이유는 코드의 재사용성을 높이고 액터의 기능을 확장하기 위함입니다. ActorComponent는 이러한 확장성을 제공하는 대표적인 클래스입니다.

  1. ActorComponent와 UObject의 차이:

    • ActorComponent: 이 클래스는 액터에 부착할 수 있는 컴포넌트를 만들어줍니다. 주로 게임플레이 로직, 물리적인 속성, 다른 재사용 가능한 기능을 추가할 때 사용됩니다. ActorComponent는 자동으로 이벤트를 받을 수 있으며, 월드와 상호작용이 가능합니다.
    • UObject: 모든 클래스의 기본 베이스로, 메모리 관리, 리플렉션 기능 등을 제공합니다. 액터와 같은 수준에서의 기능이 필요하지 않다면 게임 로직이나 데이터 처리를 위해 UObject를 사용할 수 있습니다.
  2. 사용 시기의 차이:

    • ActorComponent를 사용하는 경우: 액터에 직접 붙여 사용해야 하고, 주로 게임 내의 여러 액터에서 공통적으로 쓸 기능을 구현할 때 사용하는 것이 좋습니다. 예를 들어, 움직임, 렌더링 로직 등을 컴포넌트로 모듈화할 수 있습니다.
    • UObject를 상속하는 경우: 좀 더 독립적인 로직이나 데이터를 처리할 때, 컴포지션보다는 독립적인 로직 단위가 필요할 때 사용할 수 있습니다.
  3. 링크 및 추가 자료:
    만약 좀 더 구체적인 내용을 원하신다면, 아래 링크들을 참고해 보실 수 있습니다:

이러한 내용을 바탕으로 ActorComponentUObject의 사용을 구분하면 좋을 것 같습니다.

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

donghyeoggim30님의 프로필 이미지
donghyeoggim30

작성한 질문수

질문하기