كيفية إعادة تشغيل اللعبة في Unity
إعادة تشغيل اللعبة هي ميزة شائعة في ألعاب Unity، مما يسمح للاعبين بإعادة تعيين حالة اللعبة والبدء من جديد. وهذا مفيد في سيناريوهات مثل شاشات انتهاء اللعبة أو إعادة محاولة المستوى أو التدريب العملي. في Unity، تتم إعادة تشغيل اللعبة عادةً عن طريق إعادة تحميل المشهد الحالي، مما يعيد تعيين جميع الكائنات والمتغيرات إلى حالاتها الافتراضية. في هذا البرنامج التعليمي، سنتعلم كيفية تنفيذ ميزة إعادة تشغيل اللعبة باستخدام نظام إدارة المشهد في Unity.
الخطوة 1: إعداد المشهد
لنبدأ بإنشاء مشهد Unity بسيط:
- إنشاء مشروع Unity جديد.
- أضف كائنًا ثلاثي الأبعاد (على سبيل المثال، مكعب ) لتمثيل لاعب أو عنصر لعبة.
- قم بإعداد بعض عناصر اللعب، مثل العوائق أو العناصر القابلة للتجميع.
- احفظ المشهد بالانتقال إلى ملف > حفظ باسم وإعطائه اسمًا مثل MainScene.
الخطوة 2: استيراد إدارة المشهد
يتم استخدام SceneManager في Unity للتعامل مع تحميل المشهد وإعادة تحميله. لاستخدامه، نحتاج إلى تضمين مساحة اسم UnityEngine.SceneManagement في نصوصنا.
الخطوة 3: كتابة نص إعادة التشغيل
بعد ذلك، قم بإنشاء نص برمجي لإعادة تحميل المشهد الحالي:
- في المجلد Assets، انقر بزر الماوس الأيمن وحدد Create > C# Script. أطلق عليه اسم RestartGame.
- افتح البرنامج النصي في محرر الكود الخاص بك وأضف الكود التالي:
using UnityEngine;
using UnityEngine.SceneManagement;
public class RestartGame : MonoBehaviour
{
void Update()
{
// Check if the player presses the R key to restart the game
if (Input.GetKeyDown(KeyCode.R))
{
RestartCurrentScene();
}
}
// Method to restart the current scene
public void RestartCurrentScene()
{
Scene currentScene = SceneManager.GetActiveScene(); // Get the current scene
SceneManager.LoadScene(currentScene.name); // Reload the scene by its name
}
}
الخطوة 4: إضافة البرنامج النصي لإعادة التشغيل إلى كائن
لجعل البرنامج النصي وظيفيًا:
- قم بإرفاق البرنامج النصي RestartGame بكائن اللعبة في المشهد (على سبيل المثال، كائن لعبة فارغ).
- احفظ المشهد واضغط على تشغيل. أثناء اللعب، اضغط على مفتاح R لإعادة تشغيل المشهد.
الخطوة 5: إضافة زر إعادة التشغيل
بالنسبة للألعاب ذات واجهة المستخدم، يمكنك إضافة زر لإعادة تشغيل اللعبة:
- في التسلسل الهرمي، انقر بزر الماوس الأيمن وحدد واجهة المستخدم > الزر لإضافة زر إلى المشهد الخاص بك.
- قم بتخصيص نص الزر ليصبح "Restart" عن طريق تحديد الكائن الفرعي Text وتغيير محتواه في المفتش.
- قم بإرفاق البرنامج النصي لإعادة التشغيل إلى GameObject في المشهد إذا لم تقم بذلك بالفعل.
- حدد الزر في التسلسل الهرمي، وانتقل إلى قسم OnClick في مكون الزر، وانقر على أيقونة +.
- اسحب GameObject باستخدام البرنامج النصي RestartGame إلى الحقل الفارغ.
- في القائمة المنسدلة، حدد RestartGame > RestartCurrentScene.
الآن، الضغط على الزر أثناء اللعب سوف يؤدي إلى إعادة تشغيل اللعبة.
اختياري: إعادة تعيين تقدم اللاعب
إذا كانت لعبتك تتعقب تقدم اللاعب (على سبيل المثال، النتيجة أو الصحة)، فتأكد من إعادة تعيين هذه القيم عند إعادة تشغيل اللعبة. على سبيل المثال:
using UnityEngine;
public class Player : MonoBehaviour
{
public int score = 0;
public int health = 100;
void Start()
{
// Reset score and health on game start
score = 0;
health = 100;
}
}
تأكد من تهيئة أي متغيرات تحتاج إلى إعادة تعيين في طريقة Start أو في المكان المناسب في البرامج النصية الخاصة بك.
اختبار ميزة إعادة التشغيل
لاختبار ميزة إعادة التشغيل الخاصة بك:
- قم بتشغيل المشهد والتفاعل مع عناصر اللعبة (على سبيل المثال، تحريك اللاعب، أو جمع العناصر، أو فقدان الصحة).
- اضغط على مفتاح R أو انقر فوق زر إعادة التشغيل لإعادة تعيين المشهد.
- تأكد من إعادة تعيين المشهد إلى حالته الأولية، بما في ذلك جميع المتغيرات والكائنات.
التحسينات الاختيارية
فيما يلي بعض الأفكار الإضافية لتحسين ميزة إعادة التشغيل الخاصة بك:
- شاشة انتهاء اللعبة: عرض شاشة انتهاء اللعبة مع خيار إعادة التشغيل عندما يخسر اللاعب.
- اختيار المستوى: توفير خيارات لإعادة تشغيل المستوى الحالي أو العودة إلى القائمة الرئيسية.
- الحفظ والتحميل: دمج وظيفة الحفظ والتحميل للحفاظ على تقدم اللاعب عند إعادة التشغيل.
- مربع حوار التأكيد: أضف مربع حوار تأكيد قبل إعادة التشغيل لمنع عمليات إعادة التشغيل غير المقصودة.
خاتمة
لقد قمنا بتنفيذ ميزة إعادة التشغيل في Unity باستخدام SceneManager. تتيح هذه الوظيفة للاعبين إعادة ضبط اللعبة بسهولة، مما يجعلها ميزة أساسية لأي لعبة. جرِّب أزرار واجهة المستخدم والبرامج النصية المخصصة وإعادة ضبط تقدم اللاعب لتحسين نظام إعادة تشغيل اللعبة بشكل أكبر.