3Dウィジェットで作ったボタンを押す
「3Dウィジェットの表示はいいとして、これって押したり出来るのか? というあたりを今日は調査」
妹「押せるの?」
「押せる」
「まず最初に思いついたのが、Widgetコンポーネントの中に入ってるウィジェットをGETしてきて、普通にSetInpoutModeで設定すれば動くのでは? という考え。これで別にエラーは出ないんだけど、反応もしなかったから駄目だった。仮に動いたとしても、操作対象が1つしかないのは困る」
「それでこの記事とかを見ながら色々試したんだけど、どうもWidgetInteractionというコンポーネントを使うらしい。Widgetの方はそのままで、それとは別に追加する」
「今回はマウスでクリックできるようにしたかったから、普通にマウスをクリックすると、WidgetInteraction的にもマウスをクリックしたっぽい動作をさせるようにした。当然マウスカーソルは表示させる。InteractionDistanceでどの距離のウィジェットまで反応するのか設定」
「ちゃんとクリックできた。カーソルが上にある時にボタンの絵が変わる、ホバーの動きもする」
「MouseじゃなくてCenterScreenにした場合は、画面中央にマウスカーソルがあるイメージで操作出来る。マウスカーソル非表示+マウスがカメラ回転に割り当てられてるゲームでよくみかける方法」
妹「そのWidgetInteractionというコンポーネントはどこにくっつけるの?」
「多分どこでもいいんだと思う。レベル上に存在さえしていえれば。さっきみたいにマウスとか画面中央にする場合の話だけど。他の入力関係のブループリントがあるクラスにくっつけておけばわかりやすい」
「この公式の例みたいに、武器の向いている先のウィジェットを操作とかだと、その武器にくっつけて、座標や回転をあわせる必要がありそう。VRでコントローラーを使って指し示すみたいな場合もこれ」