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

مراجعة: مجموعة الرصاصات

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

challenge icon

التحدي

متوسط

تدريب على التصويب. تحرّك الأسهم بالدبابة إلى اليسار واليمين (جاهزة)، وللهدفين الأحمرين سكربت 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