다음과 같이 선언하면 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의 다음부터 넣으면 된다.
블루프린트에서는 다음과 같이 사용하면 된다.
'Unreal Engine > C++' 카테고리의 다른 글
[Unreal Engine C++] EnhancedInput System으로 게임패드와 키보드 입력 장치 구분하기 (0) | 2024.04.09 |
---|---|
[Unreal Engine C++] EnhancedInputSystem의 입력 값 구하기 (1) | 2024.03.15 |
[Unreal Engine C++] Widget Animation Delegate (1) | 2024.01.09 |
[Unreal Engine 4 C++] TimeStop (시공단열/초산 회피) (0) | 2023.08.02 |
[Unreal Engine 4 C++] UObject에서 Tick함수 사용하는 법 (0) | 2023.07.10 |