Тема: Вопросы
Показать сообщение отдельно
Старый 31.03.2022, 07:38   #55
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Вопросы

Загружаю сцену:
Создаю переменную Scene
var Scene
Кнопка 1 Загружаю-подключаю
Scene = load("res://Level_1.tscn")
var scene = Scene.instance()
var spat_node = get_node("Spatial")
spat_node.add_child(scene)
Кнопка 2 Удаляю-очищаю
var scene_del = get_node("Node//Level_1")
scene_del.queue_free()
Но я хочу под одной переменной Scene, загружать разные уровни .tscn
И сразу возникает вопрос, как правильно очистить Scene?

В справке рекомендуется queue_free(), ей я могу удалить только инстанс загруженной сцены.

Если я копирую код выше, но меняю загрузку на Level_2.tscn
И начинаю по очереди загружать-выгружать разные сцены.
То в консоли видно что с каждой подобной загрузкой, увеличивается PackedScene (см. скриншот).
Получается в памяти продолжают висеть объекты. Что логично, я ведь ничего не делаю с Scene.

Вопрос правильно удалять ресурсы? Как полностью очистить Scene что бы загрузить под ней новую?
Какой подход вернее, 1 переменная для загрузки всех уровней, или для каждой своя переменная?



godot_log.webp
(Offline)
 
Ответить с цитированием