تنسيق الأرقام
جزء من قسم إنشاء ألعاب حقيقية في رحلة 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برقمين.
اضغط «العب» ثم اضغط مفتاح المسافة: ستظل النتيجة مكوّنة من ستة أرقام. ثم اضغط «تحقق».
جرّب بنفسك
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;
}
}
جميع دروس إنشاء ألعاب حقيقية
4المشاهد والمستويات
تحميل مشهدإعادة تشغيل المستوىالمستوى التاليالاحتفاظ بالبيانات بين المشاهدمراجعة: اختيار المستوى10مشروع: لعبة منصات ثلاثية الأبعاد
المسارمنصات متحركة2الأزرار والشاشات
الأزرار وonClickالتعبيرات Lambdaالربط في Inspectorتشغيل اللوحات وإيقافهاأشرطة الصحةمراجعة: متجر الترقيات5الحفظ باستخدام PlayerPrefs
حفظ رقمالتحميل بقيمة افتراضيةأعلى نتيجةحفظ الإعداداتمراجعة: العملات في البنك6مشروع: عدّاء لا نهاية له
ثلاثة مساراتعقبات أمامكتدرّب بنفسك: Playground لـ Unity