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.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 |
||||
|
❌ |
|||
노드 |
||||
메소드 ``get_rpc_config``가 ``get_node_rpc_config``로 이름이 변경되었습니다. |
❌ |
|||
메소드 |
✔️ |
렌더링
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
Server |
||||
|
✔️ |
|||
|
✔️ |
|||
렌더링 |
||||
|
✔️ |
|||
Server |
||||
애니메이션 제어하기 |
❌ |
|||
|
❌ |
GLTF
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
GLTF접속자 |
||||
✔️ |
❌ |
❌ |
||
|
✔️ |
❌ |
❌ |
|
✔️ |
❌ |
❌ |
||
✔️ |
❌ |
❌ |
||
|
✔️ |
❌ |
❌ |
|
|
✔️ |
❌ |
❌ |
|
|
✔️ |
❌ |
❌ |
|
GLTFBufferView |
||||
✔️ |
❌ |
❌ |
||
✔️ |
❌ |
❌ |
||
✔️ |
❌ |
❌ |
텍스처
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
캔버스 변형 |
||||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
안개: |
||||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
ScoreLabel |
||||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
텍스처 |
||||
|
✔️ |
|||
|
✔️ |
|||
텍스처 |
||||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
텍스처 |
||||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
|
✔️ |
|||
TreeItem |
||||
|
✔️ |
|||
텍스처 압축: |
||||
|
❌ |
❌ |
❌ |
|
|
❌ |
❌ |
❌ |
|
|
❌ |
❌ |
❌ |
|
|
❌ |
❌ |
❌ |
XR
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
Expression Node(표현식 노드) |
||||
메소드 |
✔️ |
|||
메소드 |
✔️ |
|||
메소드 |
✔️ |
|||
메소드 |
✔️ |
|||
OpenXRBindingModifierEditor |
||||
|
❌ |
❌ |
❌ |
|
OpenXRInteractionProfileEditor |
||||
|
❌ |
❌ |
❌ |
|
OpenXRInteractionProfileEditorBase |
||||
|
❌ |
❌ |
❌ |
참고
클래스 OpenXRBindingModifierEditor, OpenXRInteractionProfileEditor 및 ``OpenXRInteractionProfileEditorBase``는 편집기에서만 사용할 수 있습니다. 편집기 외부에서 사용하면 컴파일 오류가 발생합니다.
C#에서 이는 유형이 GodotSharp 어셈블리에서 GodotSharpEditor 어셈블리로 이동되었음을 의미합니다. 이러한 유형을 사용하는 코드를 #if TOOLS 블록에 래핑하여 내보낸 게임에 포함되지 않도록 하세요.
이 변경 사항은 4.4.1에도 백포트되었습니다.
편집기 플러그인
변경 |
GDScript |
C# 바이너리 호환 |
C# 소스 호환 |
소개 |
|---|---|---|---|---|
EditorExportPlatform |
||||
|
✔️ |
|||
EditorUndoRedoManager |
||||
|
✔️ |
|||
EditorExportPlatformExtension |
||||
메서드 ``_get_option_icon``는 반환 유형을 ``ImageTexture``에서 ``Texture2D``로 변경합니다. |
✔️ |
❌ |
❌ |
행동 변화
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 파일 없음)은 새로운 동작으로 가져옵니다. 그러나 기존 파일의 경우 새 동작을 사용하려면 가져오기 도크 하단에 있는 "버전 이름 지정" 옵션을 변경해야 합니다.
코어
참고
: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 또는 정적 몸체의 충돌 마스크나 레이어를 대신 변경해야 합니다.