Menu
CoddyTech

סיכום: צריח מודולרי

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

challenge icon

אתגר

קל

בנו את שני הצריחים במטווח מחלקים. ‏TurretControl.cs כבר מסובב כל צריח באמצעות החצים שמאלה וימינה, ו־Shell.cs מטיס פגז קדימה. בסצנה יש ל־Turret1 רכיב Cannon ו־Ammo עם 4 פגזים, ול־Turret2 רכיב TwinCannon ו־Ammo עם 3 פגזים. כתבו את החלקים:

  • Ammo: משתנה shells מסוג int ציבורי ומתודה ציבורית bool Take(). אם נשאר פגז, היא משתמשת באחד ומחזירה true. אם לא נשארו פגזים, היא מתעדת את שם האובייקט ואת is empty, למשל Turret2 is empty, ומחזירה false.
  • Weapon: רכיב מופשט שתמיד מצורף אליו רכיב Ammo, עם shellPrefab ציבורי (מסוג GameObject), ‏cooldown ציבורי מסוג float (המפקח מגדיר אותו ל־1) ומתודה ציבורית Pull(). לחיצה במהלך זמן ההמתנה לא עושה דבר ולא משתמשת בפגז. אחרת, אם Take() נותנת פגז, זמן ההמתנה מתחיל ו־Fire() מופעלת — מתודה מופשטת שכל נשק כותב.
  • Cannon יורה פגז אחד מנקודה שנמצאת יחידה אחת לפני הצריח. TwinCannon יורה שני פגזים תמורת פגז תחמושת אחד, מנקודה שנמצאת 0.4 שמאלה ו־0.4 ימינה מאותה נקודה. פגז מתחיל ב־transform.position + transform.rotation * offset, כשהוא מסובב כמו הצריח (transform.rotation), כאשר offset הוא הנקודה כפי שהיא נראית מהצריח, למשל new Vector3(0f, 0f, 1f).
  • ב־TurretControl, מקש הרווח מפעיל את ההדק של כל Weapon שמותקן בצריח.

לחצו על Play, סובבו וירו עד ששני הצריחים יתרוקנו, ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;

// מה שמשותף לכל כלי הנשק של הצריח.
public class Weapon : MonoBehaviour
{
}

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