実装したインターフェース関数を呼び出せない。

上記記述で実行すると
クラス IIF_Interact にメンバー Execute_FocusOn がありません
というエラーが発生します。

その理由は、呼び出している関数がUFUNCTIONではないからです
Execute_*** は、関数がUFUNCTIONであるときに、UHTにより自動生成される BP用の 関数です

C++実装のみであれば、通常のC++関数として呼びましょう
UFUNCTIONであるときも、事前にCastするのであれば Execute_*** の方を使う必要はないです

実装クラス内で実装時の関数名をFocusOn_Implementation()にしてみた。
その場合、基底クラスにそんな関数ないよと怒られました。

こちらも同様に、UFUNCTIONかつBlueprintNativeEventである必要があります
その場合も***_Implementation の方を直接呼んではいけません
それはBPによるOverride実装を無視することになります

1 Like