Godotの_unhandled_input関数ってなに?

作成日
更新日

#ChatGPTより引用

概要

_unhandled_input(event) は、Godot エンジンで「他のノードによって処理されなかった入力イベント」を処理するための特別な関数である。主にグローバルなUI制御(ポーズ画面など)に使われる。

詳細解説

  • Godot の入力イベントは「ツリー構造を下から上へ伝播」していく。
    • 最初に子ノードに送られ、処理されないと親ノードに伝わる。
  • _unhandled_input(event) は、「どのノードにも処理されなかった入力」が届く。
  • この関数を使うことで、ゲーム全体のどこにも結びついていない入力(例えばポーズキー)を拾うことができる。

使用例

func _unhandled_input(event):
    if event.is_action_pressed("pause"):
        add_child(PauseMenuScene.instantiate())
        get_tree().root.set_input_as_handled()
  • "pause" アクションが押されたら、ポーズメニューを表示。
  • set_input_as_handled() により、入力がそれ以上ツリーを伝播しないように制御。

注意点

  • _unhandled_inputUI 系のイベントやメニュー制御に最適。
  • set_input_as_handled() を忘れると、他のノードでも入力イベントが発火してしまう可能性がある。
  • _input(event) との違いに注意:
    • _input は「すべての入力イベント」を受け取る。
    • _unhandled_input は「まだ処理されていない入力」だけを受け取る。
サイトアイコン
公開日
更新日