LoginSignup
0
0

[Godot 4.x] Button の上に Container を使ってサブの Button を置く

Posted at

例として、ターン制ゲームの技選択画面を作ろうとしたときのことを考えます。
大抵の場合は各技の名前が書かれたボタンを並べると思います。
このとき、技のボタンの端っこなどにその技の詳しい解説を表示するボタン、あるいはもっと別の機能を持ったボタンを付けたい場合、この記事が役立ちます。

全体図

image.png

SubButton をクリックすると MainButton は反応せず、それ以外の場所("Title XXX" と表示されている箇所)をクリックすると MainButton が反応します。

ポイント

PanelContainer を使う

PanelContainer は数ある Container の一種で、子要素を自身の内側いっぱいに広げて配置します。
これに複数の子があった場合、重なりを無視してすべての子を広げます。

ちなみに、本来は任意のUI要素に枠を付けるために使われるようです。

mouse_filter を操作する

目的に合わせて Control.mouse_filter を変更します。
このプロパティの詳しい解説は [Godot 4.2] 3種のMouseFilterの挙動解説 #tips - Qiita に書いてあります。

今回は MainButtonSubButtonMOUSE_FILTER_STOP にして、それ以外を MOUSE_FILTER_IGNORE に設定しておきます。

参考文献

Godot EngineでContainerにButton機能を持たせる
PanelContainer — Godot Engine (4.x)の日本語のドキュメント
Control — Godot Engine (4.x)の日本語のドキュメント

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0