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의 다음부터 넣으면 된다.

 블루프린트에서는 다음과 같이 사용하면 된다.

 

선언된 인터페이스 변수
인터페이스의 함수 호출