Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Оновлення з Godot 4.5 до Godot 4.6

Для більшості ігор та програм, створених з версії 4.5, перехід на версію 4.6 має бути відносно безпечним. На цій сторінці викладено все, на що потрібно звернути увагу під час перенесення вашого проєкту.

Ломальні зміни

Якщо ви переходите з версії 4.5 на 4.6, перелічені тут критичні зміни можуть вплинути на вас. Зміни згруповано за областями/системами.

У цій статті вказується, чи кожна порушна зміна впливає на GDScript і чи є порушна зміна C# бінарною сумісністю чи сумісною з джерелом:

  • Сумісність з бінарними файлами – Існуючі бінарні файли успішно завантажаться та виконаються без перекомпіляції, а поведінка під час виконання не зміниться.

  • Сумісність із вихідним кодом – вихідний код буде успішно скомпільовано без змін під час оновлення Godot.

Ядро

Зміна

Сумісність з GDScript

C# двійковий сумісний

Сумісність із вихідним кодом C#

Введено

FileAccess

Метод create_temp змінює тип параметра mode_flags з int на FileAccess.ModeFlags

✔️

✔️

✔️

GH-114053

Метод get_as_text вилучає параметр skip_cr

✔️

✔️

✔️

GH-110867

Продуктивність

Метод add_custom_monitor додає новий необов'язковий параметр type

✔️

✔️

✔️

GH-110433

Анімація

Зміна

Сумісність з GDScript

C# двійковий сумісний

Сумісність із вихідним кодом C#

Введено

Програвач анімації

Властивість assigned_animation змінює тип з String на StringName

✔️

GH-110767

Властивість autoplay змінює тип з String на StringName

✔️

GH-110767

Властивість current_animation змінює тип з String на StringName

✔️

GH-110767

Метод get_queue змінює тип повернення з PackedStringArray на StringName[]

✔️

GH-110767

Сигнал current_animation_changed змінює тип параметра name з String на StringName

✔️

GH-110767

Просторова графіка

Зміна

Сумісність з GDScript

C# двійковий сумісний

Сумісність із вихідним кодом C#

Введено

SpringBoneSimulator3D

Метод get_end_bone_direction змінює тип повернення з SpringBoneSimulator3D.BoneDirection на SkeletonModifier3D.BoneDirection

✔️

✔️

GH-110120

Метод get_joint_rotation_axis змінює тип повернення з SpringBoneSimulator3D.RotationAxis на SkeletonModifier3D.RotationAxis

✔️

✔️

GH-110120

Метод get_rotation_axis змінює тип повернення з SpringBoneSimulator3D.RotationAxis на SkeletonModifier3D.RotationAxis

✔️

✔️

GH-110120

Метод set_end_bone_direction змінює тип параметра bone_direction з SpringBoneSimulator3D.BoneDirection на SkeletonModifier3D.BoneDirection

✔️

✔️

GH-110120

Метод set_joint_rotation_axis змінює тип параметра axis з SpringBoneSimulator3D.RotationAxis на SkeletonModifier3D.RotationAxis

✔️

✔️

GH-110120

Метод set_rotation_axis змінює тип параметра axis з SpringBoneSimulator3D.RotationAxis на SkeletonModifier3D.RotationAxis

✔️

✔️

GH-110120

Рендеринг

Зміна

Сумісність з GDScript

C# двійковий сумісний

Сумісність із вихідним кодом C#

Введено

DisplayServer

Метод accessibility_create_sub_text_edit_elements додає новий необов'язковий параметр is_last_line

✔️

✔️

✔️

GH-113459

Метод tts_speak змінює метадані типу параметра utterance_id з int32 на int64

✔️

✔️

✔️

GH-112379

Вузли GUI

Зміна

Сумісність з GDScript

C# двійковий сумісний

Сумісність із вихідним кодом C#

Введено

Control

Метод grab_focus додає новий необов'язковий параметр hide_focus

✔️

✔️

✔️

GH-110250

