【Godot4入門】awaitで、シグナルをもっと便利に!!【signal】

シグナル発火を待ちたい!!

↓の記事で、シグナルが便利であることを紹介しています。

シグナルを使用していると、

「シグナル発火まで、処理を待ちたい。」

という場面に出くわすことが多々あります。

その時に、使用するのが、”await”です。

awaitで、シグナル発火を待つ

こちらのソースコードを見てください。

func _ready() -> void:
	# 10秒後にシグナルを発火
	await get_tree().create_timer(10.0).timeout
	print("Time Out!!")

このプログラムでは、起動後にTimerノードが、”timeout”シグナルを10秒後に発火するのを待った後に、

”print("Time Out!!")”

を実行しています。

では、↓のように、”await”を書かないでいると、どのようになるでしょうか?

func _ready() -> void:
	# timeoutを待たずに、すぐにシグナルを発火
	get_tree().create_timer(10.0).timeout
	print("Time Out!!")

これだと、10秒待つことなく、”Time Out!!”と表示されるようになります。

もちろん、”await”は、Timerノードだけでなく、すべてのシグナルに対して、使用できますので、ボタンが押されるまで待ってみたり、自分で作ったシグナルが発火するまで待つことができるのです。

このように、awaitは、プログラムの流れを制御するうえで、非常に便利な機能です。

ぜひ、活用してみてください。

コメント

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