WorkToolSmith仕事や生活に役立ついろいろな商品をおもしろおかしく体験レビュー!当サイトの記事にはアフィリエイト広告が含まれます。2023.11.20完全無料の高機能ゲームエンジン「Godot」の解説を書いています。当サイトのGodot記事一覧はこちら今日はGodotで一時的なスリープ(ウェイト)を実装する方法を探ります。いくつかの方法がありますが、最も簡単なのはcreate_timerを使う方法です。このページで紹介しているyieldを使った処理待ちは、4.0で廃止になりました。4.0からは「await」を使用します。構文をコメントいただきましたので最下部に追加しました。実装Godotのシーンが持つメインタイマー(スレッド)に、create_timer関数があります。これを使うと、必要な箇所にワンライナーで書くことができ、一番簡単です。シグナルを発生します。シグナルの発生をyieldで待ち受けます。上記の例は1秒間ぴったり止まります。Timerでの実装Timerノードで実装することも可能です。Timerでの実装は、Timerの生成と廃棄が必ず必要になり、多数のノードで実行するとオーバーヘッドもかなりのものになります。いって1つのタイマーを多数のオブジェクトで共有というのも、非常にめんどうでまともな制御はできそうもありません。自分の配下の一部ノードだけスリープしたいなど、特殊な状況のみに使うテクニックになると思います。*/この一連のタイマー処理を1つの関数にしたいと考えるかもしれませんが、Godotの場合funcは並行処理されてしまうため、一瞬で終了(通り過ぎて)してしまいます。通り過ぎたあと、Timerの処理だけが発生します。シーンのスレッドはまったく止まらないわけです。そのため、必ずコードの途中にそのまま必要があります。行数も多いしオーバーヘッドも多いので、通常はget_tree().create_timer()のほうがいいでしょう。4.0での書き方4.0用の書き方を通りすがりのGODOT初心者さんからコメントいただきました!参考にしてください。コメントありがとうございました!本文にも追加しました。コメントをどうぞメールアドレスが公開されることはありません。アベル1976年生まれ。