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

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

깨는 변경사항

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

경고

`new Google Play requirements`_를 지원하려면 이제 Android에서 C# 프로젝트를 Android로 내보낼 때 .NET 9를 대상으로 해야 합니다. 다른 플랫폼에서는 계속해서 .NET 8을 최소 필수 버전으로 사용하지만 최신 버전이 지원되고 권장됩니다.

프로젝트에서 C#을 사용하고 Android로 내보내려면 프로젝트를 .NET 9로 업그레이드해야 합니다(지침은 Upgrading to a new .NET version 참조).

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

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

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

코어

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

JSONRPC

set_scope 메소드가 ``set_method``로 대체되었습니다.

|❌ 스텁 포함|

|❌ 스텁 포함|

GH-104890

노드

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

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-106848

메소드 set_name``는 ``name 매개변수 유형을 ``String``에서 ``StringName``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-76560

렌더링

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

Server

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-98194

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-98194

렌더링

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-105570

Server

애니메이션 제어하기

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104269

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

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104269

참고

C#에서 열거형 ``RenderingDevice.Features``는 바인딩 생성기가 열거형 접두사를 감지하는 방식으로 인해 호환성을 손상시킵니다. 새 멤버가 `GH-103941`_의 열거형에 추가되어 열거형 멤버 ``Address``의 이름이 ``BufferDeviceAddress``로 변경되었습니다.

GLTF

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

GLTF접속자

byte_offset 속성은 유형 메타데이터를 ``int32``에서 ``int64``로 변경합니다.

✔️

GH-106220

component_type 속성은 유형을 ``int``에서 ``GLTFAccessor::GLTFComponentType``로 변경합니다.

✔️

GH-106220

count 속성은 유형 메타데이터를 ``int32``에서 ``int64``로 변경합니다.

✔️

GH-106220

sparse_count 속성은 유형 메타데이터를 ``int32``에서 ``int64``로 변경합니다.

✔️

GH-106220

sparse_indices_byte_offset 속성은 유형 메타데이터를 ``int32``에서 ``int64``로 변경합니다.

✔️

GH-106220

sparse_indices_component_type 속성은 유형을 ``int``에서 ``GLTFAccessor::GLTFComponentType``로 변경합니다.

✔️

GH-106220

sparse_values_byte_offset 속성은 유형 메타데이터를 ``int32``에서 ``int64``로 변경합니다.

✔️

GH-106220

GLTFBufferView

byte_length 속성은 유형 메타데이터를 ``int32``에서 ``int64``로 변경합니다.

✔️

GH-106220

byte_offset 속성은 유형 메타데이터를 ``int32``에서 ``int64``로 변경합니다.

✔️

GH-106220

byte_stride 속성은 유형 메타데이터를 ``int32``에서 ``int64``로 변경합니다.

✔️

GH-106220

참고

유형 메타데이터를 변경한 결과 C# 바인딩은 유형을 ``int``(32바이트)에서 ``long``(64바이트)로 변경했습니다.

텍스처

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

캔버스 변형

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

안개:

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

ScoreLabel

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-76829

add_image 메소드는 size_in_percent 매개변수를 width_in_percent``height_in_percent``로 대체했습니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-107347

push_strikethrough 메소드는 선택적 color 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-106300

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-76829

push_underline 메소드는 선택적 color 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-106300

update_image 메소드는 size_in_percent 매개변수를 width_in_percent``height_in_percent``로 대체했습니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-107347

텍스처

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

텍스처

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

텍스처

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104872

TreeItem

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-76829

텍스처 압축:

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

GH-104872

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

GH-104872

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

GH-104872

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

GH-104872

XR

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

Expression Node(표현식 노드)

메소드 register_composition_layer_provider``는 ``extension 매개변수 유형을 ``OpenXRExtensionWrapperExtension``에서 ``OpenXRExtensionWrapper``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104087

메소드 register_projection_views_extension``는 ``extension 매개변수 유형을 ``OpenXRExtensionWrapperExtension``에서 ``OpenXRExtensionWrapper``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104087

메소드 unregister_composition_layer_provider``는 ``extension 매개변수 유형을 ``OpenXRExtensionWrapperExtension``에서 ``OpenXRExtensionWrapper``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104087

메소드 unregister_projection_views_extension``는 ``extension 매개변수 유형을 ``OpenXRExtensionWrapperExtension``에서 ``OpenXRExtensionWrapper``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-104087

OpenXRBindingModifierEditor

OpenXRBindingModifierEditor 유형이 API 유형을 Core에서 Editor로 변경했습니다.

GH-103869

OpenXRInteractionProfileEditor

OpenXRInteractionProfileEditor 유형이 API 유형을 Core에서 Editor로 변경했습니다.

GH-103869

OpenXRInteractionProfileEditorBase

OpenXRInteractionProfileEditorBase 유형이 API 유형을 Core에서 Editor로 변경했습니다.

GH-103869

참고

클래스 OpenXRBindingModifierEditor, OpenXRInteractionProfileEditor``OpenXRInteractionProfileEditorBase``는 편집기에서만 사용할 수 있습니다. 편집기 외부에서 사용하면 컴파일 오류가 발생합니다.

