סיכום: מאגר כדורים
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 40 מתוך 50.
אתגר
בינוניאימון ירי. החצים מזיזים את הטנק שמאלה וימינה (מוכן), ולשתי המטרות האדומות יש סקריפט 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 שניות
}