Menu
CoddyTech

Varsayılan Değerle Yükleme

Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 23 / 56.

Hiç kaydedilmemiş bir anahtar 0 olarak okunur ve bazı değerler için 0 iyi bir başlangıç değildir. Bir yarış oyunu, oyuncunun yarışa kaç bilgisayar rakibinin katılacağını seçmesine izin verir ve yeni bir oyuncu 3 rakibe karşı yarışmalıdır. Her Get, anahtar bulunmadığında döndüreceği ikinci bir argüman olan varsayılan değeri alır:

int rivals = PlayerPrefs.GetInt("Rivals", 3);
string driver = PlayerPrefs.GetString("Driver", "Rookie");

Oyuncu tek başına antrenman yapmak için 0 rakip kaydettiğinde, GetInt("Rivals", 3) 0 döndürür: varsayılan değer yalnızca eksik bir anahtarın yerine kullanılır. Bu nedenle, varsayılan bir değer vermek için if (rivals == 0) rivals = 3; kullanmak yanlış bir yöntemdir. Kaydedilmiş bir 0 ile hiç kaydedilmemiş bir değeri ayırt edemez ve her antrenman yarışına yeniden 3 rakip ekler.

PlayerPrefs.HasKey(key), değeri ne olursa olsun bir anahtarın daha önce kaydedilip kaydedilmediğini yanıtlar; böylece ilk oyunu sonraki oyunlardan ayırt eder. Bu oyun yeni bir sürücüyü karşılar:

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);
}

Anahtarı kaydeden herhangi bir koddan önce HasKey kullanın: ilk kayıttan itibaren, anahtar PlayerPrefs.DeleteKey ile kaldırılana kadar true yanıtını verir.

challenge icon

Görev

Orta

Oyun salonu makinesi, oyuncunun kredilerini Credits anahtarı altında tutar: Boşluk tuşu bir kredi karşılığında oyun oynatır ve kalan krediler her oyundan sonra kaydedilir. Yeni oyuncular henüz ele alınmıyor:

  • Kaydedilmiş hiçbir verisi olmayan bir oyuncu 5 ücretsiz krediyle başlar. Tüm kredilerini kullanmış bir oyuncunun kaydedilmiş kredisi 0'dır ve 5 değil, 0 ile başlar.
  • welcomeText nesnesi (Hoş geldin! İşte 5 ücretsiz kredi) yalnızca kaydedilmiş Credits değeri olmayan bir oyuncuya gösterilir. Diğer hiçbir oyuncu bunu görmez.

Play'e basıp bir oyun oynayın, ardından Stop'a ve tekrar Play'e basın: hoş geldin mesajı artık görünmez. Ardından Check'e basın.

Kendin dene

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;
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler