Dosyaya yazma
- Oyun Geliştirme kursu
- İleri seviye
- Ders 21/71
- 4 dk
Application.persistentDataPath ile dosyaya yazmayı öğrenirsin.
Güvenli Dosya Yolu: persistentDataPath
Masaüstü, iOS ve Android gibi platformlarda oyunun kurulu olduğu dizine yazma izni bulunmaz. Unity, her işletim sisteminde güvenle dosya yazılıp saklanabilen standart dizini Application.persistentDataPath ile sunar.
using System.IO;
// Platformdan bagimsiz guvenli dosya yolu olusturma
string path = Path.Combine(Application.persistentDataPath, "save.json");Path.Combine metodu işletim sistemine uygun eğik çizgi (slash) ayracını otomatik olarak seçer.
File.WriteAllText ile Diske Yazma
Serileştirilmiş bir JSON metnini diske yazmanın en pratik yolu System.IO.File.WriteAllText fonksiyonudur. Bu metot belirtilen konumda dosya yoksa oluşturur, varsa üzerine yazar.
using System.IO;
string json = "{\"health\": 100}";
File.WriteAllText(path, json);Dosya yazma işlemleri sırasında try-catch blokları kullanarak yetki veya disk alanı hatalarını yakalamak iyi bir uygulamadır.
Uygulama Kayıt dosya yolu oluşturma
Bir Start metodu tanımla. İçinde string dosyaAdi = "save.json"; tanımla ve konsola "Kayit dosyasi: " + dosyaAdi yazdır.
Başlangıç kodu
using UnityEngine;
public class SaveWriter : MonoBehaviour
{
// Start icinde dosyaAdi tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class SaveWriter : MonoBehaviour
{
void Start()
{
string dosyaAdi = "save.json";
Debug.Log("Kayit dosyasi: " + dosyaAdi);
}
}Beklenen çıktı
Kayit dosyasi: save.json
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Farklı işletim sistemlerinde oyun kayıt dosyalarını güvenle yazmak için hangi Unity yolu kullanılmalıdır?
- Application.temporaryCachePath
- Application.persistentDataPath Doğru cevap
- Application.dataPath
- Application.streamingAssetsPath
Açıklama: Application.persistentDataPath, tüm platformlarda kullanıcı verilerini kalıcı ve güvenli olarak depolamak için ayrılmış yoldur.
2 Dosyaya metin yaz
File.____(filePath, jsonContent);
File.WriteAllText(filePath, jsonContent);
Açıklama: Metin içeriğini doğrudan dosyaya yazmak için 'File.WriteAllText' metodu kullanılır.
3 Dosyaya yazma terimleri
| Kavram | Anlamı |
|---|---|
persistentDataPath |
Platforma özgü güvenli kayıt dizini |
Path.Combine |
Dizin ve dosya adını güvenle birleştirir |
File.WriteAllText |
Metni tek hamlede dosyaya yazar |
StreamWriter |
Akış tabanlı dosya yazma sınıfı |