인터페이스란?
객체가 반드시 구현해야 할 행동을 지정하는데 활용하는 타입입니다. 다형성의 구현 의존성이 분리된 설계 유용하게 활용한다.

언리얼 엔진 C++ 인터페이스 특징

1️⃣ UInterface 클래스를 사용하여 선언해야 함
2️⃣ UObject 기반이므로, 언리얼의 리플렉션 시스템(Reflection)을 지원
3️⃣ 다른 UObject 기반 클래스에만 적용 가능 (AActor 등)
4️⃣ 인터페이스의 함수를 반드시 가상 함수(virtual)로 선언해야 함
5️⃣ C++과 블루프린트 모두에서 사용할 수 있음

// IMyInterface.h
#pragma once

#include "UObject/Interface.h"
#include "IMyInterface.generated.h"

// UINTERFACE() 매크로를 사용하여 인터페이스 선언
UINTERFACE(MinimalAPI)
class UMyInterface : public UInterface
{
    GENERATED_BODY()
};

// 인터페이스를 구현할 클래스가 상속받을 실제 인터페이스
class MYPROJECT_API IMyInterface
{
    GENERATED_BODY()

public:
    // 인터페이스의 순수 가상 함수 선언
    virtual void DoSomething() = 0;
};

UINTERFACE(MinimalAPI) → 언리얼의 리플렉션 시스템을 사용하도록 설정
IMyInterface 클래스에서 DoSomething()을 순수 가상 함수로 선언
UMyInterface는 UObject의 기능을 포함하는 언리얼 고유의 인터페이스 시스템

+ Recent posts