עיצוב מספרים
חלק מהיחידה בניית משחקים אמיתיים במסלול ה-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.
אתגר
קלעצבו את שלושת המספרים של משחק הארקייד.
- ב־
Update(), הוסיפו תחילהint seconds = (int)playTime;. - הציגו את הניקוד בשש ספרות,
Score: 000450, באמצעות{score:000000}, ואת המכפיל עם ספרה אחת אחרי הנקודה,Combo: x2.5, באמצעות{combo:0.0}. - הציגו את הזמן כך:
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;
}
}
כל השיעורים ביחידה בניית משחקים אמיתיים
10פרויקט: משחק פלטפורמה תלת־ממדי
המסלולפלטפורמות נעותתרגלו בעצמכם: Unity אונליין