Menu
CoddyTech

Format Angka

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

Angka yang digabungkan dengan string ditampilkan seperti cara C# menuliskannya: timer menampilkan 12.34567, dan float yang bernilai 2 menampilkan 2, tanpa angka desimal sama sekali. Format string dalam 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, sehingga bagian pecahannya dihilangkan. Lalu, pembagian bilangan bulat dengan 60 menghasilkan jumlah menit utuh, dan % 60 menghasilkan sisa detik. Waktu putaran 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 mempertahankan dua digit: tanpa itu, waktu putaran 64 detik akan ditampilkan sebagai 1:4, bukan 1:04. Karena (int) menghilangkan bagian pecahan, bukan membulatkannya, 59.7 detik ditampilkan sebagai 0:59; pembulatan akan menampilkan 0:60 sesaat.

challenge icon

Tantangan

Mudah

Format tiga angka di arcade.

  1. Di Update(), tambahkan int seconds = (int)playTime; terlebih dahulu.
  2. Tampilkan skor dalam enam digit, Score: 000450, dengan {score:000000}, dan combo dengan satu angka desimal, Combo: x2.5, dengan {combo:0.0}.
  3. Tampilkan waktu dalam format Time: 2:07: seconds / 60, tanda titik dua, lalu seconds % 60 dalam dua digit.

Tekan tombol “Main” dan tekan Space: skor akan tetap terdiri dari enam digit. Lalu tekan tombol “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;
    }
}

Semua pelajaran di Membangun Game Sungguhan

Latihan sendiri: Playground Unity