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