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.2에서 Godot 4.3으로 업그레이드

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

깨는 변경사항

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

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

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

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

GDExtension

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

Expression Node(표현식 노드)

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

GH-88418

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

GH-88418

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

GH-88418

기본적으로 이러한 메서드를 유용한 방식으로 사용하는 것이 불가능했기 때문에 이러한 메서드는 제거되었습니다. GDExtension을 올바르게 로드 및 언로드하려면 대신 GDExtensionManager::load_extension``GDExtensionManager::unload_extension``를 사용하세요.

애니메이션

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

애니메이션

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

✔️

|✔️ 호환 가능|

✔️

GH-86629

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

✔️

|✔️ 호환 가능|

✔️

GH-86629

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

✔️

|✔️ 호환 가능|

✔️

GH-86629

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

✔️

|✔️ 호환 가능|

✔️

GH-86629

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

✔️

|✔️ 호환 가능|

✔️

GH-86629

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

✔️

|✔️ 호환 가능|

✔️

GH-86661

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

✔️

|✔️ 호환 가능|

✔️

GH-92861

애니메이션

메소드 _post_process_key_value``는 ``object 매개변수 유형을 ``Object``에서 ``uint64``로 변경합니다.

✔️

GH-86687

스켈레톤

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

✔️

✔️

GH-88791

시그널 ``bone_pose_changed``가 ``skeleton_updated``로 대체되었습니다.

GH-90575

BoneAttachment3D

on_bone_pose_update 메소드가 ``on_skeleton_update``로 대체되었습니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-90575

노드 만들기

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

수락 대화상자

메소드 register_text_enter``는 매개변수 ``line_edit 유형을 ``Control``에서 ``LineEdit``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-89419

메소드 remove_button``는 매개변수 ``button 유형을 ``Control``에서 ``Button``로 변경합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-89419

물리

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

PhysicsShapeQueryParameters3D

motion 속성은 유형을 ``Vector2``에서 ``Vector3``로 변경합니다.

GH-85393

참고

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

렌더링

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

렌더링

열거형 필드 ``FinalAction.FINAL_ACTION_CONTINUE``는 값을 ``2``에서 ``0``로 변경합니다.

✔️

GH-84976

열거형 필드 ``InitialAction.INITIAL_ACTION_CLEAR``는 값을 ``0``에서 ``1``로 변경합니다.

✔️

GH-84976

열거형 필드 ``InitialAction.INITIAL_ACTION_CLEAR_REGION_CONTINUE``는 값을 ``2``에서 ``1``로 변경합니다.

✔️

GH-84976

열거형 필드 ``InitialAction.INITIAL_ACTION_CONTINUE``는 값을 ``5``에서 ``0``로 변경합니다.

✔️

GH-84976

열거형 필드 ``InitialAction.INITIAL_ACTION_DROP``는 값을 ``4``에서 ``2``로 변경합니다.

✔️

GH-84976

열거형 필드 ``InitialAction.INITIAL_ACTION_KEEP``는 값을 ``3``에서 ``0``로 변경합니다.

✔️

GH-84976

buffer_clear 메소드는 post_barrier 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

buffer_update 메소드는 post_barrier 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

compute_list_begin 메소드는 allow_draw_overlap 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

compute_list_end 메소드는 post_barrier 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

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

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

draw_list_end 메소드는 post_barrier 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

texture_clear 메소드는 post_barrier 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

texture_copy 메소드는 post_barrier 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

texture_resolve_multisample 메소드는 post_barrier 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

texture_update 메소드는 post_barrier 매개변수를 제거합니다.

✔️

|✔️ 호환 가능|

|✔️ 호환 가능|

GH-84976

Server

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

✔️

|✔️ 호환 가능|

✔️

GH-84792

Server

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

✔️

|✔️ 호환 가능|

✔️

GH-80214

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

✔️

|✔️ 호환 가능|

✔️

GH-80214

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

