Menu
CoddyTech

Format Angka

Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 3 dari 56.

Angka yang digabungkan dengan string akan ditampilkan seperti cara C# menuliskannya: timer menampilkan 12.34567, dan float bernilai 2 menampilkan 2, tanpa angka desimal sama sekali. Format string di ToString() menentukan tampilannya. Setiap 0 di dalamnya mewakili digit yang selalu ditulis: 7.ToString("000") adalah 007, dan 41.27f.ToString("0.0") adalah 41.3, dibulatkan menjadi satu angka desimal. Dalam interpolasi string, format yang sama ditulis setelah titik dua: $"{coins:000}", $"{topSpeed:0.0} m/s".

Waktu lebih mudah dibaca dalam menit dan detik. Ubah waktu menjadi int terlebih dahulu, yang akan menghilangkan pecahannya. Lalu, pembagian bilangan bulat dengan 60 menghasilkan menit utuh, sedangkan % 60 menghasilkan sisa detiknya. Satu putaran selama 83.46 detik:

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}";   // Lap: 1:23

00 memastikan dua digit ditampilkan: tanpa itu, putaran selama 64 detik akan ditampilkan sebagai 1:4, bukan 1:04. Karena (int) menghilangkan pecahan alih-alih membulatkannya, 59.7 detik ditampilkan sebagai 0:59. Jika dibulatkan, nilainya akan menjadi 0:60 sesaat.

challenge icon

Tantangan

Mudah

Papan skor arcade menampilkan angkanya begitu saja. Space menambahkan 100 poin dikalikan combo dan menaikkan combo sebesar 0.5, sementara playTime menghitung detik yang telah dimainkan (Inspector memulainya dari 47.5). Pertahankan penghitungan seperti sekarang, lalu ubah cara penulisan ketiga teks ini:

  • scoreText: skor dengan enam digit, seperti Score: 000450.
  • comboText: combo dengan satu angka desimal, seperti Combo: x2.5, dan Combo: x1.0 pada awalnya.
  • timeText: menit dan detik bulat, seperti Time: 2:07. Detik selalu ditulis dengan dua digit dan tidak pernah dibulatkan ke atas.

Tekan Jalankan, cetak beberapa skor, lalu tekan Periksa.

Coba sendiri

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;
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Membangun Game Sungguhan