妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

OnKeyDownとOnPreviewKeyDownの違い

妹「結局のところOnPreviewKeyDownのプレビューというのはなんだったの? べつにOnKeyDownでも良かったの?」

f:id:una_unagi:20151125175922p:plain

「OnKeyDownはそのウィジェットにフォーカスがある時だけ動くんだけど、OnPreviewKeyDownだとそれが子ウィジェットにフォーカスがあっても動く、という違いがあるらしい。実際問題として、昨日まで作ってたキー操作は、OnKeyDownに書き換えると動かなくなる」

妹「なんで動かないんだろ? フォーカスはあるよね? このウィジェットのボタンに」

「ボタンにあるから駄目なんだよ。フォーカスはこのウィジェット全体……つまりルートのCanvasPanelにないといけなくて、その下のButtonにあるということは、子ウィジェットにフォーカスがあるということになる」

妹「じゃあやっぱりOnPreviewKeyDownがいいのか。OnKeyDownを使った方がいいのはどんな場合?」

「普通の用途で考えると、OnPreviewKeyDownでだいたい良さそうな気がする。ただ他の人が使ったウィジェットを組み込んだりする時に、そのウィジェットでもOnKeyDownを使ってる場合は上手く調整する必要がありそう」