Menu
CoddyTech

Tampilkan Skor

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

text pada teks adalah sebuah string, jadi angka harus diubah menjadi teks sebelum ditampilkan. Menggabungkannya dengan string menggunakan + akan melakukannya: "Wood: " + wood menjadi Wood: 12 saat wood bernilai 12, dan wood.ToString() menghasilkan 12. Nilai int saja tidak cocok: woodText.text = wood; gagal dengan CS0029, Tidak dapat mengonversi tipe 'int' menjadi 'string' secara implisit.

Angka disimpan dalam field int, dan teks hanya menampilkannya. Satu method menulis ulang teks dari field tersebut. Setiap perubahan pada angka memanggilnya, begitu juga Start(), sehingga frame pertama menampilkan nilai sebenarnya, bukan nilai yang diketik di Inspector. Di sini, tombol Space menebang 3 batang kayu:

public TMP_Text woodText;
private int wood;

void Start()
{
    ShowWood();
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        wood += 3;
        ShowWood();
    }
}

void ShowWood()
{
    woodText.text = "Wood: " + wood;
}

Teks hanya berubah saat wood berubah. Menulis ulang teks di setiap Update() akan terlihat sama, tetapi itu akan membuat string baru 60 kali per detik tanpa alasan. Urutannya penting: jika ShowWood() dipanggil sebelum wood += 3, teks akan menampilkan jumlah lama, tertinggal satu kali tekan.

challenge icon

Tantangan

Mudah

Tukang kebun menanam pohon. Tombol panah menggerakkannya dan tombol Space menanam bibit selama masih ada benih, seperti yang sudah dilakukan Gardener.cs. Tampilkan jumlahnya di layar; scene menghubungkan seedsText dan treesText:

  • seedsText menampilkan sisa benih, seperti Seeds: 4, dan treesText menampilkan pohon yang sudah ditanam, seperti Trees: 1.
  • Keduanya menampilkan nilai yang benar sejak frame pertama dan setelah setiap penanaman. Inspector memberi tukang kebun 5 benih, meskipun teks di scene masih menampilkan Seeds: 10 dan Trees: ?.
  • Tulis satu method yang mengatur kedua teks, lalu panggil method itu saat diperlukan.

Tekan Play, tanam sampai benih habis, lalu tekan Check.

Coba sendiri

using UnityEngine;
using TMPro;

public class Gardener : MonoBehaviour
{
    public float speed = 4f;
    public int seeds = 10;
    public GameObject saplingPrefab;
    public TMP_Text seedsText;
    public TMP_Text treesText;
    private int trees;

    void Update()
    {
        float move = Input.GetAxisRaw("Horizontal");
        transform.Translate(move * speed * Time.deltaTime, 0f, 0f);

        if (Input.GetKeyDown(KeyCode.Space) && seeds > 0)
        {
            Vector3 spot = new Vector3(transform.position.x, 0.5f, 1.5f);
            Instantiate(saplingPrefab, spot, Quaternion.identity);
            seeds--;
            trees++;
        }
    }

    // Tampilkan Seeds: dan Trees: pada kedua teks sejak frame pertama
}
quiz iconUji dirimu

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

Semua pelajaran di Membangun Game Sungguhan