Menu
CoddyTech

값이 있는 시그널

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

신호는 body_entered가 본체를 전달하는 것처럼 값을 전달할 수 있습니다. 신호를 선언할 때 대괄호 안에 값을 나열하세요:

signal collected(points)

emit()에 같은 순서로 값을 전달하세요:

collected.emit(points)

collected에 연결된 모든 함수는 그 값을 받습니다. 여기서는 Main의 스크립트가 점수를 더하고 출력합니다:

func _on_gem_collected(points):
	score += points
	print("Score: ", score)

두 보석 모두 같은 스크립트를 실행합니다. 작은 보석의 points는 10이고 큰 보석의 값은 25이며, 각 노드에서 Inspector를 통해 설정합니다. 그러므로 직접 입력한 숫자가 아니라 points를 보내세요.

challenge icon

챌린지

쉬움

각 보석이 main.gd에 보석의 점수를 알리도록 하세요.

  1. gem.gd의 맨 위에 signal collected(points)를 선언하세요.
  2. _on_body_entered의 끝에서 보석의 points를 사용해 신호를 보내세요.

두 보석 위를 지나가세요. 콘솔에 Score: 10이 표시된 다음 Score: 35가 표시되어야 합니다.

직접 해보기

extends Area2D

@export var points = 10

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	if not visible:
		return
	visible = false
quiz icon실력 점검

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

시그널과 충돌의 모든 레슨

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