Menu
CoddyTech

סיכום: מאגר כדורים

חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 40 מתוך 50.

challenge icon

אתגר

בינוני

אימון ירי. החצים מזיזים את הטנק שמאלה וימינה (מוכן), ולשתי המטרות האדומות יש סקריפט Target עם Hit() (מוכן). גרמו לטנק לירות קליעים ממאגר:

  • ב־Tank.cs, החזיקו ObjectPool<Bullet> שיוצר קליעים מתוך bulletPrefab, מפעיל אותם כשמוציאים אותם ומכבה אותם כשהם חוזרים, משמיד את אלה שהוא משחרר, ומשאיר לכל היותר 4 קליעים במאגר.
  • מקש הרווח מוציא קליע מהמאגר ומתחיל אותו במרחק של יחידה אחת לפני הטנק.
  • ב־Bullet.cs, קליע עף קדימה (+z) במהירות speed (15). כשהוא פוגע במשהו עם סקריפט Target (הקוליידר של הקליע הוא טריגר), הוא קורא ל־Hit() של המטרה וחוזר מיד למאגר. קליע שלא פוגע בכלום חוזר לאחר life (1) שניות.
  • כל ירייה מעניקה לקליע את מלוא זמן החיים שלו, גם אם נעשה בו שימוש חוזר, והקליע חוזר למאגר פעם אחת לכל ירייה.

לחצו על Play, ירו בשתי המטרות ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;
using UnityEngine.Pool;

public class Bullet : MonoBehaviour
{
    public float speed = 15f;
    public float life = 1f;

    // טוס קדימה; חזור למאגר כשאתה פוגע ב-Target, או לאחר life שניות
}

כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity