Karşılaşılan en büyük sorunlardan biride Yapılan Oyunlarda Geçilen Bölümler , Toplanılan Altın yada(Para Birimi) , Alınan Silahlar ,Yapılan Skor Gibi Verilerin Saklanmasıdır.
Bunun İçin 4 Yöntem Var Birinci Eğer Oyununuz Online(Çoklu Oyuncu) Bir Oyunsa
Böyle Bilgileri Sunucunuz da Saklayabilirsiniz.
Eğer Oyununuzu Online Yapmadıysanız İlk Anlattığım Kısım İşimize Yaramaz.
İkinci Yöntem Google'nin Oyun Geliştiriciler İçin Oluşturduğu (Cloud Save) Bulut Kaydetme Sistemi Vardır.
Ama Burada Oyunu Oynayan Kişi İnternet'i olmadığı durumlarda Verileri Kaydediyor mu?
Bununla Alakalı Pek Fazla Bilgim Yok açıkçası.
Üçüncü yöntem İnternet Olmasa Dahi Sizim Belirlediğiniz Verileri Kaydeder.
Bu sistemde yazdığınız kodda telefona yada telefona bir klasör oluşturup bu bilgileri orada saklıyorsunuz. Bu hem uzun hemde Çok güvenli Olmayan Bir Sistem.
Özellikle Çok Uzun Kodlar Yazdığınızdan Dolayı Bu Kısmı Önermem.
Ve Son Olarak Dördüncü Yöntem İse Çok Basit Ve Kullanımı Acayip Kolay (Playerprefs) sistemi. Burada Oluşturduğunuz bir (int ,float ,string) Değerlerini tek Satır kod ile çağırıp
tek satır kod ile kaydedebiliyorsunuz.
Aşağıda Yazdığım Kodda Oluşturmuş Olduğum Skor Değerini (Playerprefs.GetInt) Metodu
ile Kolayca Çağırabiliyorum.
Tırnak içinde Aldığım A harfi ise ("A") Oluşturulan Klasörün ismidir.
Kısaca Anlatmak Gerekirse (A klasörünün İçindeki Scores Değerini Bana Getir) Anlamına Geliyor.
Skor Değerini Kaydettirmek için (Playerprefs.SetInt) Metodunu Kullanıyoruz.
Bu Şekilde Skorları Rahatlıklar Kaydedebiliyoruz Ve Oyunu Kapatıp Tekrar Açsak Dahi
Oyundaki Skor Kaydettiğimiz Skordan Devam Ediyor.
Burada ise eğer ilk defa kayıt edeceksek (A klasörünün içine Scores Değerini Kaydet) Metodunu,
Eğer ikinci yada daha ileri kayıtlar yapıyorsa (A klasörünün içindeki eski scores değerinin yerine yeni scores değerini Kaydet) metodu Uygulanır.
Bu metot ile Android Bir Uygulama Yapıp Oyundaki verileri silmek isterseniz Telefonunuzdan
Ayarlar,Uygulamalar,yaptığınız oyunu bulup Ön Belleği Temizle Yada Verileri Temizle Seçeneğine Tıklarsanız Oyunun İçindeki Tüm Değerler Silinir En Baştan Başlar.
İlk Örneğimizde faremiz'in Sol Düğmesine Tıkladığımızda Skoru bir bir arttırıp Bu skoru Kaydettiriyoruz.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Score : MonoBehaviour
{
public int Scores;
void Start()
{
Scores = PlayerPrefs.GetInt("A"); // Bu Kısımda Scores Değerimizi Çağırıyoruz.
Debug.Log("Score:" + Scores);
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Scores++; // Burada Scores Değerini 1 Arttırıyoruz.
PlayerPrefs.SetInt("A", Scores); Burada ise Scores Değerini Kaydediyoruz.
Debug.Log("Score:" + Scores);
}
}
}
İkinci Örneğimizde İse Altına Dokunduğunda Altını Alıp Altın Değerimizi Rastgele Belirlediğimiz iki rakam Arasında Arttırıp Altınımızı Kaydedecek.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Coin: MonoBehaviour
{
public int Coins;
void Start()
{
Coins= PlayerPrefs.GetInt("B"); // Bu Kısımda Scores Değerimizi Çağırıyoruz.
Debug.Log("Altın:" + Coins);
}
VoidOnCollisionEnter(Collision C){
if(C.gameobject.tag == "Coins")
{
Coins += Random.Range(8,25);
PlayerPrefs.SetInt("Altın",Coins);
}
}
}
Eğer Aklınızda Kalan bir soru olursa yada Yapmak isteyip de yapamadığınız bir Bölüm Olursa Yorum Atabilirsiniz.