موجات الأعداء
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 44 من 50.
التحدي
متوسطتأتي الأعداء الآن على شكل موجات، والموجات عبارة عن بيانات. احتفظ بكل ما أعددته في الدروس السابقة. لم تعد الساحة تحتوي على أعداء خاصين بها: تحمل العناصر الجاهزة Grunt وDasher النصوص البرمجية، وتقف أربع نقاط ظهور في الزوايا، ويحمل العنصر Spawner في الوسط النص البرمجي WaveSpawner.
- في
WaveSet.cs، أضف فئةWaveمع[System.Serializable]، وتتضمنpublic Enemy enemy(العنصر الجاهز)، وpublic int countوpublic float spacing. إنWaveSetهو ScriptableObject مع[CreateAssetMenu]، ويتضمنpublic List<Wave> wavesوpublic float restBetweenWaves. يحتوي الأصلArenaفي المشهد على ثلاث موجات (3 من الأعداء Grunt بفاصل 0.5 s، و2 من الأعداء Dasher بفاصل 1 s، و5 من الأعداء Grunt بفاصل 0.4 s)، مع استراحة مدتها 2 seconds. - أضف إلى
Enemyالحدثpublic static event Action<Enemy> Died، واستدعِه مع العدو مباشرةً قبل تدميره. - يحتوي
WaveSpawnerعلىwaveSetوspawnPointsمن Inspector، وعلىpublic int Wave { get; private set; }، وهو رقم الموجة الجارية. تبدأ coroutine منStartلتشغيل موجات الأصل بالترتيب. لكل موجة: أضف 1 إلىWaveوسجّلها، لتظهر بالشكلWave 1؛ أظهر أعداء الموجة بعددcountوبفاصلspacingseconds، بحيث يظهر العدوi(بدءًا من 0) عندspawnPoints[i % spawnPoints.Length]؛ انتظر حتى لا يبقى أي عدو حي؛ ثم استرح مدةrestBetweenWavesseconds. بعد الموجة الأخيرة، تبدأ المجموعة من جديد بموجتها الأولى، ويستمرWaveبالعد: 4 و5 وما إلى ذلك. - تتبّع عدد الأعداء الأحياء باستخدام الحدث
Died: اشترك فيه فيOnEnableوألغِ الاشتراك فيOnDisable. لا يقرأ العنصر المُولِّد إلا الأصل: في Editor، إذا غيّرت أصلًا أثناء تشغيل اللعبة، فسيظل التغيير محفوظًا في الأصل بعد Play.
اضغط على Play واصمد أمام بضع موجات، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class WaveSpawner : MonoBehaviour
{
// سيُكمل درس لاحق هذا الجزء: يُرسل الموجات إلى الساحة.
}
جميع دروس هندسة الألعاب في Unity
1المكوّنات لا التسلسلات الهرمية
مكوّنات صغيرةسكربت أساسي للعدومكوّنات مجرّدةتعمل المكوّنات معًامراجعة: برج دفاعي معياري4البيانات المتسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائم10مشروع: الناجي في الساحة
البطلأنواع الأعداء