Menu
CoddyTech

עיצוב מספרים

חלק מהיחידה בניית משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 3 מתוך 60.

מספר שמחובר למחרוזת מוצג כפי ש-C# כותב אותו: שעון עצר מציג 12.34567, ומספר נקודה צפה שערכו 2 מוצג בתור 2, ללא ספרות עשרוניות כלל. מחרוזת עיצוב ב-ToString() קובעת איך הוא ייראה במקום זאת. כל 0 בה מייצג ספרה שתמיד נכתבת: 7.ToString("000") הוא 007, ו-41.27f.ToString("0.0") הוא 41.3, מעוגל לספרה עשרונית אחת. בשילוב מחרוזות, אותו עיצוב מופיע אחרי נקודתיים: $"{coins:000}", $"{topSpeed:0.0} m/s".

קל יותר לקרוא זמנים כשהם מוצגים בדקות ובשניות. קודם ממירים את הזמן ל-int, פעולה שמשמיטה את השבר; לאחר מכן חילוק שלם ב-60 נותן את מספר הדקות השלמות, ו-% 60 נותן את השניות שנותרו. הקפה של 83.46 שניות:

float lapTime = 83.46f;
int total = (int)lapTime;      // 83
int minutes = total / 60;      // 1
int seconds = total % 60;      // 23
lapText.text = $"Lap: {minutes}:{seconds:00}";   // הקפה: 1:23

ה-00 שומר על שתי ספרות: בלעדיו, הקפה של 64 שניות תוצג בתור 1:4 במקום 1:04. ומכיוון ש-(int) משמיט את השבר במקום לעגל, 59.7 שניות יוצגו בתור 0:59; עיגול היה מציג לרגע 0:60.

challenge icon

אתגר

קל

עצבו את שלושת המספרים של משחק הארקייד.

  1. ב־Update(), הוסיפו תחילה int seconds = (int)playTime;.
  2. הציגו את הניקוד בשש ספרות, Score: 000450, באמצעות {score:000000}, ואת המכפיל עם ספרה אחת אחרי הנקודה, Combo: x2.5, באמצעות {combo:0.0}.
  3. הציגו את הזמן כך: Time: 2:07: seconds / 60, נקודתיים, ואז seconds % 60 בשתי ספרות.

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

נסו בעצמכם

using UnityEngine;
using TMPro;

public class Scoreboard : MonoBehaviour
{
    public TMP_Text scoreText;
    public TMP_Text comboText;
    public TMP_Text timeText;
    public int score;
    public float combo = 1f;
    public float playTime;

    void Update()
    {
        playTime += Time.deltaTime;
        if (Input.GetKeyDown(KeyCode.Space))
        {
            score += (int)(100 * combo);
            combo += 0.5f;
        }

        scoreText.text = "Score: " + score;
        comboText.text = "Combo: x" + combo;
        timeText.text = "Time: " + playTime;
    }
}

כל השיעורים ביחידה בניית משחקים אמיתיים

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