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