값이 있는 시그널
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를 보내세요.
챌린지
쉬움각 보석이 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 플레이그라운드