Обновление с Godot 4.3 на Godot 4.4
Для большинства игр и приложений сделанных на Godot 4.3, переход на 4.4 будет относительно безопасным. Эта страница нужна, для того, чтобы показать, на что обратить внимание при переходе вашего проекта.
Изменения ломающие обратную совместимость
Если вы переходите с 4.3 на 4.4, изменения нарушающие обратную совместимость перечисленные здесь могут затронуть вас. Изменения сгруппированы по областям/системам.
Эта статья показывает, где каждое изменение обратной совместимости влияет на GDScript и где изменение обратной совместимости C# бинарно совместимо или совместимо на уровне кода:
Binary compatible (Совместимость на уровне двоичных файлов) — Существующие двоичные файлы будут успешно загружены и выполнены без перекомпиляции, а поведение среды выполнения не изменится.
Совместимо на уровне кода - Исходный код будет успешно компилироваться без изменений при обновлении Godot.
Ядро
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
FileAccess (Доступ к файлам) |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
Метод |
✔️ |
❌ |
✔️ |
|
OS |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
❌ |
✔️ |
✔️ |
|
RegEx (Регулярное выражение) |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Semaphore (Семафор) |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
TranslationServer (Сервер переводов) |
||||
Метод |
✔️ |
✔️ |
✔️ |
Анотация экспорта
Предупреждение
Работа @export_file изменилась в Godot 4.4. При назначении нового значения в Инспекторе путь теперь сохраняется и возвращается как ссылка uid:// вместо традиционного пути res:// (GH-97912). Это критическое изменение, которое может вызвать проблемы, если вы ожидаете пути на основе res:// в скриптах или serialized (сериализованных) файлах.
Например, экспортированные массивы файлов теперь могут содержать смесь путей uid:// и res://, особенно если они были частично отредактированы в Инспекторе.
В версии 4.4 единственный способ сохранить формат res:// — это ручное редактирование файлов .tscn или .tres в текстовом редакторе. Начиная с Godot 4.5, новая аннотация @export_file_path позволяет явно сохранить старое поведение и экспортировать необработанные пути res://.
GUI узлы
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
RichTextLabel |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
GraphEdit |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Сигнал |
❌ |
❌ |
❌ |
Физика
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
SoftBody3D (Мягкое тело 3D) |
||||
Метод |
✔️ |
✔️ |
✔️ |
Отрисовка
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
CPUParticles2D (CPU Частицы 2D) |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
CPUParticles3D )CPU Частицы 3D ( |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
GPUParticles2D (GPU Частицы 2D) |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
GPUParticles3D (GPU Частицы 3d) |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
RenderingDevice |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
❌ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
RenderingServer |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Shader (Шейдер) |
||||
Метод |
✔️ |
❌ |
❌ |
|
Метод |
✔️ |
❌ |
✔️ |
|
VisualShaderNodeCubemap (Кубическая карта узла визуального шейдера) |
||||
Свойство |
✔️ |
❌ |
❌ |
|
VisualShaderNodeTexture2DArray (2D-массив текстур узла визуального шейдера) |
||||
Свойство |
✔️ |
❌ |
❌ |
Примечание
В C# перечисление RenderingDevice.StorageBufferUsage нарушает совместимость из-за способа, которым генератор привязок определяет префикс перечисления. В GH-100062 были добавлены новые члены перечисления, что привело к переименованию членов перечисления.
Плагины редактора
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
EditorInterface |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
EditorSceneFormatImporter (Импортер форматов сцен редактора) |
||||
Метод |
❌ |
❌ |
❌ |
|
EditorTranslationParserPlugin (Плагин парсера перевода редактора) |
||||
Метод |
❌ |
❌ |
❌ |
Примечание
Метод _get_import_flags никогда не использовался движком. Он был удалён, несмотря на нарушение совместимости, поскольку пользователи не могли полагаться на него из-за того, что это влияло на поведение движка.
Изменения в поведении
Ядро
Примечание
Ресурс Curve теперь принудительно устанавливает свой диапазон значений, поэтому min_value и max_value необходимо изменить, если какая-либо из точек выходит за пределы диапазона по умолчанию [0, 1].
Отрисовка
Примечание
Тип входных данных узла шейдера VisualShaderNodeVec4Constant изменён на Vector4. Пользователям необходимо пересоздать значения в своих константах.
CSG
Примечание
Реализация CSG теперь использует библиотеку Manifold Эммета Лалиша (GH-94321). Новая реализация лучше соответствует определениям многообразий и исправляет ряд ошибок и проблем со стабильностью. В результате этого неманифолдные сетки больше не поддерживаются. Для рендеринга неманифолдной геометрии, такой как четырёхугольники или плоскости, можно использовать MeshInstance3D.
Android
Примечание
События датчиков Android больше не включены по умолчанию (GH-94799). Проекты, использующие события датчиков, могут включать их при необходимости в настройках проекта в разделе Input Devices > Sensors.