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.1 a Godot 4.2

Per la maggior parte dei giochi e delle applicazioni creati in 4.1, dovrebbe essere relativamente sicuro migrare a 4.2. 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.1 alla 4.2, le modifiche incompatibili elencate qui potrebbero interessarti. Le modifiche sono raggruppate per aree/sistemi.

Avvertimento

Il formato delle risorse Mesh è stato modificato nella versione 4.2 per permettere la compressione di vertici e attributi. Ciò porta a migliori prestazioni di rendering, soprattutto su piattaforme limitate dalla banda di memoria, come i dispositivi mobili.

È ancora possibile caricare i formati Mesh di Godot 4.0-4.1, ma non è possibile caricare il formato Mesh di Godot 4.2 nelle versioni precedenti di Godot. Quando si apre un progetto Godot creato con una versione precedente alla 4.2, potrebbe apparire una finestra di dialogo di aggiornamento con due opzioni:

  • Riavvia e aggiorna: Aggiorna il formato mesh per tutte le mesh del progetto e salva il risultato su disco. Una volta selezionata, questa opzione impedisce al progetto di tornare a una versione di Godot precedente alla 4.2. Impostare un sistema di controllo versione e inviare le modifiche prima di scegliere questa opzione!

  • Solo aggiornamento: Aggiorna il formato mesh in memoria senza scriverlo su disco. Questo consente di tornare a una versione di Godot precedente alla 4.2, se necessario, in futuro. Lo svantaggio è caricare il progetto richiederà più tempo ogni volta, poiché il formato mesh deve essere aggiornato a ogni caricamento del progetto. Questi tempi di caricamento più lunghi influiranno anche sul progetto esportato. Il numero e la complessità delle risorse mesh determinano l'impatto sui tempi di caricamento.

Se questa finestra di dialogo non viene visualizzata, utilizzare Progetto > Strumenti > Aggiorna superfici mesh… nella parte superiore dell'editor.

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 necessità di ricompilazione 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

Node

Costante NOTIFICATION_NODE_RECACHE_REQUESTED rimossa

✔️

GH-84419

Animazione

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

AnimationPlayer

Il metodo _post_process_key_value è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo add_animation_library è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo advance è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il segnale animation_finished è stato spostato nella classe base AnimationMixer

✔️

GH-80813

Il segnale animation_started è stato spostato nella classe base AnimationMixer

✔️

GH-80813

Il segnale animation_libraries_updated è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il segnale animation_list_changed è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà audio_max_polyphony è stata spostata nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il segnale caches_cleared è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo clear_caches è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo find_animation è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo find_animation_library è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_animation è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_animation_library è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_animation_library_list è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_animation_list è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo has_animation è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo has_animation_library è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà method_call_mode è stata spostata nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà playback_active è stata rinominata in active e spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo playback_process_mode è stato rinominato in callback_mode_process e spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo remove_animation_library è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo rename_animation_library è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà reset_on_save è stata spostata nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà root_node è stata spostata nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo set_reset_on_save_enabled è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo seek aggiunge un nuovo parametro facoltativo update_only

✔️

✔️

✔️

GH-80813

AnimationTree

Il metodo _post_process_key_value è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà active è stata spostata nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo advance è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il segnale animation_finished è stato spostato nella classe base AnimationMixer

✔️

GH-80813

Il segnale animation_started è stato spostato nella classe base AnimationMixer

✔️

GH-80813

La proprietà audio_max_polyphony è stata spostata nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_root_motion_position è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_root_motion_position_accumulator è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_root_motion_rotation è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_root_motion_rotation_accumulator è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_root_motion_scale è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

Il metodo get_root_motion_scale_accumulator è stato spostato nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà process_callback è stata rinominata in callback_mode_process e spostata nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà root_motion_track è stata spostata nella classe base AnimationMixer

✔️

✔️

✔️

GH-80813

La proprietà tree_root cambia tipo da AnimationNode a AnimationRootNode

✔️

GH-80813

Nodi GUI

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

PopupMenu

Il metodo add_icon_shortcut aggiunge un nuovo parametro facoltativo allow_echo

✔️

✔️

✔️

GH-36493

Il metodo add_shortcut aggiunge un nuovo parametro facoltativo allow_echo

✔️

✔️

✔️

GH-36493

Il metodo clear aggiunge un nuovo parametro facoltativo free_submenus

✔️

✔️

✔️

GH-79965

RichTextLabel

Il metodo add_image aggiunge nuovi parametri facoltativi key, pad, tooltip e size_in_percent

✔️

✔️

✔️

GH-80410

Renderer

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

ImporterMesh

Il metodo add_surface cambia il tipo del parametro flags da uint32 a uint64

✔️

✔️

✔️

GH-81138

Il metodo get_surface_format cambia il tipo restituito da uint32 a uint64

✔️

GH-81138

MeshDataTool

Il metodo commit_to_surface aggiunge un nuovo parametro facoltativo compression_flags

✔️

✔️

✔️

GH-81138

Il metodo get_format cambia il tipo restituito da uint32 a uint64

✔️

GH-81138

RenderingDevice

Il campo di enumerazione BarrierMask.BARRIER_MASK_RASTER cambia il suo valore da 1 a 9

✔️

✔️

✔️

GH-79911

Il campo di enumerazione BarrierMask.BARRIER_MASK_ALL_BARRIERS cambia il suo valore da 7 a 32767

✔️

✔️

✔️

GH-79911

Il campo di enumerazione BarrierMask.BARRIER_MASK_NO_BARRIER cambia il suo valore da 8 a 32768

✔️

✔️

✔️

GH-79911

Il metodo shader_create_from_bytecode aggiunge un nuovo parametro facoltativo placeholder_rid

✔️

✔️

✔️

GH-79606

Il metodo shader_get_vertex_input_attribute_ask cambia il tipo restituito da uint32 a uint64

✔️

GH-81138

SurfaceTool

Il metodo commit cambia il tipo del parametro flags da uint32 a uint64

✔️

✔️

✔️

GH-81138

Testo

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

Font

Il metodo set_fallbacks è stato sostituito dalla proprietà fallbacks

✔️

GH-78266

Il metodo get_fallbacks è stato sostituito dalla proprietà fallbacks

✔️

GH-78266

Il metodo find_variation aggiunge nuovi parametri facoltativi spacing_top, spacing_bottom, spacing_space e spacing_glyph

✔️

✔️

✔️

GH-80954

GraphEdit

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

GraphEdit

La proprietà arrange_nodes_button_hidden è stata rinominata in show_arrange_button

✔️

✔️

GH-81582

La proprietà get_zoom_hbox è stata rinominata in get_menu_hbox

✔️

✔️

GH-79308

La proprietà snap_distance è stata rinominata in snapping_distance

✔️

✔️

GH-79308

La proprietà use_snap è stata rinominata in snapping_enabled

✔️

✔️

GH-79308

GraphNode

Proprietà comment rimossa

GH-79307

Il segnale close_request è stato rinominato in delete_request e spostato nella classe base GraphElement

✔️

✔️

GH-79311

La proprietà draggable è stata spostata nella classe base GraphElement

✔️

✔️

✔️

GH-79311

La proprietà draggable è stata spostata nella classe base GraphElement

✔️

✔️

✔️

GH-79311

Il segnale dragged è stato spostato nella classe base GraphElement

✔️

GH-79311

Metodo get_connection_input_color rimosso

GH-79311

Metodo get_connection_input_count rimosso

GH-79311

Metodo get_connection_input_height rimosso

GH-79311

Metodo get_connection_input_position rimosso

GH-79311

Metodo get_connection_input_slot rimosso

GH-79311

Metodo get_connection_input_type rimosso

GH-79311

Metodo get_connection_output_color rimosso

GH-79311

Metodo get_connection_output_count rimosso

GH-79311

Metodo get_connection_output_height rimosso

GH-79311

Metodo get_connection_output_position rimosso

GH-79311

Metodo get_connection_output_slot rimosso

GH-79311

Metodo get_connection_output_type rimosso

GH-79311

Proprietà language rimossa

GH-79311

Il segnale node_deselected è stato spostato nella classe base GraphElement

✔️

✔️

✔️

GH-79311

Il segnale node_selected è stato spostato nella classe base GraphElement

✔️

✔️

✔️

GH-79311

Proprietà overlay rimossa

GH-79311

La proprietà position_offset è stata spostata nella classe base GraphElement

✔️

✔️

✔️

GH-79311

Il segnale position_offset_changed è stato spostato nella classe base GraphElement

✔️

✔️

✔️

GH-79311

Il segnale raise_request è stato spostato nella classe base GraphElement

✔️

✔️

✔️

GH-79311

La proprietà resizable è stata spostata nella classe base GraphElement

✔️

✔️

✔️

GH-79311

Il segnale resize_requested è stato spostato nella classe base GraphElement

✔️

GH-79311

La proprietà selectable è stata spostata nella classe base GraphElement

✔️

✔️

✔️

GH-79311

La proprietà selected è stata spostata nella classe base GraphElement

✔️

✔️

✔️

GH-79311

Proprietà show_close rimossa

GH-79311

Proprietà text_direciton rimossa

GH-79311

TileMap

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

TileMap

La proprietà cell_quadrant_size è stata rinominata in rendering_quadrant_size

✔️

✔️

GH-81070

XR

Cambiamento

Compatibili con GDScript

Compatibili con eseguibili C#

Compatibili con codice sorgente C#

Introdotti

XRInterface

La proprietà environment_blend_mode è stata aggiunta

✔️

GH-81561

Nota

Questo cambiamento interrompe la compatibilità in C# perché la nuova proprietà è in conflitto con il nome di un enumerazione esistente e il generatore di binding C# dà priorità alle proprietà, quindi l'enumerazione è stata rinominata da EnvironmentBlendMode a EnvironmentBlendModeEnum.