[GODOT4]ボタンクリック(down)、離す(up)のシグナル(リスナー)を動的に実装する

GODOT4
この記事は約2分で読めます。

Buttonノードをクリック(button_down)した場合と、

クリックを離した時(button_up)を動的に実装する方法です。
(エディタから「ノード」「シグナル」から接続するのではなくコードで書く)

比較的よく使うと思うので、基本的な書き方を覚えておくと
後々便利でしょう。

self.button_down.connect(self.onMyButtonDown)

func onMyButtonDown():
    print("ButtonDown")

selfはボタンにアタッチしたGDScriptで行う場合、「自身」を示すものです。
Pythonではthisにあたるものです。
self.onMyButtonDownは自身に定義・記述している、関数onMyButtonDownをコールする、
ということになります。
関数名は任意なので、onBtnDownなど縮めても良いですし、関数名のルール範囲なら
自由に決めて良いでしょう。

上記のコードをButtonノードに割り当てて実行すると、
クリック(マウスボタン(左)を押した時に)
printデバッグで「ButtonDown」と表示されます。

button_upも同様です。

self.button_up.connect(self.onMyButtonUp)

func onMyButtonUp():
    print("ButtonUp")

上記のコードをButtonノードに割り当てて実行すると、
クリック(マウスボタン(左)を離した時に)
printデバッグで「ButtonUp」と表示されます。

self.button_up.connect(self.onMyButtonUp)のbutton_upは
エディタから「ノード」「シグナル」を開くと表示されるシグナルの一覧に
あるシグナル名なので、
動的に実装したい場合は「ノード」「シグナル」に記載しているシグナル名(引数含む)を
記述すればシグナルを実装できます。

また、引数をもつシグナルの場合は引数を与えてあげます。
任意を引数を使う場合は

self.button_down.connect(self.onBtnDown.bind("hogehoge"))

func onBtnDown(str):
    print(str)

上記のように記述すれば、任意の引数を割り当てることが出来ます。

コメント

タイトルとURLをコピーしました