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:2300 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.
Tantangan
MudahPapan 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, sepertiScore: 000450.comboText: combo dengan satu angka desimal, sepertiCombo: x2.5, danCombo: x1.0pada awalnya.timeText: menit dan detik bulat, sepertiTime: 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;
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Membangun Game Sungguhan
4Scene dan Level
Muat SceneMulai Ulang LevelLevel BerikutnyaPertahankan Antar-SceneRekap: Pilih Level10Proyek: Platformer 3D
LintasanPlatform Bergerak2Tombol dan Layar
Tombol dan onClickLambdaMenghubungkan di InspectorPanel Aktif dan NonaktifBilah KesehatanRangkuman: Toko Upgrade5Menyimpan dengan PlayerPrefs
Simpan AngkaMuat dengan Nilai DefaultSkor TertinggiSimpan PengaturanUlasan: Koin di Bank