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.1에서 Godot 4.2로 업그레이드

4.1로 제작된 대부분의 게임과 앱의 경우 4.2로 마이그레이션하는 것이 상대적으로 안전합니다. 이 페이지에서는 프로젝트를 마이그레이션할 때 주의해야 할 모든 것을 다루려고 합니다.

깨는 변경사항

4.1에서 4.2로 마이그레이션하는 경우 여기에 나열된 주요 변경 사항이 영향을 미칠 수 있습니다. 변경 사항은 영역/시스템별로 그룹화됩니다.

경고

Mesh 리소스 형식은 4.2에서 `정점 및 속성 압축 <https://github.com/godotengine/godot/pull/81138>`__을 허용하도록 변경되었습니다. 이를 통해 특히 모바일과 같이 메모리 대역폭이 제한된 플랫폼에서 렌더링 성능이 향상됩니다.

Godot 4.0-4.1 메시 형식을 로드하는 것은 여전히 가능하지만, 이전 Godot 버전에서는 Godot 4.2 메시 형식을 로드하는 것이 **불가능**합니다. 4.2 이전 버전으로 만들어진 Godot 프로젝트를 열 때, 두 가지 옵션을 제공하는 업그레이드 대화 상자가 나타날 수 있습니다:

  • 다시 시작 및 업그레이드: 프로젝트의 모든 메시에 대한 메시 형식을 업그레이드하고 결과를 디스크에 저장합니다. 이 옵션을 선택하면 프로젝트가 4.2 이전의 Godot 버전으로 다운그레이드되는 것을 방지할 수 있습니다. 버전 관리 시스템을 설정하고 이 옵션을 선택하기 전에 변경 사항을 푸시하세요!

  • 업그레이드 전용: 메시 형식을 디스크에 쓰지 않고 메모리 내에서 업그레이드합니다. 이를 통해 나중에 필요한 경우 프로젝트를 4.2 이전 Godot 버전으로 다운그레이드할 수 있습니다. 단점은 프로젝트가 로드될 때마다 메시 형식을 업그레이드해야 하기 때문에 프로젝트 로드가 매번 느려진다는 것입니다. 이렇게 늘어난 로딩 시간은 내보낸 프로젝트에도 영향을 미칩니다. 메시 리소스의 수와 복잡성에 따라 로딩 시간이 얼마나 영향을 받는지 결정됩니다.

이 대화상자가 나타나지 않으면 편집기 상단에서 **프로젝트 > 도구 > 메쉬 표면 업그레이드…**를 사용하세요.

이 문서에서는 각 주요 변경 사항이 GDScript에 영향을 미치는지 여부와 C# 주요 변경 사항이 바이너리 호환 또는 *소스 호환*인지 여부를 나타냅니다.

  • 바이너리 호환 - 기존 바이너리는 재컴파일 없이 성공적으로 로드 및 실행되며 런타임 동작은 변경되지 않습니다.

  • 소스 호환 가능 - 소스 코드는 Godot를 업그레이드할 때 변경 없이 성공적으로 컴파일됩니다.

코어

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

노드

상수 ``NOTIFICATION_NODE_RECACHE_REQUESTED``가 제거되었습니다.

✔️

GH-84419

애니메이션

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

AnimationPlayer

메서드 ``_post_process_key_value``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``add_animation_library``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``advance``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

시그널 ``animation_finished``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

GH-80813

시그널 ``animation_started``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

GH-80813

시그널 ``animation_libraries_updated``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

시그널 ``animation_list_changed``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

audio_max_polyphony 속성이 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

시그널 ``caches_cleared``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``clear_caches``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``find_animation``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``find_animation_library``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_animation``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_animation_library``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_animation_library_list``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_animation_list``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``has_animation``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``has_animation_library``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

속성 ``method_call_mode``가 ``callback_mode_method``로 이름이 바뀌고 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-80813

속성 ``playback_active``가 ``active``로 이름이 바뀌고 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-80813

속성 ``playback_process_mode``가 ``callback_mode_process``로 이름이 바뀌고 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-80813

메서드 ``remove_animation_library``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``rename_animation_library``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

reset_on_save 속성이 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

root_node 속성이 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``set_reset_on_save_enabled``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

seek 메소드는 새로운 update_only 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

✔️

GH-80813

애니메이션

메서드 ``_post_process_key_value``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

active 속성이 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``advance``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

시그널 ``animation_finished``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

GH-80813

시그널 ``animation_started``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

GH-80813

audio_max_polyphony 속성이 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_root_motion_position``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_root_motion_position_accumulator``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_root_motion_rotation``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_root_motion_rotation_accumulator``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_root_motion_scale``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

메서드 ``get_root_motion_scale_accumulator``가 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

속성 ``process_callback``가 ``callback_mode_process``로 이름이 바뀌고 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-80813

root_motion_track 속성이 기본 클래스 ``AnimationMixer``로 이동되었습니다.

✔️

✔️

✔️

GH-80813

tree_root 속성은 유형을 ``AnimationNode``에서 ``AnimationRootNode``로 변경합니다.

✔️

GH-80813

노드 만들기

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

팝업메뉴

add_icon_shortcut 메소드는 새로운 allow_echo 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-36493

