動作環境
- Windows 10 Pro 21H1
- Godot V3.3.3
概要
Godotで
- ボタンを押す
- 効果音の再生
- シーンの切り替え
という動作をさせたいとき、シーンの切り替えが早すぎて効果音がほとんど再生されない場合があります。
どうやって再生終了を待つか、という問題の対処方法です。
yieldを使う
ループで待とう、とか効果音の長さを測っておいてタイマーを設定しよう、などというアイデアが思いつきますが、どちらもタイミングは不安定でメンテナンス性に欠けます。
対処はとても簡単yield
を使えば解決します。
$AudioStreamButton.play()
yield($AudioStreamButton, "finished")
get_tree().change_scene("res://SceneTitle.tscn")
オーディオストリームのfinished
シグナルに対しyield
を仕掛けるだけ。
たったこれだけで効果音の再生を待ってからシーンが切り替わります。