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.

Passare da Godot 4.3 a Godot 4.4

Per la maggior parte dei giochi e delle applicazioni creati in 4.3, dovrebbe essere relativamente sicuro migrare a 4.4. Questa pagina intende illustrare tutti gli aspetti a cui prestare attenzione durante la migrazione del proprio progetto.

Modifiche incompatibili

Se stai migrando dalla versione 4.3 alla 4.4, le modifiche incompatibili elencate qui potrebbero interessarti. Le modifiche sono raggruppate per aree/sistemi.

Questo articolo indica se ogni modifica incompatibile influisce su GDScript e se una modifica incompatibile in C# è compatibile con il binario o compatibile con il codice sorgente:

  • Compatibile con gli eseguibili - Gli eseguibili esistenti saranno caricati ed eseguiti correttamente senza doverli ricompilare, e il comportamento in fase di esecuzione non cambierà.

  • Compatibile con il codice sorgente - Il codice sorgente sarà compilato correttamente senza cambiamenti all'aggiornamento di Godot.

Fondamentali

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

FileAccess

Il metodo open_encrypted aggiunge un nuovo parametro facoltativo iv

✔️

✔️

✔️

GH-98918

Il metodo store_8 cambia il tipo restituito da void a int32

✔️

✔️

GH-78289

Il metodo store_16 cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_32 cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_64 cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_buffer cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_csv_line cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_double cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_float cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_half cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_line cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_pascal_string cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_real cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_string cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

Il metodo store_var cambia il tipo restituito da void a bool

✔️

✔️

GH-78289

OS

Il metodo execute_with_pipe aggiunge un nuovo parametro facoltativo blocking

✔️

✔️

✔️

GH-94434

Il metodo read_string_from_stdin aggiunge un nuovo parametro buffer_size [1]

✔️

✔️

GH-91201

RegEx

Il metodo compile aggiunge un nuovo parametro facoltativo show_error

✔️

✔️

✔️

GH-95212

Il metodo create_from_string aggiunge un nuovo parametro facoltativo show_error

✔️

✔️

✔️

GH-95212

Semaphore

Il metodo post aggiunge un nuovo parametro facoltativo count

✔️

✔️

✔️

GH-93605

TranslationServer

Il metodo standardize_locale aggiunge un nuovo parametro facoltativo add_defaults

✔️

✔️

✔️

GH-98972

Annotazioni di esportazione

Avvertimento

Il comportamento di @export_file è cambiato in Godot 4.4. Quando si assegna un nuovo valore dall'Ispettore, il percorso è ora memorizzato e restituito come riferimento uid:// invece del tradizionale percorso res:// (GH-97912). Questo è una modifica incompatibile e potrebbe causare problemi se ci si aspetta percorsi basati su res:// negli script o nei file serializzati.

Ad esempio, gli array di file esportati potrebbero ora contenere un miscuglio di percorsi uid:// e res://, soprattutto se sono stati modificati parzialmente nell'Ispettore.

Nella versione 4.4, l'unico modo per mantenere il formato res:// è modificare manualmente i file .tscn o .tres in un editor di testo. A partire da Godot 4.5, è possibile utilizzare una nuova annotazione @export_file_path per mantenere esplicitamente il vecchio comportamento ed esportare i percorsi res:// grezzi.

Nodi GUI

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

RichTextLabel

Il metodo push_meta aggiunge un nuovo parametro facoltativo tooltip

✔️

✔️

✔️

GH-99481

Il metodo set_table_column_expand aggiunge un nuovo parametro facoltativo shrink

✔️

✔️

✔️

GH-101482

GraphEdit

Il metodo connect_node aggiunge un nuovo parametro facoltativo keep_alive

✔️

✔️

✔️

GH-97449

Il metodo frame_rect_changed cambia il tipo del parametro new_rect da Vector2 a Rect2

GH-102796

Fisica

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

SoftBody3D

Il metodo set_point_pinned aggiunge un nuovo parametro facoltativo insert_at

✔️

✔️

✔️

GH-94684

Renderer

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

CPUParticles2D

Il metodo restart aggiunge un nuovo parametro facoltativo keep_seed

✔️

✔️

✔️

