Menu
CoddyTech

פריטים לאיסוף

חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 17 מתוך 63.

פריט לאיסוף הוא מפעיל עם סקריפט משלו. כשמשהו נכנס אליו, הפריט בודק אם זה השחקן, מעביר לו את ההשפעה שלו ומשמיד את עצמו. הסקריפט של השחקן שומר את התוצאה ומספק עבורה מתודה ציבורית. חבילת הבריאות הזו מרפאת כל אובייקט שיש לו סקריפט Health:

// HealthPack.cs
public int amount = 25;

void OnTriggerEnter(Collider other)
{
    if (other.TryGetComponent(out Health health) && health.hp < 100)
    {
        health.Heal(amount);
        Destroy(gameObject);
    }
}
// Health.cs, על השחקן
public int hp = 50;

public void Heal(int amount)
{
    hp = Mathf.Min(hp + amount, 100);
    Debug.Log("HP: " + hp);
}

other.TryGetComponent(out Health health) מחזירה false עבור ארגז שמחליק לתוך חבילת הבריאות, כך שרק אובייקט עם סקריפט Health יכול לקחת אותה, ושחקן עם בריאות מלאה משאיר את החבילה לפעם מאוחרת יותר. החבילה מוצאת את השחקן דרך other, ולכן אין צורך בהפניה מה-Inspector עבור אף חבילה, ושלב יכול להכיל חמישים כאלה. Heal היא public כי סקריפט אחר קורא לה, והמגבלה של 100 נמצאת בתוך Health, המקום היחיד שמנהל את hp. Destroy(gameObject) מסיר את החבילה; Destroy(other.gameObject) יסיר את השחקן.

challenge icon

אתגר

קל

השחקן נושא Blaster: ammo (4 בתחילת המשחק) ו-maxAmmo (10). החצים מזיזים אותו ומקש הרווח יורה, ושניהם נכתבים. גרום לארגזי התחמושת למלא אותו מחדש:

  • ב-Blaster.cs, הוסף מתודה ציבורית int AddAmmo(int amount). היא לוקחת מתוך amount את הכמות המרבית שנכנסת בלי לעבור את maxAmmo, מתעדת את הסכום החדש, למשל Ammo: 7, ומחזירה כמה נלקח.
  • ב-AmmoCrate.cs, כשהשחקן נכנס לארגז, העבר ל-Blaster את amount של הארגז והפחת ממנו את הכמות שנלקחה. ארגז שהתרוקן מוסר; ארגז שעוד נותרה בו תחמושת נשאר, עם הכמות שנותרה, לביקור מאוחר יותר.

בארגז הראשון יש 3 ובשני 5. לחץ על Play, לך ימינה, ירה כמה יריות וחזור אל הארגז השני, ואז לחץ על Check.

נסו בעצמכם

using UnityEngine;

public class AmmoCrate : MonoBehaviour
{
    public int amount = 3;

    void OnTriggerEnter(Collider other)
    {
        // ה-Blaster של השחקן לוקח את מה שנכנס; הארגז שומר את השאר ונעלם כשהוא מתרוקן
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה פיזיקה ומשחקיות