الترقية من جودو 4.0 إلى جودو 4.1
من الآمن الانتقال إلى 4.1 لمعظم الألعاب المصنوعة باستخدام 4.0. هدف هذه الصفحة هي تغطية كل شيء يجب الانتباه له عند نقل المشروع.
التغييرات التي تتسبب بمشكلات
ستؤثر عليك التغييرات التي تعطي مشاكل المذكورة هنا إذا كنت تنتقل من 4.0 إلى 4.1، تم تجميع التغييرات حسب الموقع/النظام
تنبيه: إن واجهة برمجة التطبيقات الخاصة بـ GDExtention تعطي مشاكل توافق في 4.1 لذا هي غير مذكورة في الجداول التالية. راجع قسم تحديث GDExtentintion الخاص بك إلى 4.1 لمزيد من المعلومات.
تشير هذه القائمة إذا ما كان يؤثر التغيير الذي يعطي المشاكل على GDScript وإذا كان متوافق مع الثنائي أو متوافق مع المصدر
- متوافق مع الملف الثنائي - سيُحمل ويُنفذ الثنائي الموجود بنجاح بدون إعادة تصريف ولن بتغير سلوك وقت التنفيذ
- متوافق مع المصدر - سيتم تصريف الشيفرة المصدرية بشكل ناجح بدون تغييرات عند تحديث جودو
النواة
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
Basis | ||||
أصبح لدى التابع looking_at معامل اختياري جديد use_model_front
|
✔️ | ✔️ | ✔️ | GH-76082 |
Object | ||||
تغير نوع الإعادة للتابع get_meta_list من PackedStringArray إلى Array[StringName]
|
✔️ | ❌ | ❌ | GH-76418 |
Transform3D | ||||
أصبح لدى التابع looking_at معامل اختياري جديد use_model_front
|
✔️ | ✔️ | ✔️ | GH-76082 |
UndoRedo | ||||
أصبح لدى التابع create_action معامل اختياري جديد backward_undo_ops
|
✔️ | ✔️ | ✔️ | GH-76688 |
WorkerThreadPool | ||||
تغير نوع الإعادة للتابع wait_for_task_completion من void إلى Error
|
✔️ | ❌ | ✔️ | GH-77143 |
التحريك
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
AnimationNode | ||||
أصبح لدى التابع _process معامل جديد test_only
|
❌ | ❌ | ❌ | GH-75759 |
أصبح لدى التابع blend_input معامل اختياري جديد test_only
|
✔️ | ✔️ | ✔️ | GH-75759 |
أصبح لدى التابع blend_node معامل اختياري جديد test_only
|
✔️ | ✔️ | ✔️ | GH-75759 |
AnimationNodeStateMachinePlayback | ||||
تغير نوع الإعادة للتابع get_travel_path من PackedStringArray إلى Array[StringName]
|
✔️ | ❌ | ❌ | GH-76418 |
العقد ثنائية البعد
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
PathFollow2D | ||||
تم إزالة الخاصية lookahead
|
❌ | ❌ | ❌ | GH-72842 |
العقد ثلاثية الأبعاد
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
Geometry3D | ||||
يغير المعامل segment_intersects_convex نوع المعامل planes من Array غير مكتوبة إلى Array[plane]
|
✔️ | ✔️ | ❌ | GH-76418 |
MeshInstance3D | ||||
أصبح لدى التابع create_multiple_conves_collisions معامل اختياري جديد settings
|
✔️ | ✔️ | ✔️ | GH-72152 |
Node3D | ||||
أصبح لدى التابع look_at معامل اختياري جديد use_model_front
|
✔️ | ✔️ | ✔️ | GH-76082 |
أصبح لدى التابع look_at_from_position معامل اختياري جديد use_model_front
|
✔️ | ✔️ | ✔️ | GH-76082 |
عقد الواجهة الرسومية
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
CodeEdit | ||||
أصبح لدى التابع add_code_completion_option معامل اختياري جديد location
|
✔️ | ✔️ | ✔️ | GH-75746 |
RichTextLabel | ||||
أصبح لدى التابع push_list معامل اختياري جديد bullet
|
✔️ | ✔️ | ✔️ | GH-75017 |
أصبح لدى التابع push_paragraph معامل اختياري جديد justification_flags
|
✔️ | ✔️ | ✔️ | GH-75250 |
أصبح لدى التابع push_paragraph معامل اختياري جديد tab_stops
|
✔️ | ✔️ | ✔️ | GH-76401 |
Tree | ||||
أصبح لدى التابع edit_selected معامل اختياري جديد force_edit
|
✔️ | ✔️ | ✔️ | GH-76794 |
الفيزياء
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
Area2D | ||||
تغير نوع الخاصية priority من float إلى int
|
❌ | ❌ | ❌ | GH-72749 |
Area3D | ||||
تغير نوع الخاصية priority من float إلى int
|
❌ | ❌ | ❌ | GH-72749 |
PhysicsDirectSpaceState2D | ||||
تغير نوع الإعادة للتابع collide_shape من Array[PackedVector2Array] إلى Array[Vector2]
|
❌ | ❌ | ❌ | GH-75260 |
PhysicsDirectSpaceState3D | ||||
تغير نوع الإعادة للتابع collide_shape من Array[PackedVector3Array] إلى Array[Vector3]
|
❌ | ❌ | ❌ | GH-7526 |
التصيير
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
RDShaderFile | ||||
تغير نوع الإعادة للتابع get_version_list من PackedStringArray إلى Array[StringName]
|
✔️ | ❌ | ❌ | GH-76418 |
RenderingDevice | ||||
يغير المعامل draw_list_begin نوع المعامل storage_textures من Array غير مكتوبة إلى Array[RID]
|
✔️ | ✔️ | ❌ | GH-76418 |
RenderingServer | ||||
تغير نوع الإعادة للتابع global_shader_parameter_get_list من PackedStringArray إلى Array[StringName]
|
✔️ | ❌ | ❌ | GH-76418 |
SurfaceTool | ||||
تغير المعامل add_triangle_fan نوع المعامل tangents من Array غير مكتوبة إلى Array[Plane]
|
✔️ | ✔️ | ❌ | GH-76418 |
الحركة
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
NavigationAgent2D | ||||
تم استبدال التابع set_velocity بالخاصية velocity
|
✔️ | ❌ | ❌ | GH-69988 |
تم تقسيم الخاصية time_horizon إلى time_horizon_agents وtime_horizon_obstacles
|
❌ | ❌ | ❌ | GH-69988 |
NavigationAgent3D | ||||
تم إعادة تسمية الخاصية agent_height_offset إلى path_height_offset
|
❌ | ❌ | ❌ | GH-69988 |
تم إزالة الخاصية ignore_y
|
❌ | ❌ | ❌ | GH-69988 |
تم استبدال التابع set_velocity بالخاصية velocity
|
✔️ | ❌ | ❌ | GH-69988 |
تم تقسيم الخاصية time_horizon إلى time_horizon_agents وtime_horizon_obstacles
|
❌ | ❌ | ❌ | GH-69988 |
NavigationObstacle2D | ||||
تم إزالة الخاصية estimate_radius
|
❌ | ❌ | ❌ | GH-69988 |
تم إعادة تسمية الخاصية get_rid إلى get_agent_rid
|
❌ | ❌ | ❌ | GH-69988 |
NavigationObstacle3D | ||||
تم إزالة الخاصية estimate_radius
|
❌ | ❌ | ❌ | GH-69988 |
تم إعادة تسمية الخاصية get_rid إلى get_agent_rid
|
❌ | ❌ | ❌ | GH-69988 |
NavigationServer2D | ||||
تم إعادة تسمية الخاصية agent_set_callback إلى agent_set_avoidance_callback
|
❌ | ❌ | ❌ | GH-69988 |
تم إزالة التابع agent_set_target_velocity
|
❌ | ❌ | ❌ | GH-69988 |
تم تقسيم التابع agent_set_time_horizon إلى agent_set_time_horizon_agents وagent_set_time_horizon_obstacles
|
❌ | ❌ | ❌ | GH-69988 |
NavigationServer3D | ||||
تم إعادة تسمية الخاصية agent_set_callback إلى agent_set_avoidance_callback
|
❌ | ❌ | ❌ | GH-69988 |
تم إزالة التابع agent_set_target_velocity
|
❌ | ❌ | ❌ | GH-69988 |
تم تقسيم التابع agent_set_time_horizon إلى agent_set_time_horizon_agents وagent_set_time_horizon_obstacles
|
❌ | ❌ | ❌ | GH-69988 |
الشبكة
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
WebRTCPeerConnectionExtension | ||||
تغير نوع الإعادة للتابع _create_data_channel من Object إلى WebRTCDataChannel
|
✔️ | ❌ | ✔️ | GH-78237 |
ملحقات المحرر
التغيير | التوافق مع GDScript | التوافق مع C# ثنائي | التوافق مع C# المصدري | تم تقديمه |
AnimationTrackEditPlugin | ||||
تم إزالة النوع AnimationTrackEditPlugin
|
❌ | ❌ | ❌ | GH-76413 |
EditorInterface | ||||
تم تغيير نوع الوراثة للنوع EditorInterface من Node إلى Object
|
✔️ | ❌ | ❌ | GH-76176 |
تم استبدال التابع set_movie_maker_enabled بالخاصية movie_maker_enables
|
✔️ | ❌ | ❌ | GH-76176 |
تم استبدال التابع is_movie_maker_enabled بالخاصية movie_maker_enables
|
✔️ | ❌ | ❌ | GH-76176 |
EditorResourcePreviewGenerator | ||||
تم إضافة نوع metadata للتابع _genrate
|
❌ | ❌ | ❌ | GH-64628 |
تم إضافة نوع metadata للتابع _genrate_from_path
|
❌ | ❌ | ❌ | GH-64628 |
EditorUndoRedoManager | ||||
أصبح لدى التابع create_action معامل اختياري جديد backward_undo_ops
|
✔️ | ✔️ | ✔️ | GH-76688 |
تحديث GDExtention الخاص بك إلى 4.1
لا يزال GDExtention في مرحلة بيتا. سيحصل مشاكل في التوافقية عند التحديث إلى إصدار صغير جديد من جودو حتى يتم اعتباره مستقر
يجب علينا في جودو 4.1 لمعالجة بعض المشاكل الخطيرة كسر توافقية الثنائية بشكل كبير وتوافقية المصدر بشكل قليل
هذا يعني أن GDExtention المعمول به لجودو 4.0 سيحتاج لإعادة تصريف من أجل جودو 4.1 (باستخدام فرع 4.1
من godot-ccp) مع تغيير بسيط في الشيفرة المصدرية الخاصة به
تبدو دالة "entry_symbol" في جودو 4.0 كالتالي:
GDExtensionBool GDE_EXPORT example_library_init(const GDExtensionInterface *p_interface, const GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) {
godot::GDExtensionBinding::InitObject init_obj(p_interface, p_library, r_initialization);
init_obj.register_initializer(initialize_example_module);
init_obj.register_terminator(uninitialize_example_module);
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
return init_obj.init();
}
ولكن في جودو 4.1 تبدو كالتالي
GDExtensionBool GDE_EXPORT example_library_init(GDExtensionInterfaceGetProcAddress p_get_proc_address, const GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) {
godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization);
init_obj.register_initializer(initialize_example_module);
init_obj.register_terminator(uninitialize_example_module);
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
return init_obj.init();
}
هناك فرقان بسيطان:
- تغير الوسيط الأول من
const GDExtensionInterface *p_interface
إلىGDExtensionInterfaceGetProcAddress p_get_proc_address
- يحصل الباني من أجل المتغير init_obj على
p_get_proc_address
كمعامل أول
ستحتاج لإضافة سطر compability_minimum
إضافي إلى ملف .gdextention
ليصبح كالتالي:
[configuration]
entry_symbol = "example_library_init"
compatibility_minimum = 4.1
هذا يُعلم جودو أنه قد تم تحديث GDExtention وهو آمن للتحميل في جودو4.1