Menu
CoddyTech

מספרים עשרוניים צריכים f

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

מספרים שלמים אינם מספיקים למשחק: בלון מרחף בגובה 3.5, ושחקן רץ במהירות של 4.2 יחידות בשנייה. למספרים עם נקודה עשרונית יש טיפוס משלהם, float:

float speed = 4.2f;

שימו לב ל-f שבסוף. ב-C#, מספר רגיל כמו 4.2 הוא מסוג double, טיפוס עשרוני נוסף, והמיקומים והגדלים של Unity הם מסוג float. ה-f מציין ל-C# שהמספר הוא מסוג float. אם תשמיטו אותו, Unity תסרב להתחיל את המשחק ותציג את השגיאה הזאת ב-Console:

error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type

זה נראה מפחיד, אבל המשמעות היא רק „להוסיף f”. מספר שלם כמו 2 לא צריך f: הוא מתאים ל-float כמו שהוא.

עוד הפתעה: חלוקה של שני ערכי int משאירה רק את החלק השלם, לכן 7 / 2 הוא 3. כתבו 7 / 2f כדי לקבל 3.5.

challenge icon

אתגר

קל

תקן את הסקריפט של הבלון, ואז גרום לו לצוף גבוה יותר ולהיות גדול יותר.

  1. לחץ על "שחק": ב-Console מופיעה השגיאה CS0664 בשורה של height.
  2. שנה את השורה הזו ל-float height = 3.5f;.
  3. שנה את שורת הגודל ל-float size = 1.5f;. לכל מספר עם נקודה עשרונית צריך להוסיף f.

לחץ על "שחק": הבלון צף בגובה 3.5, וגודלו גדול פי אחד וחצי. לאחר מכן לחץ על "בדיקה".

נסו בעצמכם

using UnityEngine;

public class Balloon : MonoBehaviour
{
    void Start()
    {
        float height = 2.5;
        float size = 1;

        transform.position = new Vector3(0, height, 0);
        transform.localScale = new Vector3(size, size, size);
    }
}

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

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