環境
Windows10
UE5.1
やりたい事
画像の様な事をC++で実装したいです。
問題
AActor* hitActor = HitResult.GetActor();
if (Cast<IIF_Interact>(hitActor))
{
Cast<IIF_Interact>(hitActor)->Execute_FocusOn(hitActor);
}
上記記述で実行すると
クラス IIF_Interact にメンバー Execute_FocusOn がありません
というエラーが発生します。
他ファイル
インターフェース
IF_Interact.h
UINTERFACE(MinimalAPI)
class UIF_Interact : public UInterface
{
GENERATED_BODY()
};
/**
*
*/
class CUSTOMGAME_API IIF_Interact
{
GENERATED_BODY()
// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
virtual void FocusOn();
};
IF_Interact.cpp
// Add default functionality here for any IIF_Interact functions that are not pure virtual.
void IIF_Interact::FocusOn() {}
実装クラス
AC_CraftingTable.h
UCLASS()
class CUSTOMGAME_API AAC_CraftingTable : public AA_BaseConstruct, public IIF_Interact
{
GENERATED_BODY()
public:
virtual void FocusOn() override;
};
AC_CraftingTable.cpp
// Add default functionality here for any IIF_Interact functions that are not pure virtual.
void IIF_Interact::FocusOn() {}
試した事
実装クラス内で実装時の関数名をFocusOn_Implementation()にしてみた。
その場合、基底クラスにそんな関数ないよと怒られました。
参考にしたサイト