✔️

|✔️ 호환 가능|

✔️

GH-80214

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

✔️

|✔️ 호환 가능|

✔️

GH-80214

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

✔️

|✔️ 호환 가능|

✔️

GH-80214

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

✔️

|✔️ 호환 가능|

✔️

GH-80214

참고

RenderingDevice.InitialActionRenderingDevice.FinalAction``의 열거형 필드 값이 변경되었지만 이를 사용하는 유일한 메서드(``draw_list_begin)에는 이전 값을 지원하는 호환성 메서드가 추가되었습니다. 따라서 실제로는 호환성이 깨지지 않습니다.

참고

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

텍스처

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

안개:

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

✔️

|✔️ 호환 가능|

✔️

GH-87668

ScoreLabel

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

✔️

|✔️ 호환 가능|

✔️

GH-89024

텍스처

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

✔️

|✔️ 호환 가능|

✔️

GH-90732

텍스처 압축:

_shaped_text_get_word_breaks 메소드는 새로운 skip_grapheme_flags 매개변수를 추가합니다.

GH-90732

오디오

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

AudioStreamPlayback다성음악

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

✔️

|✔️ 호환 가능|

✔️

GH-91382

타일맵

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

결과 시험하기

get_navigation_polygon 메소드는 새로운 flip_h, flip_vtranspose 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

✔️

GH-84660

get_occluder 메소드는 새로운 flip_h, flip_vtranspose 선택적 매개변수를 추가합니다.

✔️

|✔️ 호환 가능|

✔️

GH-84660

XR

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

Godot 인터페이스

메서드 ``get_input_source_tracker``는 반환 유형을 ``XRPositionalTracker``에서 ``XRControllerTracker``로 변경합니다.

✔️

✔️

GH-90645

Server

메서드 ``get_tracker``는 반환 유형을 ``XRPositionalTracker``에서 ``XRTracker``로 변경합니다.

✔️

GH-90645

편집기 플러그인

변경

GDScript

C# 바이너리 호환

C# 소스 호환

소개

doc_inspector_plugins

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

✔️

|✔️ 호환 가능|

✔️

GH-92322

플러그인:

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

✔️

|✔️ 호환 가능|

✔️

GH-88081

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

✔️

|✔️ 호환 가능|

✔️

GH-88081

EditorSceneFormatImporterFBX

``EditorSceneFormatImporterFBX2GLTF``로 이름이 변경된 유형

GH-81746

행동 변화

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

코어

참고

스크립트된 개체 및 형식화된 배열(GH-78219)의 직렬화와 관련된 일부 문제를 해결하기 위해 이진 직렬화가 수정되었습니다. 이로 인해 스크립트 인코딩/디코딩과의 호환성이 중단됩니다.

참고

``PackedByteArray``는 이제 저장을 위해 보다 컴팩트한 base64 인코딩을 사용할 수 있습니다. 하지만 호환성이 손상된다는 단점이 있습니다. 이는 이전 버전의 Godot가 4.3(GH-89186)에 의해 저장된 리소스를 열 수 없다는 것을 의미합니다.

호환성을 최대화하기 위해 이 새로운 저장소 형식은 현재 대규모 PackedByteArray가 포함된 리소스 및 장면에 대해서만 활성화됩니다. 이 새로운 형식에 대한 지원은 이전 버전의 Godot에 대한 패치 업데이트에도 추가될 것입니다. 지원되는 모든 Godot 버전이 새로운 형식을 읽을 수 있게 되면, 우리는 점차적으로 호환성 측정을 중단하고 모든 리소스와 장면이 새로운 저장 형식을 사용하도록 할 것입니다.

참고

C#에서는 Transform3D.InterpolateWith 구현이 올바른 작업 순서를 사용하도록 수정되어 크기 조정 전에 회전을 적용합니다(GH-89843).

참고

C#에서는 지원 벡터(GH-88919)를 올바르게 반환하도록 Aabb.GetSupport 구현이 수정되었습니다.

