인프런 커뮤니티 질문&답변
컴포지션을 위한 컴포넌트 생성에 관해 질문드립니다.
작성
·
19
0
8강 10:05를 보면 컴포지션을 위한 Card라는 클래스를 오브젝트를 상속받아서 만들었는데, 클래스를 여러개 찾다보니 ActorComponent라는 클래스를 찾았습니다. 어차피 기능 구현만을 위한 장착용 컴포넌트를 만드는 것이라면 ActorComponent를 쓰는게 더 좋은건지 둘이 어떤 차이가 있는건지 궁금합니다.
답변 2
0
안녕하세요. ActorComponent는 액터에 부착하는 컴포넌트 클래스이며 액터는 레벨을 구성하는 최소 단위를 의미합니다.
ActorComponent를 상속받아 구현하면 컴포넌트가 가진 기본 기능을 액터에 사용할 수 있어서 범용성이 좋을 수 있겠지요. 하지만 이러한 콘텐츠 제작에 관련된 내용은 파트2 강의로 분리해 자세히 다루고 있습니다.
파트1강의는 레벨에 관련된 콘텐츠를 다루기 전, 엔진의 기반 시스템을 알려주는 것을 목표로 했는데, 엔진단에서 관리하는 클래스트 최소 단위는 UObject 입니다. ActorComponent 역시 UObject를 기반으로 하고 있으니 현재 상황에 맞게 선택해 사용하면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. donghyeoggim님께서 언리얼 엔진에서의 컴포지션 구현과 ActorComponent 사용에 대해 궁금하신 것 같습니다.
언리얼 엔진에서 컴포넌트를 사용하는 이유는 코드의 재사용성을 높이고 액터의 기능을 확장하기 위함입니다. ActorComponent는 이러한 확장성을 제공하는 대표적인 클래스입니다.
ActorComponent와 UObject의 차이:
ActorComponent: 이 클래스는 액터에 부착할 수 있는 컴포넌트를 만들어줍니다. 주로 게임플레이 로직, 물리적인 속성, 다른 재사용 가능한 기능을 추가할 때 사용됩니다. ActorComponent는 자동으로 이벤트를 받을 수 있으며, 월드와 상호작용이 가능합니다.
UObject: 모든 클래스의 기본 베이스로, 메모리 관리, 리플렉션 기능 등을 제공합니다. 액터와 같은 수준에서의 기능이 필요하지 않다면 게임 로직이나 데이터 처리를 위해UObject를 사용할 수 있습니다.
사용 시기의 차이:
ActorComponent를 사용하는 경우: 액터에 직접 붙여 사용해야 하고, 주로 게임 내의 여러 액터에서 공통적으로 쓸 기능을 구현할 때 사용하는 것이 좋습니다. 예를 들어, 움직임, 렌더링 로직 등을 컴포넌트로 모듈화할 수 있습니다.
UObject를 상속하는 경우: 좀 더 독립적인 로직이나 데이터를 처리할 때, 컴포지션보다는 독립적인 로직 단위가 필요할 때 사용할 수 있습니다.
링크 및 추가 자료:
만약 좀 더 구체적인 내용을 원하신다면, 아래 링크들을 참고해 보실 수 있습니다:
이러한 내용을 바탕으로 ActorComponent와 UObject의 사용을 구분하면 좋을 것 같습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





