مراجعة: مجموعة الرصاصات
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 49 من 64.
يُبقي التجميع الكائنات المعطّلة جاهزة بدلًا من تدميرها. هنا تأتي طلقات الدبابة من ObjectPool في Unity، وتعود إليه بعد كل طلقة.
التحدي
متوسطاجعل الدبابة تطلق رصاصات من مجموعة الكائنات.
- في
Awakeالخاص بـTank، أنشئObjectPool<Bullet>: فعّل الرصاصة عند أخذها، وعطّلها عند إعادتها، ودمّرها عند التخلص منها، واجعلmaxSize: 4. - عند الضغط على مفتاح المسافة، احصل على رصاصة واجعلها على بُعد وحدة واحدة أمام الدبابة، ومرّر إليها المجموعة.
- تتحرك
Bulletفي اتجاه +z بسرعةspeed؛ وتعيد الرصاصة نفسها إلى المجموعة بعدlifeثانية من كل طلقة، أو عند إصابةTarget(استدعِHit()).
اضغط على «العب» وأطلق النار على كلا الهدفين. ثم اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
using UnityEngine.Pool;
public class Bullet : MonoBehaviour
{
public float speed = 15f;
public float life = 1f;
// تحرّك إلى الأمام؛ عُد إلى التجمع عند الاصطدام بـ Target، أو بعد مرور life ثانية
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس هندسة الألعاب في Unity
1المكوّنات، لا التسلسلات الهرمية
مكوّنات صغيرةنص برمجي أساسي للعدومكوّنات مجرّدةالمكوّنات تعمل معًامراجعة: برج معياريمراجعة: مدفع مزدوج4البيانات المُسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائممراجعة: اختيار الغنائم عشوائيًا2الواجهات في Unity
IDamageableالواجهات وTryGetComponentGetComponentsمراجعة: مفتاح التفاعلمراجعة: أقرب عنصر ضمن النطاق3الأحداث
الأحداث في C# ضمن Unityالاشتراك في OnEnableحقول UnityEventالأحداث تحرّك واجهة المستخدممراجعة: نافذة الإنجاز المنبثقةمراجعة: مؤقّت النافذة المنبثقة6الحفظ باستخدام JSON
JsonUtilityاحفظ اللعبةالتحميل والقيم الافتراضيةمراجعة: خانات الحفظاختر خانة واحذفها9تجميع الكائنات
لماذا نعيد استخدام الكائناتمجموعة باستخدام طابورObjectPool في Unityمراجعة: مجموعة الرصاصاتتدرّب بنفسك: Playground لـ Unity