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 برقمين.

اضغط «العب» ثم اضغط مفتاح المسافة: ستظل النتيجة مكوّنة من ستة أرقام. ثم اضغط «تحقق».

جرّب بنفسك

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;
    }
}

جميع دروس إنشاء ألعاب حقيقية

تدرّب بنفسك: Playground لـ Unity