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





