Simpan Pengaturan
Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 25 dari 60.
Pengaturan dipilih satu kali dan diharapkan tetap ada setiap kali game dimainkan lagi, jadi simpan pengaturan tersebut di PlayerPrefs. Saat game dimulai, muat pengaturan, terapkan nilainya pada kontrol agar layar Settings menampilkannya, lalu terapkan pengaturan itu ke game. Saat pemain mengubah kontrol, terapkan nilai baru dan simpan. Toggle ini (using UnityEngine.UI;) menampilkan atau menyembunyikan timer di layar. Karena PlayerPrefs tidak memiliki tipe bool, toggle ini menyimpan 1 untuk aktif dan 0 untuk nonaktif:
public Toggle timerToggle;
public GameObject timerText;
void Start()
{
bool show = PlayerPrefs.GetInt("ShowTimer", 1) == 1;
timerToggle.isOn = show;
timerText.SetActive(show);
timerToggle.onValueChanged.AddListener(OnTimerToggled);
}
void OnTimerToggled(bool on)
{
timerText.SetActive(on);
PlayerPrefs.SetInt("ShowTimer", on ? 1 : 0);
PlayerPrefs.Save();
}onValueChanged meneruskan nilai baru kontrol ke listener: nilai bool untuk Toggle, nilai float untuk Slider, yang posisinya adalah slider.value. Mengatur isOn atau value dari kode mengubah kontrol seperti saat pemain mengubahnya. Jadi, saat nilainya berubah, fungsi itu juga memanggil listener. Karena itulah listener ditambahkan setelah pengaturan dimuat. Jika listener ditambahkan lebih dahulu, listener akan dijalankan setiap kali game dimulai dan langsung menyimpan kembali nilai yang dimuat. SetIsOnWithoutNotify dan SetValueWithoutNotify mengatur kontrol tanpa memanggil listener mana pun.
Nilai default menentukan nilai yang didapat pemain baru. GetInt("ShowTimer", 1) menampilkan timer sampai pemain menonaktifkannya. Nilai default 0 akan menyembunyikannya bagi semua orang yang tidak pernah membuka pengaturan. Pengaturan float dimuat dengan cara yang sama menggunakan PlayerPrefs.GetFloat(key, defaultValue): GetFloat("MouseSensitivity", 1.5f) memberi pemain baru nilai 1.5. Pengaturan volume diterapkan ke AudioListener.volume, volume utama Unity dari 0 (senyap) sampai 1 (penuh), yang mengatur skala semua suara di game.
Tantangan
SedangJadikan penggeser volume sebagai pengaturan tersimpan dengan kunci Volume.
- Di
Start(), muatPlayerPrefs.GetFloat("Volume", 0.8f), masukkan nilainya keslider.valuedanAudioListener.volume, lalu panggilShowVolume. - Kemudian tambahkan
slider.onValueChanged.AddListener(OnVolumeChanged);. - Di
OnVolumeChanged, terapkanvaluekeAudioListener.volume, tampilkan nilainya, lalu simpan denganPlayerPrefs.SetFloatdanPlayerPrefs.Save().
Tekan tombol “Main” dan geser penggesernya, lalu tekan Berhenti dan tombol “Main”: penggeser tetap di posisi terakhir. Lalu tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class VolumeSetting : MonoBehaviour
{
public Slider slider;
public TMP_Text volumeText;
void Start()
{
// Muat volume yang tersimpan, terapkan dan tampilkan, lalu pantau perubahan slider
}
void OnVolumeChanged(float value)
{
// Terapkan, tampilkan, dan simpan volume baru
}
void ShowVolume(float volume)
{
volumeText.text = "Volume: " + Mathf.RoundToInt(volume * 100) + "%";
}
}
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