extends Control # Или CanvasLayer, смотря к какому узлу прикреплен скрипт # Точный глубокий поиск твоей кнопки внутри дерева сцены @onready var restart_button: Button = find_child("RestartButton", true, false) func _ready() -> void: # Принудительно зажигаем видимость всей панели в момент её спавна, # чтобы она железно отрисовалась поверх игры! visible = true # Освобождаем мышь для клика Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) # Подключаем клик по кнопке Начать заново if restart_button: restart_button.pressed.connect(_on_restart_button_pressed) print("[СЦЕНА СМЕРТИ] Кнопка RestartButton успешно инициализирована и ждет клика.") else: print("[СЦЕНА СМЕРТИ] ОШИБКА: Не удалось найти кнопку RestartButton в дереве узлов!") func _on_restart_button_pressed() -> void: print("[СЦЕНА СМЕРТИ] Клик зафиксирован! Сбрасываю кэш и перезапускаю карту уровня...") # Сбрасываем кэш здоровья в синглтоне переноса вещей обратно в 100 перед рестартом var gt = get_node_or_null("/root/GameTransfer") if gt and "saved_health" in gt: gt.saved_health = 100.0 # --- САМОЛИКВИДАЦИЯ ЭКРАНА СМЕРТИ ИЗ ГЛОБАЛЬНОЙ ПАМЯТИ --- # Прячем панель с экрана мгновенно, чтобы она не мозолила глаза при загрузке visible = false # Полностью и физически удаляем этот узел из корня игры, чтобы он исчез навсегда queue_free() # --------------------------------------------------------- # Перезапускаем текущую сцену уровня шутера get_tree().reload_current_scene()