Menu
CoddyTech

נפילות

שיעור 14 מתוך 19 בקורס 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 קינמטי וקוליידר טריגר, כך שמערכת הפיזיקה יודעת שהוא זז, והוא יוכל לזהות מתי הוא מגיע למשטח.

challenge icon

אתגר

קשה

לבנים שבורות מפילות לפעמים שדרוג.

  1. ב־PowerUp, הוסיפו fallSpeed = 3f ו־bottomY = -9f; בתוך Update(), הפילו במהירות fallSpeed בכל שנייה והשמידו אותו מתחת ל־bottomY.
  2. ב־GameManager, הוסיפו public GameObject[] powerUps; ו־public float dropChance = 0.15f;
  3. ב־BrickBroken, אם Random.value < dropChance, צרו מופע של powerUps[Random.Range(0, powerUps.Length)] במיקום של הלבנה.

לחצו על "שחק" ושברו לבנים: מדי פעם תיפול מהן שדרוג (בשלב הבא נתפוס אותו). לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

using UnityEngine;

public class PowerUp : MonoBehaviour
{
    // הפרק האחרון: חיזוקים שנופלים מלבנים שבורות.
}

כל השיעורים ביחידה Unity: משחק שובר לבנים

תרגלו בעצמכם: Unity אונליין