Найти в Дзене
Моя игра на Godot Engine

Godot оптимизация: скрыть объекты за камерой

Добрый день! В этой статье я расскажу как реализовать скрытие объектов за кадром. Это необходимо если у вас в игре имеются множество уровней, которые нужно скрыть или вовсе удалить чтобы не нагружать компьютер игрока. В Godot engine это можно реализовать с помощью узла VisibleOnScreenNotifier2D Вставьте этот объект в вашу сцену. В дереве нодов я поместил этот объект не дочерним объектом который нужно скрыть, а рядом с ним. Нод с названием Core_base у меня нод, который мне нужно скрывать, а Core_base_VisibleOnScreenNotifier - нод, который я добавил и который отслеживает видит ли его камера или нет. У нода VisibleOnScreenNotifier можно настроить регион который будет отслеживать камеру, эта область будет закрашена розовым. Настройте эту область так, чтобы он полностью покрывал уровень, который вы хотите скрывать. У узла VisibleOnScreenNotifier имеются сигналы: Прикрепляем эти сигналы например в скрип объекта который нужно скрыть и настроим его Вместо того чтобы просто переключать отображе

Добрый день! В этой статье я расскажу как реализовать скрытие объектов за кадром. Это необходимо если у вас в игре имеются множество уровней, которые нужно скрыть или вовсе удалить чтобы не нагружать компьютер игрока. В Godot engine это можно реализовать с помощью узла VisibleOnScreenNotifier2D

Узел в меню создания нодов
Узел в меню создания нодов

Вставьте этот объект в вашу сцену. В дереве нодов я поместил этот объект не дочерним объектом который нужно скрыть, а рядом с ним.

Дерево сцены
Дерево сцены

Нод с названием Core_base у меня нод, который мне нужно скрывать, а Core_base_VisibleOnScreenNotifier - нод, который я добавил и который отслеживает видит ли его камера или нет.

У нода VisibleOnScreenNotifier можно настроить регион который будет отслеживать камеру, эта область будет закрашена розовым.

-4

Настройте эту область так, чтобы он полностью покрывал уровень, который вы хотите скрывать.

-5

У узла VisibleOnScreenNotifier имеются сигналы:

  1. screen_entered() - вызывается когда экран ВХОДИТ в область
  2. screen_exited() - вызывается когда экран ВЫХОДИТ из области

Прикрепляем эти сигналы например в скрип объекта который нужно скрыть и настроим его

-6

Вместо того чтобы просто переключать отображение можете удалять объект из сцены, а потом заново создавать после захода экрана в область. Я например просто переключаю отображение. Главное не добавляйте узел VisibleOnScreenNotifier дочерним для объекта который вы хотите скрывать, ведь если объект скроет дочерний VisibleOnScreenNotifier то объект при вхождении экрана не сможет заново его отобразить.

Узел является полезным объектом если вы не хотите сильно заморачиваться над тем как скрывать большие уровни за экраном игрока.

Спасибо что прочли мою статью до конца, можете посмотреть другие мои статьи, где я выкладываю опыт по созданию моей игры на движке Godot.