C#에서 이는 유형이 GodotSharp 어셈블리에서 GodotSharpEditor 어셈블리로 이동되었음을 의미합니다. 이러한 유형을 사용하는 코드를 #if TOOLS 블록에 래핑하여 내보낸 게임에 포함되지 않도록 하세요.

이 변경 사항은 4.4.1에도 백포트되었습니다.

편집기 플러그인

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

EditorExportPlatform

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-71542

EditorUndoRedoManager

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-106121

EditorExportPlatformExtension

메서드 ``_get_option_icon``는 반환 유형을 ``ImageTexture``에서 ``Texture2D``로 변경합니다.

✔️

GH-108825

행동 변화

4.5에서는 일부 동작 변경 사항이 도입되었으며, 이로 인해 프로젝트를 조정해야 할 수도 있습니다.

타일맵

TileMapLayer.get_coords_for_body_rid() 값이 높을수록 이 함수의 정확도가 떨어집니다. 4.4 및 이전 버전과 같은 정확한 셀 좌표를 얻으려면 :ref:`TileMapLayer.physics_quadrant_size <class_TileMapLayer_property_physics_quadrant_size>`를 ``1``로 설정해야 물리 청킹이 비활성화됩니다.

3D 모델 가져오기

뼈대 계층 구조(GH-104184) 내에서 비관절 노드를 올바르게 처리하기 위해 3D 모델 가져오기 기능이 수정되었습니다. 호환성을 유지하기 위해 기본 동작은 이전과 동일한 동작으로 기존 파일을 가져오는 것입니다(GH-107352). 새로운 .gltf, .glb, .blend.fbx 파일(해당 .import 파일 없음)은 새로운 동작으로 가져옵니다. 그러나 기존 파일의 경우 새 동작을 사용하려면 가져오기 도크 하단에 있는 "버전 이름 지정" 옵션을 변경해야 합니다.

../../_images/gltf_naming_version.webp

코어

참고

:ref:`Resource.duplicate(true) <class_Resource_method_duplicate>`(심층 복제 수행)는 이제 호출된 리소스 파일 내부의 리소스만 복제합니다. 4.4에서는 외부 리소스를 포함한 모든 것이 복제되었습니다. 다른 외부 리소스에 대한 참조가 포함된 리소스를 심층 복제한 경우 해당 외부 리소스는 더 이상 복제되지 않습니다. 이전 동작을 유지하려면 대신 :ref:`Resource.duplicate_deep(DEEP_DUPLICATE_ALL) <class_Resource_method_duplicate_deep>`을 호출해야 합니다.

참고

ProjectSettings.add_property_info() <class_ProjectSettings_method_add_property_info>`는 이제 사전 매개변수에 누락된 키나 유효하지 않은 키가 있는 경우 경고를 인쇄합니다. 가장 중요한 점은 이 키가 사용되지 않으므로 ``usage` 키가 전달될 때 경고가 표시된다는 점입니다. 4.5 이전에도 이런 현상이 있었지만 대신 조용히 무시되었습니다. 참고로 속성 사용 정보를 올바르게 설정하려면 ProjectSettings.set_as_basic(), ProjectSettings.set_restart_if_changed() 대신.

참고

C#에서 이제 ``StringExtensions.PathJoin``는 원래 문자열이 비어 있거나 추가된 경로가 경로 구분 기호(GH-105281)로 시작하는 경우 추가 경로 구분 기호를 추가하지 않습니다.

참고

C#에서 ``StringExtensions.GetExtension``는 이제 원래 문자열에 확장명(GH-108041)이 포함되지 않은 경우 원래 문자열 대신 빈 문자열을 반환합니다.

참고

C#에서 Quaternion(Vector3, Vector3) 생성자는 이제 두 입력 벡터 사이의 가장 짧은 호를 나타내는 쿼터니언을 올바르게 생성합니다. 이전에는 특정 입력(GH-107618)에 대해 잘못된 값을 반환했습니다.

물리

참고

3D 물리 엔진이 Jolt Physics로 설정되면 physics/jolt_physics_3d/simulation/areas_detect_static_bodies 프로젝트 설정이 제거되었기 때문에(GH-105746) 기본적으로 보고된 Area3D``와 정적 몸체 사이에 항상 겹침이 발생합니다. 여전히 이러한 겹침을 무시하려면 ``Area3D 또는 정적 몸체의 충돌 마스크나 레이어를 대신 변경해야 합니다.

텍스처

참고

GDScript에서는 RichTextLabel::add_imageRichTextLabel::update_image 함수에 대한 호출이 계속 작동하지만 size_in_percent 인수는 이제 ``width_in_percent``의 값으로 사용되고 ``height_in_percent``는 기본적으로 ``false``(GH-107347)로 설정됩니다. 이전 동작을 복원하려면 ``height_in_percent``를 ``size_in_percent``로 전달한 것과 동일한 값으로 명시적으로 설정할 수 있습니다.