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.3 до Godot 4.4

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

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

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

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

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

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

Ядро

Зміна

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

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

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

Введено

FileAccess

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

✔️

✔️

✔️

GH-98918

Метод store_8 змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_16 змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_32 змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_64 змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_buffer змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_csv_line змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_double змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_float змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_half змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_line змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_pascal_string змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_real змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_string змінює тип повернення з void на bool

✔️

✔️

GH-78289

Метод store_var змінює тип повернення з void на bool

✔️

✔️

GH-78289

OS

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

✔️

✔️

✔️

GH-94434

Метод read_string_from_stdin додає новий параметр buffer_size [1]

✔️

✔️

GH-91201

RegEx

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

✔️

✔️

✔️

GH-95212

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

✔️

✔️

✔️

GH-95212

Семафор

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

✔️

✔️

✔️

GH-93605

TranslationServer

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

✔️

✔️

✔️

GH-98972

Експортувати анотації

Попередження

Поведінка @export_file змінилася в Godot 4.4. При присвоєнні нового значення з Інспектора шлях тепер зберігається і повертається як посилання uid:// замість традиційного шляху res:// (GH-97912). Це істотна зміна, яка може спричинити проблеми, якщо ви очікуєте шляхи на основі res:// у скриптах або серіалізованих файлах.

Наприклад, експортовані масиви файлів тепер можуть містити поєднання шляхів uid:// та res://, особливо якщо вони були частково відредаговані в Інспекторі.

У версії 4.4 єдиний спосіб зберегти формат res:// — це вручну відредагувати файли .tscn або .tres у текстовому редакторі. Починаючи з Godot 4.5, для явного збереження старого поведінки та експорту необроблених шляхів res:// можна використовувати нову анотацію @export_file_path.

Вузли GUI

Зміна

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

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

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

Введено

RichTextLabel

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

✔️

✔️

✔️

GH-99481

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

✔️

✔️

✔️

GH-101482

Редагування графіка

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

✔️

✔️

✔️

GH-97449

Сигнал frame_rect_changed змінює тип параметра new_rect з Vector2 на Rect2

GH-102796

Фізика

Зміна

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

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

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

Введено

SoftBody3D

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

✔️

✔️

✔️

GH-94684

Рендеринг

Зміна

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

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

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

Введено

CPUParticles2D

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

✔️

✔️

✔️

GH-92089

CPUParticles3D

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

✔️

✔️

✔️

GH-92089

GPUParticles2D

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

✔️

✔️

✔️

GH-92089

GPUParticles3D

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

✔️

✔️

✔️

GH-92089

RenderingDevice

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

✔️

✔️

✔️

GH-90993

Метод draw_list_begin видаляє багато параметрів

✔️

✔️

GH-98670

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

✔️

✔️

✔️

GH-100062

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

✔️

✔️

✔️

GH-100062

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

✔️

✔️

✔️

GH-100062

RenderingServer

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

✔️

✔️

✔️

GH-99455

Шейдер

Метод get_default_texture_parameter змінює тип повернення з Texture2D на Texture

✔️

GH-95126

Метод set_default_texture_parameter змінює тип параметра texture з Texture2D на Texture

✔️

✔️

GH-95126

VisualShaderNodeCubemap

Властивість cube_map змінює тип з Cubemap на TextureLayered

✔️

GH-95126

VisualShaderNodeTexture2DArray

Властивість texture_array змінює тип з Texture2DArray на TextureLayered

✔️

GH-95126

Примітка

У C# перелік RenderingDevice.StorageBufferUsage порушує сумісність через спосіб, у який генератор прив'язок виявляє префікс переліку. До переліку було додано нові члени з переліком GH-100062, що призвело до перейменування членів переліку.

Додатки редактора

Зміна

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

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

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

Введено

Інтерфейс редактора

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

✔️

✔️

✔️

GH-90057

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

✔️

✔️

✔️

GH-94323

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

✔️

✔️

✔️

GH-94323

EditorSceneFormatImporter

Метод _get_import_flags видалено

GH-101531

EditorTranslationParserPlugin

Метод _parse_file змінює тип повернення на Array та видаляє параметри msgids та msgids_context_plural

GH-99297

Примітка

Метод _get_import_flags ніколи не використовувався рушієм. Його було видалено, незважаючи на порушення сумісності, оскільки користувачі не можуть покладатися на те, що це вплине на роботу рушія.

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

Ядро

Примітка

Ресурс Curve тепер застосовує свій діапазон значень, тому min_value та max_value потрібно змінити, якщо будь-яка з точок виходить за межі діапазону [0, 1] за замовчуванням.

Рендеринг

Примітка

Тип вхідних даних вузла шейдера VisualShaderNodeVec4Constant змінено на Vector4. Користувачам потрібно відтворити значення у своїх константах.

CSG

Примітка

Реалізація CSG тепер використовує бібліотеку Manifold (GH-94321) Еммета Лаліша. Нова реалізація більш узгоджена з визначеннями многовидів та виправляє низку помилок і проблем зі стабільністю. Як результат, сітки, що не є многовидами, більше не підтримуються. Ви можете використовувати MeshInstance3D для рендерингу геометрії, що не є многовидами, такої як чотирикутники або площини.

Android

Примітка

Події датчиків Android більше не ввімкнено за замовчуванням (GH-94799). Проєкти, які використовують події датчиків, можуть увімкнути їх за потреби в налаштуваннях проєкту в розділі Пристрої введення > Датчики.