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