CodeBlanks Logo Icon CodeBlanks

Dosyaya yazma

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

Player.cs
using UnityEngine;

public class SaveWriter : MonoBehaviour
{
    // Start icinde dosyaAdi tanimla ve yazdir
}

Örnek çözüm

Player.cs
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

Soru
File.____(filePath, jsonContent);
Cevap
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ı

İleri seviye bölümündeki tüm dersler