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.
Tantangan
SedangJadikan jumlah lompatan sebagai total seumur hidup yang tersimpan di antara permainan.
- Di
Update(), setelahjumps++;, tambahkanPlayerPrefs.SetInt("TotalJumps", jumps);danPlayerPrefs.Save();. - Di
Start(), di atasShowJumps();, 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
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