Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

オーバーライド可能な関数

Godot の Node クラスは、フレームごと、またはシーンツリーに入ったときなどの特定のイベントごとにノードを更新するためにオーバーライドできる仮想関数を提供します。

このドキュメントでは、最も頻繁に使用するものを紹介します。

参考

内部では、これらの関数はGodotの低レベルの通知システムに依存しています。詳しくは :ref:`doc_godot_notifications`を参照してください。

Two functions allow you to initialize and get nodes besides the class's constructor: _enter_tree() and _ready().

ノードは、シーンツリーに入るとアクティブになり、エンジンはその ``_enter_tree()``メソッドを呼び出します。そのノードの子は、まだアクティブなシーンの一部ではないことがあります。また、シーンツリーへのノードの削除と再追加が可能なため、この関数はノードのライフタイムを通して複数回呼び出される可能性があります。

Most of the time, you'll use _ready() instead. This function is called only once in a node's lifetime, after _enter_tree(). _ready() ensures that all children have entered the scene tree first, so you can safely call get_node() on them.

参考

ノードの参照取得について詳しくは、Using VisualShaders を参照してください。

Another related callback is _exit_tree(), which the engine calls every time a node is about to exit the scene tree. This can be when you call Node.remove_child() or when you free a node.

# Called every time the node enters the scene tree.
func _enter_tree():
    pass

# Called when both the node and its children have entered the scene tree.
func _ready():
    pass

# Called when the node is about to leave the scene tree, after all its
# children received the _exit_tree() callback.
func _exit_tree():
    pass

仮想関数 _process()_physics_process() はそれぞれノードを、フレーム毎、物理フレーム毎に更新することができます。詳しくは、専用のドキュメント : アイドル処理と物理処理 を参照してください。

# Called every frame.
func _process(delta):
    pass

# Called every physics frame.
func _physics_process(delta):
    pass

Two more essential built-in node callback functions are Node._unhandled_input() and Node._input(), which you use to both receive and process individual input events. The _unhandled_input() method receives every key press, mouse click, etc. that have not been handled already in an _input() callback or in a user interface component. You want to use it for gameplay input in general. The _input() callback allows you to intercept and process input events before _unhandled_input() gets them.

Godotにおける入力の詳細については、 Input section を参照してください。

# Called once for every event.
func _unhandled_input(event):
    pass

# Called once for every event before _unhandled_input(), allowing you to
# consume some events.
func _input(event):
    pass

There are some more overridable functions like Node._get_configuration_warnings(). Specialized node types provide more callbacks like CanvasItem._draw() to draw programmatically or Control._gui_input() to handle clicks and input on UI elements.