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