GH-92089

CPUParticles3D

Il metodo restart aggiunge un nuovo parametro facoltativo keep_seed

✔️

✔️

✔️

GH-92089

GPUParticles2D

Il metodo restart aggiunge un nuovo parametro facoltativo keep_seed

✔️

✔️

✔️

GH-92089

GPUParticles3D

Il metodo restart aggiunge un nuovo parametro facoltativo keep_seed

✔️

✔️

✔️

GH-92089

RenderingDevice

Il metodo draw_list_begin aggiunge un nuovo parametro facoltativo breadcrumb

✔️

✔️

✔️

GH-90993

Il metodo draw_list_begin rimuove molti parametri

✔️

✔️

GH-98670

Il metodo index_buffer_create aggiunge un nuovo parametro facoltativo enable_device_address

✔️

✔️

✔️

GH-100062

Il metodo uniform_buffer_create aggiunge un nuovo parametro facoltativo enable_device_address

✔️

✔️

✔️

GH-100062

Il metodo vertex_buffer_create aggiunge un nuovo parametro facoltativo enable_device_address

✔️

✔️

✔️

GH-100062

RenderingServer

Il metodo push_meta aggiunge un nuovo parametro facoltativo use_indirect

✔️

✔️

✔️

GH-99455

Shader

Il metodo get_default_parameter cambia il tipo restituito da Texture2D a Texture

✔️

GH-95126

Il metodo set_default_texture_parameter cambia il tipo del parametro texture da Texture2D a Texture

✔️

✔️

GH-95126

VisualShaderNodeCubemap

La proprietà cube_map cambia tipo da Cubemap a TextureLayered

✔️

GH-95126

VisualShaderNodeTexture2DArray

La proprietà texture_array cambia tipo da Texture2DArray a TextureLayered

✔️

GH-95126

Nota

In C#, l'enumerazione RenderingDevice.StorageBufferUsage interrompe la compatibilità a causa del modo in cui il generatore di binding rileva il prefisso dell'enumerazione. In GH-100062 sono stati aggiunti nuovi membri all'enum, causando la ridenominazione dei membri dell'enum.

Estensioni per l'editor

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

EditorInterface

Il metodo open_scene_from_path aggiunge un nuovo parametro facoltativo set_inherited

✔️

✔️

✔️

GH-90057

Il metodo popup_node_selector aggiunge un nuovo parametro facoltativo current_value

✔️

✔️

✔️

GH-94323

Il metodo popup_property_selector aggiunge un nuovo parametro facoltativo current_value

✔️

✔️

✔️

GH-94323

EditorSceneFormatImporter

Metodo _get_import_flags rimosso

GH-101531

EditorTranslationParserPlugin

Il metodo _parse_file cambia il tipo restituito in Array e rimuove i parametri msgids e msgids_context_plural

GH-99297

Nota

Il metodo _get_import_flags non è mai stato utilizzato dal motore. È stato rimosso nonostante l'interruzione di compatibilità, poiché non c'è alcun modo per affidarsi sul fatto che questo influenza il comportamento del motore.

Cambiamenti di comportamento

Fondamentali

Nota

La risorsa Curve ora impone il suo intervallo di valori, quindi è necessario cambiare min_value e max_value se uno qualsiasi dei punti è al di fuori dell'intervallo [0, 1] predefinito.

Renderer

Nota

Il tipo di input del nodo di shader VisualShaderNodeVec4Constant è stato cambiato in Vector4. Gli utenti devono ricreare i valori nelle loro costanti.

CSG

Nota

L'implementazione di CSG ora utilizza la libreria Manifold di Emmett Lalish (GH-94321). La nuova implementazione è più coerente con le definizioni di manifold e corregge diversi bug e problemi di stabilità. Pertanto, le mesh non manifold non sono più supportate. È possibile utilizzare MeshInstance3D per renderizzare geometrie non manifold, come quadrilateri o piani.

Android

Nota

Gli eventi dei sensori Android non sono più abilitati come predefinito (GH-94799). I progetti che utilizzano gli eventi dei sensori possono abilitarli in base alle esigenze nelle Impostazioni del progetto in Dispositivi di input > Sensori.