UE5 부트캠프(TIL)

[TIL] 언리얼 엔진 – 인터페이스와 상속, 아이템 시스템

Yellow Kirin 2025. 7. 16. 21:53

1. 인터페이스와 베이스(추상) 클래스의 차이점

구분 인터페이스 베이스(추상) 클래스
목적 “이 기능 있음” 약속만 함 “공통 동작/데이터”까지 구현
구현/데이터 함수 선언만, 구현/멤버 변수 없음 함수 구현/멤버 변수 가능
상속 여러 개 동시 상속 가능 한 번에 하나만 상속
코드 재사용 X O
언리얼 예시 IInteractable AItemBase

2. 아이템 인터페이스와 베이스 클래스 구현 방법

  • 아이템 인터페이스 생성:
    
    UINTERFACE(Blueprintable)
    class UMyItemInterface : public UInterface
    {
        GENERATED_BODY()
    };
    class IMyItemInterface
    {
        GENERATED_BODY()
    public:
        virtual void OnPickup(AActor* Picker) = 0;
    };
        
    아이템 클래스에서 public IMyItemInterface 상속
  • 아이템 베이스 클래스 생성:
    공통 기능(예: 콜라이더, OnOverlap) 구현 후 상속

3. 상속을 통한 아이템 구현 예시

  • 코인 아이템: 오버랩 시 점수/코인 증가
  • 힐링 포션: 오버랩 시 플레이어 체력 회복
  • 지뢰 아이템: 오버랩 시 폭발, 데미지

void AItemBase::NotifyActorBeginOverlap(AActor* OtherActor)
{
    // 각 아이템별 OnOverlap 처리
}

4. 스피어 콜라이더 오버랩 이벤트 구현

  • 각 아이템 클래스에 USphereComponent 추가
  • BeginOverlap 이벤트로 플레이어 감지 및 처리

5. 오늘의 요약

  • 인터페이스는 “이 기능 있음”만 표시, 베이스 클래스는 공통 동작/데이터까지 구현
  • 콜라이더와 오버랩 이벤트 활용해 다양한 아이템 효과 구현 가능
  • 구조를 잘 설계하면 아이템 추가/확장 편리