생성 방법은 우클릭 후 > New C++ Class > Unreal Interface
언리얼에선 모든 오브젝트들은 인스턴스화가 되어야 되기 때문에 인터페이스가 단순한 가상함수 (순수 가상 함수 X)이다.
원형은 아래와 같다. UWeaponInterface는 그대로 놔둔다, 리플렉션 전용이기에 절대로 지워서는 안된다.
아래에 있는 I로 시작되는 IWeaponInterface에 구현부를 넣는다.
헤더파일
#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "WeaponInterface.generated.h"
// This class does not need to be modified.
UINTERFACE(MinimalAPI)
class UWeaponInterface : public UInterface
{
GENERATED_BODY()
};
/**
*
*/
class PUBG_UE4_API IWeaponInterface
{
GENERATED_BODY()
// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
// 클릭 이벤트
virtual void ClickEvent();
};
cpp파일에서도 마찬가지로 선언을 해준다.
// Fill out your copyright notice in the Description page of Project Settings.
#include "WeaponInterface.h"
// Add default functionality here for any IWeaponInterface functions that are not pure virtual.
void IWeaponInterface::ClickEvent()
{
}
이제 헤더파일을 #include 해서 상속받기만 하면된다.
UCLASS()
class PUBG_UE4_API ABaseInteraction : public AActor, public IWeaponInterface
{
GENERATED_BODY()
public:
virtual void ClickEvent() override { };
};
크게 총기 무기 ACoreWeapon, 근접 무기 ACoreMeleeWeapon 그리고 투척류 무기 ACoreThrowableWeapon에 해당 ABaseInteraction 클래스를 상속 받을 것이다, 따라서 아래와 같이 붙여줄거다.
virtual void ClickEvent() final;
'게임엔진 > Unreal' 카테고리의 다른 글
[Unreal] 클래스 생성시 FObjectInitializer 사용법 (기본 컴포넌트 변경) (0) | 2022.08.17 |
---|---|
[Unreal] 캐릭터 이동 관련 컴포넌트 (UCharacter / UPawn MovementComponent*) (0) | 2022.08.15 |
[Unreal] csv 파일 불러온 후 읽어들이기 (0) | 2022.08.05 |
[Unreal] 자료구조 순회 방법 (0) | 2022.08.04 |
[Unreal] FTimerManager 타이머 설정 (0) | 2022.08.02 |