النجاة
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 47 من 50.
التحدي
متوسطالخطوة الأخيرة: تنتهي الجولة، ويُحتفَظ بأفضل جولة. احتفِظ بكل شيء من الدروس السابقة. تحتوي لوحة الرسم على 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.timeScale0). تتكوّن الجولة منWaveالخاص بمُنشئ الموجات وعدد مرات القتل. وتُعدّ رقمًا قياسيًا جديدًا إذا وصلت إلى موجة أعلى، أو إلى الموجة نفسها مع عدد أكبر من مرات القتل: عندئذٍ تصبح هي الأفضل وتُحفَظ فيbest.jsonباستخدامJsonUtility.ToJson. اعرض الجولة فيresultTextبالشكلWave 2, 7 kills، وأفضل نتيجة فيbestTextبالشكلBest: wave 3, 12 kills، ثم اعرض اللوحة. - تعيد إعادة التشغيل مقياس الوقت إلى 1 وتحمّل المشهد مجددًا.
اضغط تشغيل وقاتل حتى تسقط، ثم حاول تحطيم رقمك القياسي. بعد ذلك، اضغط تحقّق.
جرّب بنفسك
using UnityEngine;
public class GameManager : MonoBehaviour
{
// سيُكمل درس لاحق هذا الجزء: نهاية الجولة وأفضل جولة.
}
جميع دروس هندسة الألعاب في Unity
1المكوّنات لا التسلسلات الهرمية
مكوّنات صغيرةسكربت أساسي للعدومكوّنات مجرّدةتعمل المكوّنات معًامراجعة: برج دفاعي معياري4البيانات المتسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائم10مشروع: الناجي في الساحة
البطلأنواع الأعداء