rflab
(rflab)
1
アクターコンポーネントで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
rflab
(rflab)
3
ご回答いただきありがとうございます!
アクターコンポーネントでGet関数は使用できないとのことでわかりました。
また、詳細なご説明もありがとうございます。
私はUE C++知識が乏しく実践は難しいですが、C++でコンポーネントのOwnerActorを辿って呼ぶなどすれば、コンポーネントでも似たことができるのかなと理解しました。
解決とさせていただきます。