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.5 a Godot 4.6

Per la maggior parte dei giochi e delle applicazioni creati in 4.5, dovrebbe essere relativamente sicuro migrare a 4.6. 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.5 alla 4.6, 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 create_temp cambia il tipo del parametro flags da int a FileAccess.ModeFlags

✔️

✔️

✔️

GH-114053

Il metodo get_as_text rimuove il parametro skip_cr

✔️

✔️

✔️

GH-110867

Prestazioni

Il metodo add_custom_monitor aggiunge un nuovo parametro facoltativo type

✔️

✔️

✔️

GH-110433

Animazione

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

AnimationPlayer

La proprietà motion cambia tipo da String a StringName

✔️

GH-110767

La proprietà autoplay cambia tipo da String a int

✔️

GH-110767

La proprietà current_animation cambia tipo da String a StringName

✔️

GH-110767

Il metodo get_queue cambia il tipo restituito da PackedStringArray a StringName[]

✔️

GH-110767

Il metodo current_animation_changed cambia il tipo del parametro name da String a StringName

✔️

GH-110767

3D

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

SpringBoneSimulator3D

Il metodo get_end_bone_direction cambia il tipo restituito da SpringBoneSimulator3D.BoneDirection a SkeletonModifier3D.BoneDirection

✔️

✔️

GH-110120

Il metodo get_joint_rotation_axis cambia il tipo restituito da SpringBoneSimulator3D.RotationAxis a SkeletonModifier3D.RotationAxis

✔️

✔️

GH-110120

Il metodo get_rotation_axis cambia il tipo restituito da SpringBoneSimulator3D.RotationAxis a SkeletonModifier3D.RotationAxis

✔️

✔️

GH-110120

Il metodo set_end_bone_direction cambia il tipo del parametro bone_direction da SpringBoneSimulator3D.BoneDirection a SkeletonModifier3D.BoneDirection

✔️

✔️

GH-110120

Il metodo set_joint_rotation_axis cambia il tipo del parametro axis da SpringBoneSimulator3D.RotationAxis a SkeletonModifier3D.RotationAxis

✔️

✔️

GH-110120

Il metodo set_rotation_axis cambia il tipo del parametro axis da SpringBoneSimulator3D.RotationAxis a SkeletonModifier3D.RotationAxis

✔️

✔️

GH-110120

Renderer

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

DisplayServer

Il metodo accessibility_create_sub_text_edit_elements aggiunge un nuovo parametro facoltativo mipmaps

✔️

✔️

✔️

GH-113459

Il metodo tts_speak cambia il tipo del parametro utterance_id da int32 a int64

✔️

✔️

✔️

GH-112379

Nodi GUI

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

Control

Il metodo grab_focus aggiunge un nuovo parametro facoltativo hide_focus

✔️

✔️

✔️

GH-110250

Il metodo has_focus aggiunge un nuovo parametro facoltativo ignore_hidden_focus

✔️

✔️

✔️

GH-110250

FileDialog

Il metodo add_filter aggiunge un nuovo parametro facoltativo mime_type

✔️

✔️

✔️

GH-111439

LineEdit

Il metodo edit aggiunge un nuovo parametro facoltativo hide_focus

✔️

✔️

✔️

GH-111117

SplitContainer

Il metodo clamp_split_offset aggiunge un nuovo parametro facoltativo priority_index

✔️

✔️

✔️

GH-90411

Networking

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

StreamPeerTCP

Il metodo disconnect_from_host è stato spostato nella classe base StreamPeerSocket

✔️

✔️

✔️

GH-107954

Il metodo get_status è stato spostato nella classe base AnimationMixer

✔️

✔️

GH-107954

Il metodo poll è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-107954

TCPServer

Il metodo is_connection_available è stato spostato nella classe base SocketServer

✔️

✔️

✔️

GH-107954

Il metodo is_listening è stato spostato nella classe base SocketServer

✔️

✔️

✔️

GH-107954

Il metodo stop è stato spostato nella classe base SocketServer

