Unreal Engine/C++
[Unreal Engine C++] C++에서 인터페이스 변수 사용하기
한돌이
2024. 1. 12. 15:51
다음과 같이 선언하면 C++에서 인터페이스 변수를 사용할 수 있다.
private:
/** Damageable 인터페이스를 가지고 있는 액터입니다. */
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "BaseHealthBar|DamageableActor", meta = (AllowPrivateAccess = "true"))
TScriptInterface<IInterface_PRDamageable> DamageableActor;
인터페이스의 함수를 사용하는 방법은 다음과 같다.
float UPRBaseHealthBarWidget::GetHealthBarPercent() const
{
if(HealthBar && IsImplementsDamageableInterface(DamageableActor.GetObject()))
{
const float CurrentHealth = DamageableActor->Execute_GetCurrentHealth(DamageableActor.GetObject());
const float MaxHealth = DamageableActor->Execute_GetMaxHealth(DamageableActor.GetObject());
return CurrentHealth / MaxHealth;
}
return 0.0f;
}
인터페이스에서 사용하려는 함수 앞에 'Execute_'를 추가하고 첫 번째 인자로 인터페이스의 Object를 추가하면 된다. 함수에 인자 값이 있다면 인터페이스의 Object의 다음부터 넣으면 된다.
블루프린트에서는 다음과 같이 사용하면 된다.