Menu
CoddyTech

Simpan Angka

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

Setiap field dimulai dari nilai defaultnya saat game dimulai. Pemain yang mengumpulkan 40 permata, keluar, lalu kembali besok akan mendapati jumlah permatanya 0, karena keluar berarti mengakhiri game dan semua yang ada di dalamnya. PlayerPrefs menyimpan nilai-nilai kecil di perangkat pemain di antara game. Setiap nilai disimpan dengan kunci, yaitu string yang kamu pilih, menggunakan SetInt, SetFloat, atau SetString:

PlayerPrefs.SetString("PlayerName", "Robin");
PlayerPrefs.SetInt("LevelReached", 4);
PlayerPrefs.SetFloat("HoursPlayed", 2.5f);
PlayerPrefs.Save();

Untuk membaca kembali suatu nilai, panggil Get dengan tipe yang sama dan kunci yang sama. Kunci yang belum pernah disimpan akan terbaca sebagai 0, 0, atau string kosong. Jadi, pada game pertama pemain, sapaan ini menampilkan nama kosong dan level 0:

void Start()
{
    string player = PlayerPrefs.GetString("PlayerName");
    int level = PlayerPrefs.GetInt("LevelReached");
    Debug.Log(player + " is on level " + level);
}

Kunci membedakan huruf besar dan kecil: GetInt("levelreached") membaca kunci yang belum pernah disimpan dan mengembalikan 0. Satu kunci menyimpan satu tipe, jadi bacalah dengan Get yang cocok dengan Set-nya. Simpan nilai saat nilainya berubah, bukan hanya saat game berakhir. Unity menulis PlayerPrefs ke disk saat game ditutup secara normal, dan PlayerPrefs.Save() langsung menulisnya, sehingga kerusakan sistem tidak akan menghilangkannya. Field static bukan cara untuk mengatasi hal ini: field tersebut bertahan selama game berjalan, dan keluar juga mengakhiri masa berlakunya.

challenge icon

Tantangan

Sedang

Jadikan jumlah lompatan sebagai total seumur hidup yang tersimpan di antara permainan.

  1. Di Update(), setelah jumps++;, tambahkan PlayerPrefs.SetInt("TotalJumps", jumps); dan PlayerPrefs.Save();.
  2. Di Start(), di atas ShowJumps();, muat nilainya: jumps = PlayerPrefs.GetInt("TotalJumps");.

Tekan tombol “Main” dan melompatlah, lalu tekan Stop dan tombol “Main” lagi: jumlahnya terus bertambah. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;
using TMPro;

public class JumpCounter : MonoBehaviour
{
    public TMP_Text jumpsText;
    public float hop = 5f;
    private Rigidbody rb;
    private int jumps;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        ShowJumps();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            rb.linearVelocity = Vector3.up * hop;
            jumps++;
            ShowJumps();
        }
    }

    void ShowJumps()
    {
        jumpsText.text = "Jumps: " + jumps;
    }
}

Semua pelajaran di Membangun Game Sungguhan

Latihan sendiri: Playground Unity