פריטים לאיסוף
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-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) יסיר את השחקן.
אתגר
קלהשחקן נושא 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 של השחקן לוקח את מה שנכנס; הארגז שומר את השאר ונעלם כשהוא מתרוקן
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוף