Godot. Переменная получает 'null' при повторном запуске игры(f6). При первом запуске все работает корректно

Читал документацию по godot и повторял оттуда примеры. И возникла сложность на этапе изучения использования сигналов(https://docs.godotengine.org/ru/4.x/getting_started/step_by_step/signals.html). Скрипт писал на GDScript. При запуске игры дебагер мне показывает ошибку "invalid get index 'timeout' (on base:'null instance')". Хотя все сделано абсолютно идентично примеру из документации, возникает такая сложность. И что самое странное, когда я захожу в другой проект, потом снова перехожу в этот и включаю игру, все работает, спрайт исчезает каждую секунду. Но когда я не выхожу из проекта и перезапускаю его, вылезает такая ошибка. Подскажите с чем связано? Не хочется идти дальше не разобравшись). Скрин сцен и файлов прилагаювведите сюда описание изображения

extends Sprite2D

var speed = 400
var angular_speed = PI


func _ready():
    var timer = get_node("Timer")
    timer.timeout.connect(_on_timer_timeout)


func _process(delta):
    rotation += angular_speed * delta
    var velocity = Vector2.UP.rotated(rotation) * speed
    position += velocity * delta


func _on_button_pressed():
    set_process(not is_processing())


func _on_timer_timeout():
    visible = not visible

Ответы (1 шт):

Автор решения: Donovan

Нода Sprite2D создан как отдельная сцена, нода Timer находится в Node2D, при запуске Node2D - код находит Timer, но если запустить Sprite2D как отдельную сцену код не находит Timer. Есть 2 решения:

  1. Переместить Timer непосредственно на сцену Sprite2D,
  2. Не делать из ветки Sprite2D отдельную сцену.

Cцена "Sprite2D"

→ Ссылка