Метод has_focus додає новий необов'язковий параметр ignore_hidden_focus

✔️

✔️

✔️

GH-110250

FileDialog

Метод add_filter додає новий необов'язковий параметр mime_type

✔️

✔️

✔️

GH-111439

LineEdit

Метод edit додає новий необов'язковий параметр hide_focus

✔️

✔️

✔️

GH-111117

SplitContainer

Метод clamp_split_offset додає новий необов'язковий параметр priority_index

✔️

✔️

✔️

GH-90411

Робота у мережі

Зміна

Сумісність з GDScript

C# двійковий сумісний

Сумісність із вихідним кодом C#

Введено

StreamPeerTCP

Метод disconnect_from_host переміщено до базового класу StreamPeerSocket

✔️

✔️

✔️

GH-107954

Метод get_status переміщено до базового класу StreamPeerSocket

✔️

✔️

GH-107954

Метод poll переміщено до базового класу StreamPeerSocket

✔️

✔️

✔️

GH-107954

TCPServer

Метод is_connection_available переміщено до базового класу SocketServer

✔️

✔️

✔️

GH-107954

Метод is_listening переміщено до базового класу SocketServer

✔️

✔️

✔️

GH-107954

Метод stop перенесено до базового класу SocketServer

✔️

✔️

✔️

GH-107954

openXR

Зміна

Сумісність з GDScript

C# двійковий сумісний

Сумісність із вихідним кодом C#

Введено

OpenXRExtensionWrapper

Метод _get_requested_extensions додає новий параметр xr_version

GH-109302

Метод _set_instance_create_info_and_get_next_pointer додає новий параметр xr_version

N/A

N/A

N/A

GH-109302

Примітка

Тип OpenXRExtensionWrapper призначений для створення підкласу з GDExtensions. Метод _set_instance_create_info_and_get_next_pointer має параметр void*, тому він не піддається сценаріям.

Редактор

Зміна

Сумісність з GDScript

C# двійковий сумісний

Сумісність із вихідним кодом C#

Введено

EditorExportPreset

Метод get_script_export_mode змінює тип повернення з int на EditorExportPreset.ScriptExportMode

✔️

GH-107167

EditorFileDialog

Метод add_filter переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод add_option переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод add_side_menu вилучено

GH-111162

Метод clear_filename_filter переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод clear_filters переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод get_filename_filter переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод get_line_edit переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод get_option_default переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод get_option_name переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод get_option_values переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод get_selected_options переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод get_vbox переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод invalidate переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод popup_file_dialog переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод set_filename_filter переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод set_option_default переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод set_option_name переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Метод set_option_values переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Властивість access переміщено до базового класу FileDialog

✔️

✔️

GH-111212

Властивість current_dir переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Властивість current_file переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Властивість current_path переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Властивість display_mode переміщено до базового класу FileDialog

✔️

✔️

GH-111212

Властивість file_mode переміщено до базового класу FileDialog

✔️

✔️

GH-111212

Властивість filters переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Властивість option_count переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Властивість show_hidden_files переміщено до базового класу FileDialog

✔️

✔️

✔️

GH-111212

Сигнал dir_selected переміщено до базового класу FileDialog

✔️

✔️

GH-111212

Сигнал filename_filter_changed переміщено до базового класу FileDialog

✔️

✔️

GH-111212

Сигнал file_selected переміщено до базового класу FileDialog

✔️

✔️

GH-111212

Сигнал files_selected переміщено до базового класу FileDialog

✔️

✔️

GH-111212

Зміни поведінки

Android

Примітка

Конфігурацію вихідних наборів для шаблонів експорту Android оновлено відповідно до стандартної структури проекту Android Studio (GH-110829). Це впливає на розташування каталогів проекту Android:

  • Файли, які раніше знаходилися в [Project root]/android/build/src/, тепер знаходяться в [Project root]/android/build/src/main/java/.

  • Файл маніфесту Android та каталог ресурсів переміщено до підкаталогів src/main/.

