CharacterBody2Dのオブジェクトをクリックする
2024/09/22
Godot Engine version 4.2.2.stable
作成者:ダイギイン(アクシオン管理人)

はじめに

3択カードを選ぶようなとき大抵、カードにクリック判定を付けます。
"Control"の"TextureButton"を使うと簡単そうですが、
アニメーションなどいろいろ動かしたいときには少々不便です。
今回は"CharacterBody2D"のオブジェクトをカードみたいにして、
クリック判定を付けたいと思います。


目次


1.カードオブジェクトの準備

新規シーンに、"CharacterBody2D"ノードを配置しその子に"Sprite2D"、"CollisionShape2D"ノードを配置します。
(fig.1)


fig.1 カードオブジェクトの準備
※クリックで拡大

次に、"Sprite2D"にカードの画像を設定します。(fig.2)

fig.2 カードの画像を設定する
※クリックで拡大

次に、"CollisionShape2D"の"Shape"に"RectangleShape2D"を設定し、判定の位置とサイズを調節します。
これをクリックの判定領域とします。
(fig.3)

fig.3 カードのクリック判定領域の設定
※クリックで拡大


シグナルの接続とスクリプト

"CharacterBody2D"に新規スクリプト"sample_script.gd"をアタッチします。
そして、"CharacterBody2D"のシグナル"input_event"を自身に接続します。(fig.4)


fig.4 シグナルの接続

"sample_script.gd"にスクリプトを記述します。(fig.5)

fig.5 サンプルスクリプト


"Pickable"の有効化

<重要>
最後に"CharacterBody2D"のインスペクターから"Input"->"Pickable"にチェックを付けます。
(fig.6)


fig.6 "Pickable"の有効化

以上で準備が整いました。


動作確認

シーンを実行してみます。
左上に表示されたカードの一部をクリックしてみます。
出力ウィンドウにメッセージが表示されれば成功です。


fig.7 動作確認
※クリックで拡大


おわりに

今回はスクリプト部分をマイクロソフトの生成AIに質問した回答を基に作成しました。

"Pickable"の有効化に気づくのが遅くなりました。

今回は以上となります。
最後までお読みいただきありがとうございました。

ページトップ