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

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

깨는 변경사항

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

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

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

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

코어

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

파일 액세스

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-98918

메서드 ``store_8``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_16``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_32``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_64``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_buffer``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_csv_line``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_double``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_float``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_half``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_line``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_pascal_string``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_real``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_string``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

메서드 ``store_var``는 반환 유형을 ``void``에서 ``bool``로 변경합니다.

✔️

✔️

GH-78289

OS

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-94434

read_string_from_stdin 메소드는 새로운 buffer_size 매개변수 [#f1]_를 추가합니다.

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-91201

결과

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-95212

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-95212

예제

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-93605

번역서버

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-98972

내보내기 설정

경고

@export_file``의 동작은 Godot 4.4에서 변경되었습니다. 인스펙터에서 값을 할당하면 이제 경로가 기존 ``res:// 경로(GH-97912) 대신 uid:// 참조로 저장되고 반환됩니다. 이는 **주요 변경**이며 스크립트 또는 직렬화된 파일에 res:// 기반 경로가 필요한 경우 문제가 발생할 수 있습니다.

예를 들어, 내보낸 파일 배열에는 이제 uid://res:// 경로가 혼합되어 포함될 수 있습니다. 특히 인스펙터에서 부분적으로 편집된 경우 더욱 그렇습니다.

4.4에서 res:// 형식을 유지하는 유일한 방법은 텍스트 편집기에서 .tscn 또는 .tres 파일을 **수동으로 편집**하는 것입니다. Godot 4.5부터 새로운 주석 @export_file_path``를 사용하여 이전 동작을 명시적으로 유지하고 원시 ``res:// 경로를 내보낼 수 있습니다.

노드 만들기

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

ScoreLabel

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-99481

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-101482

그래프편집

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-97449

시그널 frame_rect_changed``는 ``new_rect 매개변수 유형을 ``Vector2``에서 ``Rect2``로 변경합니다.

GH-102796

물리

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

노드

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-94684

렌더링

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

GPUParticles2D

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-92089

GPUParticles3D

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-92089

GPUParticles2D

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-92089

GPUParticles3D

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-92089

렌더링

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-90993

draw_list_begin 메소드는 많은 매개변수를 제거합니다.

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-98670

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-100062

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-100062

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-100062

Server

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-99455

셰이더

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

✔️

GH-95126

메소드 set_default_texture_parameter``는 ``texture 매개변수 유형을 ``Texture2D``에서 ``Texture``로 변경합니다.

✔️

✔️

GH-95126

doc_visual_shader_plugins

cube_map 속성은 유형을 ``Cubemap``에서 ``TextureLayered``로 변경합니다.

✔️

GH-95126

doc_visual_shader_plugins

texture_array 속성은 유형을 ``Texture2DArray``에서 ``TextureLayered``로 변경합니다.

✔️

GH-95126

참고

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

편집기 플러그인

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

Godot 인터페이스

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-90057

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-94323

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-94323

Godot 인터페이스

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

GH-101531

doc_inspector_plugins

_parse_file 메서드는 반환 유형을 Array``로 변경하고 ``msgidsmsgids_context_plural 매개 변수를 제거합니다.

GH-99297

참고

_get_import_flags 메소드는 엔진에서 사용된 적이 없습니다. 사용자가 엔진 동작에 영향을 미치는 이 기능에 의존할 방법이 없기 때문에 호환성 손상에도 불구하고 제거되었습니다.

행동 변화

코어

참고

이제 Curve 리소스는 해당 값 범위를 적용하므로 포인트가 기본 [0, 1] 범위를 벗어나는 경우 min_value``max_value``를 변경해야 합니다.

렌더링

참고

VisualShaderNodeVec4Constant 셰이더 노드의 입력 유형이 ``Vector4``로 변경되었습니다. 사용자는 상수의 값을 다시 생성해야 합니다.

CSG

참고

이제 CSG 구현에서는 Emmett Lalish의 Manifold 라이브러리(GH-94321)를 사용합니다. 새로운 구현은 다양한 정의와 더욱 일치하며 여러 버그 및 안정성 문제를 수정합니다. 결과적으로 비다양체 메시는 더 이상 지원되지 않습니다. 쿼드 또는 평면과 같은 비다양체 형상을 렌더링하는 데 ``MeshInstance3D``를 사용할 수 있습니다.

Android

참고

Android 센서 이벤트는 더 이상 기본적으로 활성화되지 않습니다(GH-94799). 센서 이벤트를 사용하는 프로젝트는 필요에 따라 **입력 장치 > 센서**의 프로젝트 설정에서 활성화할 수 있습니다.