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:2300 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.
Tantangan
MudahFormat tiga angka di arcade.
- Di
Update(), tambahkanint seconds = (int)playTime;terlebih dahulu. - Tampilkan skor dalam enam digit,
Score: 000450, dengan{score:000000}, dan combo dengan satu angka desimal,Combo: x2.5, dengan{combo:0.0}. - Tampilkan waktu dalam format
Time: 2:07:seconds / 60, tanda titik dua, laluseconds % 60dalam 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
2Tombol dan Layar
Tombol dan onClickLambdaMenghubungkan di InspectorPanel Aktif dan NonaktifBilah KesehatanRangkuman: Toko Upgrade5Menyimpan dengan PlayerPrefs
Simpan AngkaMuat dengan Nilai DefaultSkor TertinggiSimpan PengaturanUlasan: Koin di BankLatihan sendiri: Playground Unity