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.
Checking the stable version of the documentation...
Godot 4.2에서 Godot 4.3으로 업그레이드
4.2로 제작된 대부분의 게임과 앱의 경우 4.3으로 마이그레이션하는 것이 상대적으로 안전합니다. 이 페이지에서는 프로젝트를 마이그레이션할 때 주의해야 할 모든 것을 다루려고 합니다.
깨는 변경사항
4.2에서 4.3으로 마이그레이션하는 경우 여기에 나열된 주요 변경 사항이 영향을 미칠 수 있습니다. 변경 사항은 영역/시스템별로 그룹화됩니다.
이 문서에서는 각 주요 변경 사항이 GDScript에 영향을 미치는지 여부와 C# 주요 변경 사항이 바이너리 호환 또는 *소스 호환*인지 여부를 나타냅니다.
바이너리 호환 - 기존 바이너리는 재컴파일 없이 성공적으로 로드 및 실행되며 런타임 동작은 변경되지 않습니다.
소스 호환 가능 - 소스 코드는 Godot를 업그레이드할 때 변경 없이 성공적으로 컴파일됩니다.
GDExtension
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
Expression Node(표현식 노드) |
||||
|
❌ |
❌ |
❌ |
|
|
❌ |
❌ |
❌ |
|
|
❌ |
❌ |
❌ |
기본적으로 이러한 메서드를 유용한 방식으로 사용하는 것이 불가능했기 때문에 이러한 메서드는 제거되었습니다. GDExtension을 올바르게 로드 및 언로드하려면 대신 GDExtensionManager::load_extension 및 ``GDExtensionManager::unload_extension``를 사용하세요.
애니메이션
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
애니메이션 |
||||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
애니메이션 |
||||
메소드 |
✔️ |
❌ |
❌ |
|
스켈레톤 |
||||
✔️ |
❌ |
✔️ |
||
❌ |
❌ |
❌ |
||
BoneAttachment3D |
||||
|
✔️ |
노드 만들기
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
수락 대화상자 |
||||
메소드 |
✔️ |
|||
메소드 |
✔️ |
물리
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
PhysicsShapeQueryParameters3D |
||||
❌ |
❌ |
❌ |
렌더링
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
렌더링 |
||||
열거형 필드 ``FinalAction.FINAL_ACTION_CONTINUE``는 값을 ``2``에서 ``0``로 변경합니다. |
✔️ |
❌ |
❌ |
|
열거형 필드 ``InitialAction.INITIAL_ACTION_CLEAR``는 값을 ``0``에서 ``1``로 변경합니다. |
✔️ |
❌ |
❌ |
|
열거형 필드 ``InitialAction.INITIAL_ACTION_CLEAR_REGION_CONTINUE``는 값을 ``2``에서 ``1``로 변경합니다. |
✔️ |
❌ |
❌ |
|
열거형 필드 ``InitialAction.INITIAL_ACTION_CONTINUE``는 값을 ``5``에서 ``0``로 변경합니다. |
✔️ |
❌ |
❌ |
|
열거형 필드 ``InitialAction.INITIAL_ACTION_DROP``는 값을 ``4``에서 ``2``로 변경합니다. |
✔️ |
❌ |
❌ |
|
열거형 필드 ``InitialAction.INITIAL_ACTION_KEEP``는 값을 ``3``에서 ``0``로 변경합니다. |
✔️ |
❌ |
❌ |
|
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
Server |
||||
|
✔️ |
✔️ |
||
Server |
||||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
참고
RenderingDevice.InitialAction 및 RenderingDevice.FinalAction``의 열거형 필드 값이 변경되었지만 이를 사용하는 유일한 메서드(``draw_list_begin)에는 이전 값을 지원하는 호환성 메서드가 추가되었습니다. 따라서 실제로는 호환성이 깨지지 않습니다.
텍스처
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
안개: |
||||
|
✔️ |
✔️ |
||
ScoreLabel |
||||
|
✔️ |
✔️ |
||
텍스처 |
||||
|
✔️ |
✔️ |
||
텍스처 압축: |
||||
|
❌ |
❌ |
❌ |
오디오
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
AudioStreamPlayback다성음악 |
||||
|
✔️ |
✔️ |
타일맵
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
결과 시험하기 |
||||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
XR
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
Godot 인터페이스 |
||||
메서드 ``get_input_source_tracker``는 반환 유형을 ``XRPositionalTracker``에서 ``XRControllerTracker``로 변경합니다. |
✔️ |
❌ |
✔️ |
|
Server |
||||
메서드 ``get_tracker``는 반환 유형을 ``XRPositionalTracker``에서 ``XRTracker``로 변경합니다. |
✔️ |
❌ |
❌ |
편집기 플러그인
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
|
✔️ |
✔️ |
||
플러그인: |
||||
|
✔️ |
✔️ |
||
|
✔️ |
✔️ |
||
EditorSceneFormatImporterFBX |
||||
``EditorSceneFormatImporterFBX2GLTF``로 이름이 변경된 유형 |
❌ |
❌ |
❌ |
행동 변화
4.3에서는 일부 동작 변경 사항이 도입되었으며, 이로 인해 프로젝트를 조정해야 할 수도 있습니다.
코어
참고
스크립트된 개체 및 형식화된 배열(GH-78219)의 직렬화와 관련된 일부 문제를 해결하기 위해 이진 직렬화가 수정되었습니다. 이로 인해 스크립트 인코딩/디코딩과의 호환성이 중단됩니다.
참고
``PackedByteArray``는 이제 저장을 위해 보다 컴팩트한 base64 인코딩을 사용할 수 있습니다. 하지만 호환성이 손상된다는 단점이 있습니다. 이는 이전 버전의 Godot가 4.3(GH-89186)에 의해 저장된 리소스를 열 수 없다는 것을 의미합니다.
호환성을 최대화하기 위해 이 새로운 저장소 형식은 현재 대규모 PackedByteArray가 포함된 리소스 및 장면에 대해서만 활성화됩니다. 이 새로운 형식에 대한 지원은 이전 버전의 Godot에 대한 패치 업데이트에도 추가될 것입니다. 지원되는 모든 Godot 버전이 새로운 형식을 읽을 수 있게 되면, 우리는 점차적으로 호환성 측정을 중단하고 모든 리소스와 장면이 새로운 저장 형식을 사용하도록 할 것입니다.
참고
C#에서는 Transform3D.InterpolateWith 구현이 올바른 작업 순서를 사용하도록 수정되어 크기 조정 전에 회전을 적용합니다(GH-89843).
참고
C#에서는 지원 벡터(GH-88919)를 올바르게 반환하도록 Aabb.GetSupport 구현이 수정되었습니다.
애니메이션
참고
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 소개(셰이더를 깨서 죄송합니다) 문서를 읽어보세요.
타일맵
Android
참고
권장 모범 사례(GH-87080)에 위배되므로 Android 권한이 더 이상 자동으로 요청되지 않습니다. 권한을 요청하고 사용자 응답을 기다리려면 OS``에서 ``request_permission 메서드를 사용하고 MainLoop``에서 ``on_request_permissions_result 시그널 메서드를 사용합니다.