Menu
CoddyTech

יצירות אקראיות

חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 68 מתוך 85.

Random.Range(min, max) בוחרת מספר אקראי, והערך שהיא יכולה להחזיר תלוי בסוג המספרים שתעבירו לה. עם מספרי נקודה צפה, כל ערך מ-min ועד max יכול להתקבל, כולל שני הקצוות. עם מספרים שלמים, max עצמו אינו נכלל. לכן, הטלת קובייה דורשת טווח מ-1 עד 7:

int roll = Random.Range(1, 7);   // 1, 2, 3, 4, 5 או 6
Debug.Log("You rolled " + roll);

הגרסה למספרים שלמים אינה כוללת את max, כך ש-Random.Range(0, names.Length) תמיד מחזירה אינדקס תקף של מערך. פירוש הדבר גם ש-Random.Range(-5, 5) מחזירה רק מספרים שלמים מ-5- עד 4, גם כששומרים את התוצאה במשתנה מסוג מספר נקודה צפה. כתבו Random.Range(-5f, 5f) כדי לקבל כל ערך בטווח.

למיקומים ולכיוונים בתלת־ממד, ל-Unity יש שני וקטורים אקראיים מוכנים לשימוש. Random.insideUnitSphere היא נקודה אקראית בתוך כדור ברדיוס 1 שמרכזו (0, 0, 0). Random.onUnitSphere היא נקודה אקראית על פני הכדור, ולכן היא מייצגת כיוון אקראי באורך 1. transform.position + Random.insideUnitSphere * 2f היא נקודה במרחק של עד 2 יחידות לכל כיוון, כולל למעלה ולמטה.

challenge icon

אתגר

בינוני

כל לחיצה מפילה ארגז מנקודה אקראית מעל הרצפה.

  1. בתוך ה־if של הלחיצה, בחרי float x = Random.Range(-4f, 4f); ואת float z באותו אופן.
  2. קראי ל־Instantiate(cratePrefab, new Vector3(x, 5, z), Quaternion.identity);.

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

נסו בעצמכם

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // הפל ארגז ממיקום אקראי: x ו-z בין -4 ל-4, y = 5
        }
    }
}

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

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