참고

C#에서 변형 유형의 ToString 구현은 이제 기본적으로 ``InvariantCulture``(GH-89547)를 사용하도록 설정됩니다. 즉, ``Vector2(1.2, 3.4)``는 프로그램이 실행되는 운영 체제의 언어와 관계없이 ``.``를 소수 구분 기호로 사용하여 형식화됩니다.

애니메이션

참고

``AnimationMixer``는 캡처 모드를 이전보다 훨씬 더 잘 작동하는 새로운 캡처 기능으로 대체했습니다. 이는 기존 캐시(GH-86715)를 대체합니다.

참고

AnimationNode``에는 의미론적 시간 정보를 검색하기 위한 프로세스가 재작업되었습니다. 이렇게 하면 시간 관련 동작이 예상대로 작동하지만 혼합 동작이 변경됩니다. ``_process 가상 메서드 구현자는 이 메서드가 현재 더 이상 사용되지 않으며 향후 새로운 메서드(GH-87171)로 대체된다는 점에도 유의해야 합니다.

Godot의 설계 선택에 대한 자세한 내용은 이 글 에서 확인할 수 있습니다.

노드 만들기

참고

기본 글꼴 외곽선 색상이 흰색에서 검정색(GH-54641)으로 변경되었습니다.

참고

auto_translate 속성은 현재 Node``(`GH-87530`_)에 있는 ``auto_translate_mode 속성을 위해 더 이상 사용되지 않습니다. auto_translate_mode``의 기본값은 ``AUTO_TRANSLATE_INHERIT``입니다. 이는 노드가 상위 항목에서 ``auto_translate_mode 값을 상속함을 의미합니다. 즉, auto_translate 속성이 true``로 설정된 기존 노드는 ``auto_translate 속성이 ``false``로 설정된 노드의 자식 노드인 경우 더 이상 변환되지 않을 수 있습니다.

다중 패턴(Multiple patterns)

참고

SceneMultiplayer 캐싱 프로토콜이 노드 제거 확인 패킷(GH-90027) 전송 시 노드 경로 대신 수신된 ID를 전송하도록 변경되었습니다.

이는 이전 Godot 버전과 호환되지 않게 만드는 높은 수준의 멀티플레이어 프로토콜에 대한 획기적인 변경 사항입니다. 이 변경 사항을 적절하게 처리하려면 서버와 클라이언트 버전을 모두 Godot 4.3으로 업그레이드하세요.

높은 수준의 멀티플레이어 기능은 동일한 Godot 버전을 사용하는 서버 및 클라이언트와만 호환된다는 점에 유의하세요. 일종의 버전 확인을 구현하는 것이 좋습니다.

렌더링

참고

데칼은 이제 다른 모든 입력과 마찬가지로 변조 색상을 sRGB 색상에서 선형 색상으로 변환하여 적절한 혼합을 보장합니다(GH-89849). 데칼의 변조 속성을 사용하고 있던 기존 프로젝트에서는 시각적 변화가 눈에 띌 것입니다.

참고

이제 역방향 Z 깊이 버퍼 기술이 구현되었습니다. 이로 인해 일부 셰이더의 호환성이 중단될 수 있습니다. 일반적인 시나리오를 해결하는 방법에 대한 자세한 내용과 지침은 Reverse Z 소개(셰이더를 깨서 죄송합니다) 문서를 읽어보세요.

타일맵

참고

TileMap 레이어가 개별 노드(GH-87379GH-89179)로 이동되었습니다.

Android

참고

권장 모범 사례(GH-87080)에 위배되므로 Android 권한이 더 이상 자동으로 요청되지 않습니다. 권한을 요청하고 사용자 응답을 기다리려면 OS``에서 ``request_permission 메서드를 사용하고 MainLoop``에서 ``on_request_permissions_result 시그널 메서드를 사용합니다.