アクターコンポーネントでEnhanced InputのGet関数を使用できますか?

アクターコンポーネントでEnhancedInputを使用したいのですが、イベントは発生するものGet関数を取得する方の関数がうまく動きません。
何か必要な操作等ありますでしょうか?ご存じのかたがいらっしゃいましたら、ご教示いただけますと幸いです。

以下の処理をアクターコンポーネントに置くと、"true false"と表示されてしまいます。
一方で、アクターに置けば"true true"が表示されており、アクターコンポーネントの場合にうまく値を取得できていません。

※上記は確認のため、イベントもGet関数もIA_Jumpを使用しています。本来は方向入力等と簡単に組み合わせるためにGet関数を使用したいです。

UE5.5、windows10の環境です。

結論から言うと、使用できません

内部的な話をすると、このノードは UEnhancedInputLibrary::GetBoundActionValue(AActor* Actor, const UInputAction* Action) という関数を展開するノードです

この関数から分かる通り、Actorを足がかりにEnhancedInputComponentを探し、入力情報を取得しています
このActor情報の取得元が Self であるため、Self = Componentである場合はうまく動かない、という結果になります

なおこの関数はBPから呼び出すことはできないため、必要あらばC++で上記の関数を呼び出せる関数を作成するとよいでしょう

1 Like

ご回答いただきありがとうございます!
アクターコンポーネントでGet関数は使用できないとのことでわかりました。

また、詳細なご説明もありがとうございます。
私はUE C++知識が乏しく実践は難しいですが、C++でコンポーネントのOwnerActorを辿って呼ぶなどすれば、コンポーネントでも似たことができるのかなと理解しました。
解決とさせていただきます。