みなさん、こんにちは。
今回は、EpicGamesが提供しているUnrealEngine4に関する技術的なことを書こうと思います。
ちなみに、UnrealEngine4は大手ゲーム会社でも開発に使用されている「ゲーム開発ソフト」です。
今回の記事のテーマは、「マウスクリック位置にメニューを表示する」です。
今回は、ブループリントを使って実現します!
まず、ウィジェットがこちら(適当です)↓
続いて、ブループリントがこちら↓(このブループリントはレベルブループリントに書いていますが、ウィジェットで制御するのが良いと思います!あと、ブランチ先は関数にしとく方が汎用性が上がると思いますが、とりあえずということで・・・)
このブループリントで実行すると、マウスの左ボタンをクリックするとクリックした場所にメニューが表示し、メニューが表示されている状態でメニュー以外の場所をクリックするとメニューが非表示になります。
流れはこんな感じ(↓)ちなみに、今回は変数として「メニューが表示されているか」を示すIsOpenedMenuと、「メニューウィジェット」を格納したMenuWidgetを作っています。
①マウス左ボタンイベントのPressedの時次のノードへ
②自分で追加したBool型変数「IsOpendMenu」の状態を判断
真なら③、偽なら④へ
③IsOpendMenuが真の時の処理
1)IsOpenedMenuを偽にする
2)「RemoveFromParent」を使用し、ウィジェットを非表示にする。
Targetにはメニューウィジェットを繋げる
④IsOpendMenuが偽の時の処理
1)IsOpenedMenuを真にする
2)「AddToViewPort」を使用し、ウィジェットを表示させる。
Targetにはメニューウィジェットを繋げる
3)「SetPosition in ViewPort」を使用し、座標をセットする。
Targetにはメニューウィジェット、Positionにはマウスの座標を繋げる
これで出来上がりです。 細かい説明をせず荒っぽい説明になっちゃいましたが、これでめでたくクリック位置にメニューが表示されるようになります。
UnrealEngine4を使ったことがない人からすると「なんのこっちゃ」という記事になっちゃいました。
ちなみに、このUnrealEngine4は、次回3/19のオープンキャンパスの体験授業で触れる予定ですので、ちょっとでも気になった方は是非お気軽にご参加ください。