Обновление с Godot 4.3 на Godot 4.4
Для большинства игр и приложений, созданных с 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.