Menu
CoddyTech
flag Ar iconالعربيةdown icon

النجاة

جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 47 من 50.

challenge icon

التحدي

متوسط

الخطوة الأخيرة: تنتهي الجولة، ويُحتفَظ بأفضل جولة. احتفِظ بكل شيء من الدروس السابقة. تحتوي لوحة الرسم على GameOverPanel مخفية، وبداخلها ResultText وBestText وRestartButton الذي يحمل تسمية قاتل مجددًا، ويحتوي كائن GameManager على سكريبت GameManager، مع تعيين hero وspawner وgameOverPanel وresultText وbestText وrestartButton في Inspector.

  • أضِف إلى Hero الحدث public event Action Died، وأطلِقه عندما تصل صحته إلى 0، بعد أن يعطّل نفسه.
  • في GameManager.cs، أضِف الصنف [System.Serializable] المسمّى BestRun، ويحتوي على public int wave وpublic int kills.
  • يستمع GameManager إلى Died الخاص بالبطل وإلى Enemy.Died، الذي يحصي عدد مرات القتل في هذه الجولة: اشترك في الحدث داخل OnEnable، وألغِ الاشتراك في OnDisable. في Start، يحمّل أفضل جولة من best.json في Application.persistentDataPath باستخدام JsonUtility، إذا كان هذا الملف موجودًا، ويخفي اللوحة، ويجعل restartButton يعيد تشغيل اللعبة.
  • عندما يموت البطل، أوقِف اللعبة (Time.timeScale 0). تتكوّن الجولة من Wave الخاص بمُنشئ الموجات وعدد مرات القتل. وتُعدّ رقمًا قياسيًا جديدًا إذا وصلت إلى موجة أعلى، أو إلى الموجة نفسها مع عدد أكبر من مرات القتل: عندئذٍ تصبح هي الأفضل وتُحفَظ في best.json باستخدام JsonUtility.ToJson. اعرض الجولة في resultText بالشكل Wave 2, 7 kills، وأفضل نتيجة في bestText بالشكل Best: wave 3, 12 kills، ثم اعرض اللوحة.
  • تعيد إعادة التشغيل مقياس الوقت إلى 1 وتحمّل المشهد مجددًا.

اضغط تشغيل وقاتل حتى تسقط، ثم حاول تحطيم رقمك القياسي. بعد ذلك، اضغط تحقّق.

جرّب بنفسك

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // سيُكمل درس لاحق هذا الجزء: نهاية الجولة وأفضل جولة.
}

جميع دروس هندسة الألعاب في Unity