Наприклад, файл GodotApp.java переміщено з src/com/godot/game/GodotApp.java до src/main/java/com/godot/game/GodotApp.java.

Ядро

Примітка

The Формат файлу TSCN has changed in two ways in Godot 4.6:

  • load_steps is no longer written in scene files (GH-103352). This attribute wasn't used by the editor.

  • Unique node IDs are now saved to scene files to help track nodes when they are moved or renamed (GH-106837). This makes scene refactoring significantly more robust.

The changes are backwards-compatible and forwards-compatible, which means scenes saved in Godot 4.5 can still be loaded in Godot 4.6 and vice-versa (notwithstanding other incompatible changes performed in the scene itself).

As a result, when saving a scene that was last edited in Godot 4.5 in Godot 4.6, significant diffs will occur in version control programs. These diffs are expected.

As a reminder, you can upgrade all files in a project to the latest format using Project > Tools > Upgrade Project Files... in the editor, then committing the changes to version control. This allows you to avoid large diffs later on when editing scenes.

Рендеринг

Примітка

The default blend mode for Glow is now Screen, which looks more correct but is significantly brighter than the previous Soft Light mode (GH-110671).

Several other glow defaults were changed to ensure the glow didn't become too strong, but you will likely need to tweak glow properties in Environment after upgrading.

In addition, glow's Soft Light blend mode now always behaves as it did previously with use_hdr_2d, regardless of the Viewport's use_hdr_2d setting (GH-109971).

When using the Mobile renderer, the rewritten glow effect will look significantly different to the previous one for performance reasons (GH-110077). You may need to further adjust glow settings in Environment to achieve a similar look to before.

Примітка

Volumetric fog blending has been changed to be more physically accurate (GH-112494). This will cause volumetric fog to appear brighter in most scenes.

To compensate for this, you will need to decrease volumetric fog density or brightness in Environment, or decrease the Volumetric Fog Energy property on specific lights.

Змінені налаштування за замовчуванням

Наведені нижче значення за замовчуванням було змінено. Якщо ваш проект використовує попередні значення за замовчуванням, можливо, вам доведеться явно встановити для них старі значення.

Примітка

Драйвер рендерингу за замовчуванням у Windows для щойно створених проектів тепер D3D12 (GH-113213). Це можна змінити в налаштуваннях проекту в розділі rendering/rendering_device/driver.windows.

Примітка

Стандартним 3D-фізичним рушієм для щойно створених проєктів тепер є Jolt Physics (GH-105737). Це можна змінити в налаштуваннях проєкту в розділі physics/3d/physics_engine.

Просторова графіка

Член

Старе значення

Нова цінність

Введено

MeshInstance3D

Властивість skeleton

NodePath("..")

NodePath("")

GH-112267

Примітка

Значення за замовчуванням skeleton змінилося. Увімкніть animation/compatibility/default_parent_skeleton_in_mesh_instance_3d у налаштуваннях проекту, якщо для сумісності потрібна стара поведінка.

Рендеринг

Член

Старе значення

Нова цінність

Введено

ProjectSettings

Властивість rendering/reflections/sky_reflections/roughness_layers

8

7

GH-107902

Властивість rendering/rendering_device/d3d12/agility_sdk_version

613

618

GH-114043

Навколишнє середовище

Властивість glow_blend_mode

2

1

GH-110671

Властивість glow_intensity

0.8

0.3

GH-110671

Властивість glow_levels/2

0.0

0.8

GH-110671

Властивість glow_levels/3

1.0

0.4

GH-110671

Властивість glow_levels/4

0.0

0.1

GH-110671

Властивість glow_levels/5

1.0

0.0

GH-110671

Властивість ssr_depth_tolerance

0.2

0.5

GH-111210

Вузли GUI

Властивість/Параметр

Старе значення

Нова цінність

Введено

Спливаюче меню

Властивість submenu_popup_delay

0.3

0.2

GH-110256

ResourceImporterCSVTranslation

Властивість compress

true

1

GH-112073