Обновление с Godot 4.1 на Godot 4.2
Большинство игр и приложений сделанных в 4.1 может быть относительно легко перенесено на 4.2. Эта страница предназначена для освещения всего что требует внимания при переносе вашего проекта.
Изменения ломающие обратную совместимость
Если вы переноситесь с 4.1 на 4.2, изменения нарушающие обратную совместимость перечисленные здесь могут затронуть вас. Изменения сгруппированы по областям/системам.
Предупреждение
Формат ресурса Mesh изменен в 4.2 для разрешения вершинной и атрибутной компрессии. Это позволяет улучшать производительность отрисовки, особенно на платформах ограниченных по шине памяти такие как мобильные телефоны.
Все еще возможно загружать форматы сеток из Godot 4.0-4.1, но не возможно загрузить формат сетки из Godot 4.2 в предыдущих версиях Godot. При открытии проекта Godot на версии до 4.2, вам может быть показан диалог обновления который предлагает две опции:
Перезапуск & Обновление: Обновляет формат сетки для всех мешей в проекте и сохраняет результат на диск. После выбора, эта опция предотвращает возврат проекта на предыдущую версию Godot до 4.2. Установите систему контроля версий и делайте push-ваших изменений перед выбором этой опции!
Только Обновление: Обновляет формат сетки в памяти без записи на диск. Это позволяет откатывать проект на версию Godot старше 4.2 если вам потребуется это в будущем. Недостатком этого будет более медленная загрузка так как формат сеток будет обновляться при каждом запуске проекта. Увеличенное время загрузки также влияет на экспортируемый проект. Количество и сложность ресурсов Мешей влияет на продолжительность времени загрузки.
Если этот диалог не показывается, используйте опцию Проект> Инструменты> Обновить поверхности сетки… наверху редактора.
Эта статья показывает, где каждое изменение обратной совместимости влияет на GDScript и где изменение обратной совместимости C# бинарно совместимо или совместимо на уровне кода:
Binary compatible (Совместимость на уровне двоичных файлов) — существующие двоичные файлы будут успешно загружены и выполнены без перекомпиляции, а поведение среды выполнения не изменится.
Совместимо на уровне кода - Исходный код будет успешно компилироваться без изменений при обновлении Godot.
Ядро
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
Node |
||||
Константа |
❌ |
✔️ |
❌ |
Анимация
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
AnimationPlayer |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
❌ |
❌ |
|
Сигнал |
✔️ |
❌ |
❌ |
|
Сигнал |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
AnimationTree |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
❌ |
❌ |
|
Сигнал |
✔️ |
❌ |
❌ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
❌ |
❌ |
GUI узлы
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
Всплывающее меню |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
RichTextLabel |
||||
Метод |
✔️ |
✔️ |
✔️ |
Отрисовка
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
ImporterMesh |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
❌ |
❌ |
|
MeshDataTool |
||||
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
❌ |
❌ |
|
RenderingDevice |
||||
Поле перечисления |
✔️ |
✔️ |
✔️ |
|
Поле перечисления |
✔️ |
✔️ |
✔️ |
|
Поле перечисления |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
✔️ |
✔️ |
|
Метод |
✔️ |
❌ |
❌ |
|
SurfaceTool |
||||
Метод |
✔️ |
✔️ |
✔️ |
Текст
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
Font |
||||
Метод |
✔️ |
❌ |
❌ |
|
Метод |
✔️ |
❌ |
❌ |
|
У метода |
✔️ |
✔️ |
✔️ |
GraphEdit
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
GraphEdit |
||||
Свойство |
❌ |
✔️ |
✔️ |
|
Метод |
❌ |
✔️ |
✔️ |
|
Свойство |
❌ |
✔️ |
✔️ |
|
Свойство |
❌ |
✔️ |
✔️ |
|
GraphNode |
||||
Свойство |
❌ |
❌ |
❌ |
|
Сигнал |
❌ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Метод |
❌ |
❌ |
❌ |
|
Свойство |
❌ |
❌ |
❌ |
|
Сигнал |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
✔️ |
✔️ |
|
Свойство |
❌ |
❌ |
❌ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Сигнал |
✔️ |
❌ |
❌ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Свойство |
✔️ |
✔️ |
✔️ |
|
Свойство |
❌ |
❌ |
❌ |
|
Свойство |
❌ |
❌ |
❌ |
TileMap
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
TileMap |
||||
Свойство |
❌ |
✔️ |
✔️ |
XR
Изменение |
Совместимо с GDScript |
Совместимо с бинарным кодом C# |
Совместимо с исходным кодом C# |
Введено в |
|---|---|---|---|---|
XRInterface |
||||
Свойство |
✔️ |
❌ |
❌ |
Примечание
Это изменение нарушает совместимость в C#, поскольку новое свойство конфликтует с именем существующего перечисления, а генератор привязок C# отдает приоритет свойствам, поэтому тип перечисления был переименован из EnvironmentBlendMode в EnvironmentBlendModeEnum.