extends Area3D var game_manager: Node3D = null var red_cube_delivered := false func _ready(): # GameManager finden game_manager = get_tree().get_first_node_in_group("game_manager") if not game_manager: game_manager = get_node_or_null("/root/Main/GameManager") # Signal verbinden body_entered.connect(_on_body_entered) func _on_body_entered(body: Node3D): # Prüfen ob es der rote Würfel ist if body.name == "RedCube" or body.is_in_group("red_cube"): if not red_cube_delivered: red_cube_delivered = true print("Roter Würfel abgeliefert!") # GameManager benachrichtigen if game_manager and game_manager.has_method("on_red_cube_delivered"): game_manager.on_red_cube_delivered() # Visuelles Feedback show_success_effect() func show_success_effect(): # Zielzone aufleuchten lassen var mesh_instance = get_node_or_null("MeshInstance3D") if not mesh_instance: return var material = mesh_instance.get_active_material(0) as StandardMaterial3D if not material: return # Grün aufleuchten var tween = create_tween() tween.tween_property(material, "albedo_color", Color.GREEN, 0.3) tween.tween_property(material, "albedo_color", Color(0, 1, 0, 0.5), 0.3)