Muat dengan Nilai Default
Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 23 dari 56.
Kunci yang belum pernah disimpan akan terbaca sebagai 0, dan 0 bukan nilai awal yang cocok untuk beberapa nilai. Dalam game balapan, pemain dapat memilih jumlah rival komputer yang ikut balapan, dan pemain baru seharusnya balapan melawan 3 rival. Setiap Get menerima argumen kedua, yaitu nilai default, yang dikembalikan saat kunci tidak ditemukan:
int rivals = PlayerPrefs.GetInt("Rivals", 3);
string driver = PlayerPrefs.GetString("Driver", "Rookie");Setelah pemain menyimpan 0 rival agar bisa berlatih sendirian, GetInt("Rivals", 3) mengembalikan 0: nilai default hanya mengisi kunci yang belum ada. Karena itu, if (rivals == 0) rivals = 3; adalah cara yang salah untuk memberi nilai default. Cara ini tidak dapat membedakan 0 yang tersimpan dari kunci yang belum disimpan, dan menetapkan kembali 3 rival untuk setiap balapan latihan.
PlayerPrefs.HasKey(key) menjawab apakah suatu kunci pernah disimpan, apa pun nilainya, sehingga dapat membedakan game pertama dari game berikutnya. Game ini menyapa pembalap baru:
void Start()
{
if (!PlayerPrefs.HasKey("Driver"))
{
Debug.Log("First race! Pick a name in the garage.");
}
string driver = PlayerPrefs.GetString("Driver", "Rookie");
Debug.Log("Driver: " + driver);
}Panggil HasKey sebelum kode apa pun yang menyimpan kunci tersebut: sejak pertama kali disimpan, hasilnya adalah true sampai kunci itu dihapus dengan PlayerPrefs.DeleteKey.
Tantangan
SedangMesin arcade menyimpan kredit pemain dengan key Credits: tombol Space memainkan game dengan satu kredit, dan sisa kredit disimpan setelah setiap game. Pemain baru belum ditangani:
- Pemain yang belum menyimpan apa pun memulai dengan 5 kredit gratis. Pemain yang sudah menggunakan semua kredit memiliki 0 kredit tersimpan, dan memulai dengan 0, bukan 5.
- object
welcomeText(Welcome! Here are 5 free credits) hanya ditampilkan kepada pemain yang belum menyimpanCredits. Pemain lainnya tidak melihatnya.
Tekan Play dan mainkan game, lalu tekan Stop dan Play lagi: pesan selamat datang sudah tidak ada. Lalu tekan Check.
Coba sendiri
using UnityEngine;
using TMPro;
public class ArcadeCredits : MonoBehaviour
{
public TMP_Text creditsText;
public GameObject welcomeText;
private int credits;
void Start()
{
credits = PlayerPrefs.GetInt("Credits");
welcomeText.SetActive(false);
ShowCredits();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && credits > 0)
{
credits--;
PlayerPrefs.SetInt("Credits", credits);
PlayerPrefs.Save();
ShowCredits();
}
}
void ShowCredits()
{
creditsText.text = "Credits: " + credits;
}
}
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