✔️

✔️

✔️

GH-107954

OpenXR

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

OpenXRExtensionWrapper

Il metodo _get_requested_extensions aggiunge un nuovo parametro xr_version

GH-109302

Il metodo _set_instance_create_info_and_get_next_pointer aggiunge un nuovo parametro xr_version

N/A

N/A

N/A

GH-109302

Nota

Il tipo OpenXRExtensionWrapper è concepito per essere una sottoclasse in GDExtension. Il metodo _set_instance_create_info_and_get_next_pointer ha un parametro void*, quindi non è esposto agli script.

Editor

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

EditorExportPreset

Il metodo get_script_export_mode cambia il tipo restituito da int a EditorExportPreset.ScriptExportMode

✔️

GH-107167

EditorFileDialog

Il metodo add_filter è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo add_option è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Metodo add_side_menu rimosso

GH-111162

Il metodo clear_filename_filter è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo clear_filters è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo get_filename_filter è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo get_line_edit è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo get_option_default è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo get_option_name è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo get_option_values è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo get_selected_options è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo get_vbox è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo invalidate è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo popup_file_dialog è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo set_filename_filter è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo set_option_default è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo set_option_name è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il metodo set_option_values è stato spostato nella classe base FileDialog

✔️

✔️

✔️

GH-111212

La proprietà access è stata spostata nella classe base FileDialog

✔️

✔️

GH-111212

La proprietà current_dir è stata spostata nella classe base FileDialog

✔️

✔️

✔️

GH-111212

La proprietà current_file è stata spostata nella classe base FileDialog

✔️

✔️

✔️

GH-111212

La proprietà current_path è stata spostata nella classe base FileDialog

✔️

✔️

✔️

GH-111212

La proprietà display_mode è stata spostata nella classe base FileDialog

✔️

✔️

GH-111212

La proprietà file_mode è stata spostata nella classe base FileDialog

✔️

✔️

GH-111212

La proprietà filters è stata spostata nella classe base FileDialog

✔️

✔️

✔️

GH-111212

La proprietà option_count è stata spostata nella classe base FileDialog

✔️

✔️

✔️

GH-111212

La proprietà show_hidden_files è stata spostata nella classe base FileDialog

✔️

✔️

✔️

GH-111212

Il segnale dir_selected è stato spostato nella classe base FileDialog

✔️

✔️

GH-111212

Il segnale filename_filter_changed è stato spostato nella classe base FileDialog

✔️

✔️

GH-111212

Il segnale file_selected è stato spostato nella classe base FileDialog

✔️

✔️

GH-111212

Il segnale files_selected è stato spostato nella classe base FileDialog

✔️

✔️

GH-111212

Cambiamenti di comportamento

Android

Nota

La configurazione dei set di origine per i modelli di esportazione Android è stata aggiornata per corrispondere alla struttura predefinita dei progetti in Android Studio (GH-110829). Ciò influisce sulla struttura delle cartelle del progetto Android:

  • I file che prima si trovavano in [Project root]/android/build/src/ ora si trovano in [Project root]/android/build/src/main/java/.

  • Il file manifest di Android e la cartella delle risorse sono stati spostati nelle sottocartelle src/main/.

Ad esempio, il file GodotApp.java è stato spostato da src/com/godot/game/GodotApp.java a src/main/java/com/godot/game/GodotApp.java.

Fondamentali

Nota

Il Formato dei file TSCN è cambiato in due modi in Godot 4.6:

  • load_steps non è più scritto nei file di scena (GH-103352). Questo attributo non era utilizzato dall'editor.

  • ID univoci per i nodi sono ora salvati nei file di scena per aiutare a tenere traccia dei nodi quando sono spostati o rinominati (GH-106837). Ciò rende il refactoring delle scene significativamente più robusto.

I cambiamenti sono retrocompatibili e compatibili con le versioni successive, il che significa che le scene salvate in Godot 4.5 si possono caricare in Godot 4.6 e viceversa (escludendo altre modifiche incompatibili apportate alla scena stessa).

