מספרים עשרוניים צריכים 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.
אתגר
קלתקן את הסקריפט של הבלון, ואז גרום לו לצוף גבוה יותר ולהיות גדול יותר.
- לחץ על "שחק": ב-Console מופיעה השגיאה CS0664 בשורה של
height. - שנה את השורה הזו ל-
float height = 3.5f;. - שנה את שורת הגודל ל-
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
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין