Menu
CoddyTech

나만의 시그널

Coddy Godot 여정의 시그널과 충돌 섹션에 포함된 레슨. 27개 중 7번째.

노드에 자신만의 시그널을 지정할 수 있습니다. 스크립트 상단에 다음과 같이 선언하세요. signal:

extends Area2D

signal hit

일이 발생했을 때 emit()으로 시그널을 보내세요.

func _on_body_entered(body):
	hit.emit()

이전 코드에서는 emit_signal("hit")을 사용할 수도 있습니다. 같은 기능을 합니다.

가시는 누군가 맞았다는 사실만 알립니다. 맞았을 때 어떤 일이 일어나는지는 이를 수신하는 코드에 달려 있습니다. 여기서는 Main의 스크립트가 hit을 수신합니다.

extends Node2D

# 스파이크에 hit 신호가 생기면 Main이 그 신호를 수신합니다.
func _ready():
	if $Spikes.has_signal("hit"):
		$Spikes.hit.connect(_on_spikes_hit)

func _on_spikes_hit():
	print("Ouch!")
	$Player.modulate = Color(1, 0.42, 0.42)

곧 이와 같은 수신기를 작성하게 됩니다. 이번 단원에서는 가시만 수정합니다.

challenge icon

챌린지

쉬움

가시에 신호를 선언하고 누군가 가시를 밟으면 신호를 보내세요:

  1. spikes.gd의 맨 위에 signal hit을 선언하세요.
  2. _on_body_entered에서 hit.emit()으로 신호를 보내세요.

가시 위로 걸어가세요. 콘솔에 Ouch!가 표시되고 캐릭터가 산호색으로 변합니다.

직접 해보기

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

시그널과 충돌의 모든 레슨

직접 연습해 보세요: Godot 플레이그라운드