別のノードのシグナル
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 9/27。
スクリプトは別のノードのシグナルを受け取ることもできます。$でノードを取得し、そのシグナルを接続します。
$Switch.body_entered.connect(_on_switch_body_entered)これは、Switchがbody_enteredを送信したときに、_on_switch_body_enteredを呼び出すという意味です。この関数はこのスクリプト内にあるので、$Lightのように、このスクリプトのノードを使えます。
ゲームでは、このように接続することがよくあります。1つのメインスクリプトがスイッチ、ライト、ドアを接続し、それぞれのノードはシンプルなままにします。Godotでは、このような関数の名前は_on_、ノード名、シグナル名の順になります。
チャレンジ
簡単Mainにはライトを点灯させる関数がありますが、何もそれを呼び出していません。Mainの_ready()で、Switchのbody_enteredを_on_switch_body_enteredに接続します。その後、緑色のスイッチを踏んでください。
自分で試してみよう
extends Node2D
func _ready():
pass
func _on_switch_body_entered(body):
$Light.visible = true
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド