Menu
CoddyTech

Simpan Pengaturan

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

Sebuah pengaturan dipilih satu kali dan diharapkan tetap ada setiap kali game dimainkan setelahnya, jadi pengaturan itu disimpan di PlayerPrefs. Saat game dimulai, muat pengaturan, tampilkan nilainya pada kontrol agar layar Pengaturan 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: berupa bool untuk Toggle, dan float untuk Slider, yang posisinya adalah slider.value. Mengatur isOn atau value dari kode mengubah kontrol seperti yang dilakukan pemain, jadi saat nilainya berubah, listener juga dipanggil. Itulah sebabnya listener ditambahkan setelah pemuatan: jika ditambahkan lebih dahulu, listener akan berjalan setiap kali game dimulai dan langsung menyimpan kembali nilai yang dimuat. SetIsOnWithoutNotify dan SetValueWithoutNotify mengatur kontrol tanpa memanggil listener apa pun.

Nilai default menentukan apa yang didapat pemain baru. GetInt("ShowTimer", 1) menampilkan timer sampai pemain menonaktifkannya. Nilai default 0 akan menyembunyikannya dari semua pemain yang tidak pernah membuka pengaturan. Pengaturan float dimuat dengan cara yang sama menggunakan PlayerPrefs.GetFloat(key, defaultValue): GetFloat("MouseSensitivity", 1.5f) memberikan nilai 1.5 kepada pemain baru.

challenge icon

Tantangan

Sedang

Layar Settings memiliki slider volume dari 0 hingga 1 dan teks yang menampilkannya sebagai persentase. Jadikan volume sebagai pengaturan yang tersimpan dengan kunci Volume:

  • Pemain baru memulai dengan nilai 0.8, yang ditampilkan sebagai Volume: 80%.
  • Volume berlaku untuk seluruh game melalui AudioListener.volume, volume utama Unity dari 0 (senyap) hingga 1 (penuh), yang mengatur skala setiap suara dalam game.
  • Saat game dimulai, volume yang tersimpan diterapkan, dan slider serta teks menampilkannya.
  • Saat pemain menggeser slider, volume baru diterapkan, teks menyesuaikan, dan volume disimpan.

ShowVolume(float volume) sudah menulis teksnya.

Tekan Play dan geser slider, lalu tekan Stop dan Play lagi, kemudian tekan Check.

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 slider
    }

    void OnVolumeChanged(float value)
    {
        // Terapkan, tampilkan, dan simpan volume baru
    }

    void ShowVolume(float volume)
    {
        volumeText.text = "Volume: " + Mathf.RoundToInt(volume * 100) + "%";
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Membangun Game Sungguhan