Meydan okuma 3: Save JSON
- Oyun Geliştirme kursu
- İleri seviye
- Ders 69/71
- 5 dk
JsonUtility.ToJson ile sınıfı JSON'a yazan script yazarsın.
Meydan Okuma 3: JSON Kayıt Sistemi
Oyun ilerlemesini kalıcı kılmak için [System.Serializable] ile işaretlenmiş veri sınıfları kullanılır. JsonUtility.ToJson(data) fonksiyonu bellekteki nesneyi doğrudan JSON metnine dönüştürür.
[System.Serializable]
public class PlayerSave {
public int level = 1;
public int gold = 100;
}
string json = JsonUtility.ToJson(new PlayerSave());Elde edilen metin Application.persistentDataPath dizinindeki bir dosyaya kaydedilerek tüm platformlarda güvenle saklanır.
Uygulama JSON kayıt verisi testi
Bir Start metodu tanımla. İçinde string kayitMetni = "Seviye: 10, Altin: 250"; tanımla ve konsola "Kayit verisi: " + kayitMetni yazdır.
Başlangıç kodu
using UnityEngine;
public class JsonSaveTester : MonoBehaviour
{
// Start icinde kayitMetni tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class JsonSaveTester : MonoBehaviour
{
void Start()
{
string kayitMetni = "Seviye: 10, Altin: 250";
Debug.Log("Kayit verisi: " + kayitMetni);
}
}Beklenen çıktı
Kayit verisi: Seviye: 10, Altin: 250
Uygulama Kayıt sürüm kontrolü
Bir Start metodu tanımla. İçinde int kayitSurumu = 3; tanımla ve konsola "Kayit surumu: " + kayitSurumu yazdır.
Başlangıç kodu
using UnityEngine;
public class SaveVersionTester : MonoBehaviour
{
// Start icinde kayitSurumu tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class SaveVersionTester : MonoBehaviour
{
void Start()
{
int kayitSurumu = 3;
Debug.Log("Kayit surumu: " + kayitSurumu);
}
}Beklenen çıktı
Kayit surumu: 3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir veri sınıfının JsonUtility tarafından JSON metnine dönüştürülebilmesi için sınıf tanımının üstüne hangi nitelik eklenmelidir?
- [DisallowMultipleComponent]
- [System.Serializable] Doğru cevap
- [HideInInspector]
- [ExecuteAlways]
Açıklama: [System.Serializable] niteliği, Unity'nin sınıf alanlarını okuyup JSON metnine dönüştürmesine olanak tanır.
2 Nesneyi JSON metnine dönüştür
string jsonString = JsonUtility.____(gameSave);
string jsonString = JsonUtility.ToJson(gameSave);
Açıklama: Bir nesneyi JSON metnine çevirmek için 'JsonUtility.ToJson' çağrılır.
3 Kayıt mekanizması kavramları
| Kavram | Anlamı |
|---|---|
JsonUtility.ToJson |
Nesneyi JSON metnine serileştirir |
JsonUtility.FromJson |
JSON metnini nesneye dönüştürür |
[System.Serializable] |
Sınıfı serileştirmeye açan nitelik |
persistentDataPath |
Kayıt için güvenli platform dizini |