画面タッチ用のアクションボタンを作成する
今回は、画面タッチ用のアクションボタンを作成する方法を備忘録にします。
※作業環境:UEバージョン5.3.2
備忘録
モバイルゲーム制作では、画面タッチで機能するボタンが必要になります。
攻撃やジャンプなどのアクション処理は既に組み終わっていることとし、
今回はボタンを追加して、ボタンをタッチしたらアクションが実行される方法をまとめます。
ボタンを作成して画面に表示させるためのウィジェットを作成します。
こんな感じでUIを作成しました。
UIとは、画面上に表示するプレイヤーの体力や操作ボタンなどのことです。
今回、ウィジェットブループリントの操作方法の説明は省略します。
ボタンとして機能するように「Botton」を配置します。
ボタンに画像を貼りつけて、装飾していきます。
「ボタン」を選択している状態で詳細を確認します。
「Details」の「Events」の「On Released」の横の「+」ボタンをクリックします。
既にOn Releasedを選択していると矢印マークになります。(上の写真ように)
この「Events」は、処理するタイミングで使い分けることが出来ます。
「On Released」を押すと、イベントグラフの画面に移ります。
それではイベントグラフにノードを組んでいきます。
まずは初期設定です。
「Event Construct」ノードが、初めから配置されていると思うので繋げていきます。
「Event Construct」は、初めの一回だけ処理されるイベントです。
「Get Player Character」ノードでコントロールしているプレイヤー情報を取得します。
「Cast To ~」ノードに繋げて「BP_Player」をキャストします。
BP_Playerにアクションの処理を組んでいるので、キャストして情報確認できるようにする感じです。
キャストした情報を変数にしてセットしておきます。
次にBP_Playerファイルを開きます。(アクション処理を組んでいるブループリント)
プレイヤーのアクションを組んでいる場所に「カスタムイベント」ノードを作成します。
これはボタンを押したときに処理が開始されるイベントになります。
上の写真では「AttackProxy」という名前にしています。(Proxyは代理みたいな意味です)
ウィジェットブループリントに戻ります。
作成した「On Released」ノードに、ボタンを押したときの処理を組んでいきます。
Getノード(Get Valid)でデータが見つかれば処理を進め、なければ処理をしないようにします。
これにより、プレイヤーが存在しない時にボタンを押した場合の、ゲームクラッシュする可能性を無くします。
先ほどBP_Playerファイルで作成したカスタムイベントを呼び出します。
これでプレイヤーが存在する場合、タッチ機能が反応して、アクションを実行するようになります。
他の記事を探す
他の記事も気になる方は、以下の記事の目次を確認ください。