פריטים נופלים
שיעור 13 מתוך 16 בקורס משחק Unity: שובר לבנים של Coddy.
לבנה שבורה מפילה לפעמים שדרוג שנופל לעבר המשטח. האם הוא ייפול נקבע בהגרלה: Random.value הוא מספר ממשי אקראי בין 0 ל-1, לכן Random.value < 0.15f מתקיים בערך 15 פעמים מתוך 100. שמירת הסיכוי בשדה מאפשרת לך לכוונן אותו, וגם מאפשרת לבדיקה להגדיר אותו ל-1 כדי שתתרחש נפילה בכל פעם, או ל-0 כדי שלא תהיה נפילה כלל.
איזה שדרוג ייפול נקבע בהגרלה שנייה: בחירת אינדקס אקראי מתוך מערך של קדם-אובייקטים. בשימוש ב-Random.Range עם מספרים שלמים, הערך המרבי אינו נכלל, לכן Random.Range(0, array.Length) יכול לבחור כל איבר. השלל של אויב:
public GameObject[] loot;
public float lootChance = 0.25f;
void DropLoot()
{
if (Random.value >= lootChance) return;
int pick = Random.Range(0, loot.Length);
Instantiate(loot[pick], transform.position, Quaternion.identity);
}שדרוג נופל במהירות קבועה כשהוא מזיז את עצמו בכל פריים, והורס את עצמו ברגע שהוא נמצא מתחת לאזור המשחק, כך ששדרוגים שהוחמצו לא יצטברו. לקדם-האובייקט שלו יש Rigidbody קינמטי וקוליידר טריגר, כך שמערכת הפיזיקה יודעת שהוא זז, והוא יוכל לזהות מתי הוא מגיע למשטח.
אתגר
קשה- ב־
PowerUp, הוסף אתpublic float fallSpeed = 3fואתpublic float bottomY = -9f. בתוךUpdate(), הזז כלפי מטה במהירות שלfallSpeedיחידות בשנייה, והשמד את שדרוג הכוח ברגע שערך ה־y שלו נמוך מ־bottomY. - ב־
GameManager, הוסף אתpublic GameObject[] powerUps(הסצנה מקשרת לקדם־הטיפוס WidePowerUp ו־MultiPowerUp) ואתpublic float dropChance = 0.15f. - בתוך
BrickBroken, בהסתברות שלdropChance, צור פריט אקראי אחד מתוךpowerUpsבמקום שבו הייתה הלבנה.
לעת עתה, שדרוגי הכוח נופלים דרך המשטח: בשיעור הבא נלמד לתפוס אותם.
לחץ על Play, שבור לבנים עד שאחת מהן מפילה פריט, ואז לחץ על Check.
נסו בעצמכם
using UnityEngine;
public class PowerUp : MonoBehaviour
{
// הפרק האחרון: שדרוגים שנופלים מלבנים שבורות.
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.