add_shortcut 메소드는 새로운 allow_echo 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-36493

clear 메소드는 새로운 free_submenus 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-79965

ScoreLabel

add_image 메소드는 새로운 key, pad, tooltipsize_in_percent 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

✔️

GH-80410

렌더링

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

JavaScript

메소드 add_surface``는 ``flags 매개변수 유형을 ``uint32``에서 ``uint64``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-81138

메서드 ``get_surface_format``는 반환 유형을 ``uint32``에서 ``uint64``로 변경합니다.

✔️

GH-81138

결과 시험하기

commit_to_surface 메소드는 새로운 compression_flags 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

✔️

GH-81138

메서드 ``get_format``는 반환 유형을 ``uint32``에서 ``uint64``로 변경합니다.

✔️

GH-81138

렌더링

열거형 필드 ``BarrierMask.BARRIER_MASK_RASTER``는 값을 ``1``에서 ``9``로 변경합니다.

✔️

✔️

✔️

GH-79911

열거형 필드 ``BarrierMask.BARRIER_MASK_ALL_BARRIERS``는 값을 ``7``에서 ``32767``로 변경합니다.

✔️

✔️

✔️

GH-79911

열거형 필드 ``BarrierMask.BARRIER_MASK_NO_BARRIER``는 값을 ``8``에서 ``32768``로 변경합니다.

✔️

✔️

✔️

GH-79911

shader_create_from_bytecode 메소드는 새로운 placeholder_rid 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

✔️

GH-79606

메서드 ``shader_get_vertex_input_attribute_ask``는 반환 유형을 ``uint32``에서 ``uint64``로 변경합니다.

✔️

GH-81138

결과 시험하기

메소드 commit``는 ``flags 매개변수 유형을 ``uint32``에서 ``uint64``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-81138

텍스처

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

안개:

메소드 set_fallbacks``가 ``fallbacks 속성으로 대체되었습니다.

✔️

GH-78266

메소드 get_fallbacks``가 ``fallbacks 속성으로 대체되었습니다.

✔️

GH-78266

find_variation 메소드는 새로운 spacing_top, spacing_bottom, spacing_spacespacing_glyph 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

✔️

GH-80954

그래프편집

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

그래프편집

속성 ``arrange_nodes_button_hidden``가 ``show_arrange_button``로 이름이 변경되었습니다.

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-81582

메소드 ``get_zoom_hbox``가 ``get_menu_hbox``로 이름이 변경되었습니다.

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-79308

속성 ``snap_distance``가 ``snapping_distance``로 이름이 변경되었습니다.

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-79308

속성 ``use_snap``가 ``snapping_enabled``로 이름이 변경되었습니다.

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-79308

GraphNode

comment 속성이 제거되었습니다.

GH-79307

시그널 ``close_request``가 ``delete_request``로 이름이 바뀌고 기본 클래스 ``GraphElement``로 이동되었습니다.

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-79311

draggable 속성이 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

draggable 속성이 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

시그널 ``dragged``가 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

GH-79311

get_connection_input_color 방법이 제거되었습니다.

GH-79311

get_connection_input_count 방법이 제거되었습니다.

GH-79311

get_connection_input_height 방법이 제거되었습니다.

GH-79311

get_connection_input_position 방법이 제거되었습니다.

GH-79311

get_connection_input_slot 방법이 제거되었습니다.

GH-79311

get_connection_input_type 방법이 제거되었습니다.

GH-79311

get_connection_output_color 방법이 제거되었습니다.

GH-79311

get_connection_output_count 방법이 제거되었습니다.

GH-79311

get_connection_output_height 방법이 제거되었습니다.

GH-79311

get_connection_output_position 방법이 제거되었습니다.

GH-79311

get_connection_output_slot 방법이 제거되었습니다.

GH-79311

get_connection_output_type 방법이 제거되었습니다.

GH-79311

language 속성이 제거되었습니다.

GH-79311

시그널 ``node_deselected``가 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

시그널 ``node_selected``가 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

overlay 속성이 제거되었습니다.

GH-79311

position_offset 속성이 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

시그널 ``position_offset_changed``가 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

시그널 ``raise_request``가 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

resizable 속성이 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

시그널 ``resize_request``가 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

GH-79311

selectable 속성이 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

selected 속성이 기본 클래스 ``GraphElement``로 이동되었습니다.

✔️

✔️

✔️

GH-79311

show_close 속성이 제거되었습니다.

GH-79311

text_direction 속성이 제거되었습니다.

GH-79311

타일맵

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

타일맵

속성 ``cell_quadrant_size``가 ``rendering_quadrant_size``로 이름이 변경되었습니다.

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-81070

XR

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

Godot 인터페이스

속성 ``environment_blend_mode``가 추가되었습니다.

✔️

GH-81561

참고

이 변경으로 인해 새 속성이 기존 열거형의 이름과 충돌하고 C# 바인딩 생성기가 속성에 우선 순위를 부여하므로 C#의 호환성이 중단됩니다. 따라서 열거형 유형의 이름이 ``EnvironmentBlendMode``에서 ``EnvironmentBlendModeEnum``로 바뀌었습니다.