Pertanto, quando si salva una scena modificata per l'ultima volta in Godot 4.5 in Godot 4.6, appariranno notevoli differenze nei programmi di controllo versioni. Queste differenze sono previste.

Come promemoria, è possibile aggiornare tutti i file di un progetto al formato più recente attraverso Project > Tools > Upgrade Project Files... nell'editor, per poi effettuare il commit dei cambiamenti nel sistema di controllo versioni. Questo permette di evitare notevoli differenze in seguito, durante la modifica delle scene.

Renderer

Nota

La modalità di fusione predefinita per il bagliore (Glow) ora è Screen, che appare più corretta ma è notevolmente più luminosa della precedente modalità Soft Light (GH-110671).

Sono state cambiati diversi altri valori predefiniti riguardanti il bagliore per evitare che diventasse troppo intenso, ma probabilmente sarà necessario regolare le proprietà di bagliore nella sezione Environment dopo aver aggiornato.

Inoltre, la modalità di fusione Soft Light (luce soffusa) del bagliore ora si comporta sempre come prima con use_hdr_2d, a prescindere dall'impostazione use_hdr_2d della Viewport (GH-109971).

Quando si usa il renderer mobile, l'effetto bagliore riscritto apparirà notevolmente diverso da quello di prima per motivi di prestazioni (GH-110077). Potrebbe essere necessario regolare ulteriormente le impostazioni del bagliore in Environment per ottenere un aspetto simile a prima.

Nota

La fusione della nebbia volumetrica è stata modificata per essere più fisicamente accurata (GH-112494). Questo la farà apparire più luminosa nella maggior parte delle scene.

Per compensare, sarà necessario diminuire la densità o la luminosità della nebbia volumetrica in Environment, oppure diminuire la proprietà Volumetric Fog Energy su luci specifiche.

Valori predefiniti modificati

I seguenti valori predefiniti sono stati modificati. Se il tuo progetto si basa sui valori predefiniti precedenti, potrebbe essere necessario impostarli esplicitamente sui vecchi valori.

Nota

Il driver di rendering predefinito su Windows per i progetti appena creati è ora D3D12 (GH-113213). Questo si può cambiare nelle Impostazioni del progetto, in rendering/rendering_device/driver.windows.

Nota

Il motore di fisica 3D predefinito per i progetti appena creati è ora Jolt Physics (GH-105737). Questo si può cambiare nelle Impostazioni del progetto, in physics/3d/physics_engine.

3D

Membro

Valore vecchio

Valore nuovo

Introdotti

MeshInstance3D

Proprietà skeleton

NodePath("..")

NodePath("")

GH-112267

Nota

Il valore predefinito di skeleton è cambiato. Abilita animation/compatibility/default_parent_skeleton_in_mesh_instance_3d nelle impostazioni del progetto se il vecchio comportamento è necessario per motivi di compatibilità.

Renderer

Membro

Valore vecchio

Valore nuovo

Introdotti

ProjectSettings

Proprietà rendering/reflections/sky_reflections/roughness_layers

8

7

GH-107902

Proprietà rendering/rendering_device/d3d12/agility_sdk_version

613

618

GH-114043

Environment

Proprietà glow_blend_mode

2

1

GH-110671

Proprietà glow_intensity

0.8

0.3

GH-110671

Proprietà glow_levels/2

0.0

0.8

GH-110671

Proprietà glow_levels/3

1.0

0.4

GH-110671

Proprietà glow_levels/4

0.0

0.1

GH-110671

Proprietà glow_levels/5

1.0

0.0

GH-110671

Proprietà ssr_depth_tolerance

0.2

0.5

GH-111210

Nodi GUI

Proprietà/Parametro

Valore vecchio

Valore nuovo

Introdotti

PopupMenu

Proprietà submenu_popup_delay

0.3

0.2

GH-110256

ResourceImporterCSVTranslation

Proprietà compress

true

1

GH-112073