값이 있는 시그널
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이며, 각 노드의 씬에서 설정합니다. 그러니 직접 입력한 숫자가 아니라 points를 전달하세요.
챌린지
쉬움각 보석이 main.gd에 보석의 점수를 알려 주도록 하세요.
gem.gd맨 위에signal collected(points)를 선언하세요._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
시그널과 충돌의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드