Menu
CoddyTech

別のノードのシグナル

CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 9/27。

スクリプトは別のノードのシグナルを受け取ることもできます。$でノードを取得し、そのシグナルに接続します。

$Switch.body_entered.connect(_on_switch_body_entered)

これは、Switchがbody_enteredを送信したときに、_on_switch_body_enteredを呼び出すという意味です。この関数はこのスクリプト内にあるので、$Lightのように、このスクリプトのノードを使えます。

ゲームでは、このように接続することがよくあります。1つのメインスクリプトでスイッチ、ライト、ドアを接続し、それぞれをシンプルに保ちます。Godotでは、このような関数の名前を_on_、ノード名、シグナル名の順にします。

challenge icon

チャレンジ

簡単

スイッチを押すとライトが点灯するようにしましょう。

  1. Main の _ready() で、$Switch.body_entered から始まる行を書きます。
  2. _on_switch_body_entered に接続します。

「プレイ」を押して、緑色のスイッチを踏みます。ライトが点灯します。その後、「確認」を押します。

自分で試してみよう

extends Node2D

func _ready():
	pass

func _on_switch_body_entered(body):
	$Light.visible = true

シグナルと衝突のすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド