Aşağıdaki resimler size fikir verebilir.
NPlay - BeGone |
All That Matters |
- Windows : Registry -> HKCU\Software\[kuruluş_adı]\[ürün_adı]
- Windows WebPlayer : %APPDATA%\Unity\WebPlayerPrefs\ [kuruluş_adı]\[ürün_adı]
- Mac OS X : ~/Library/Preferences/ unity.[company name].[product name].plist
- Mac OS X WebPlayer : ~/Library/Preferences/Unity/WebPlayerPrefs/ unity.[kuruluş_adı]\[ürün_adı].plist
- Not: Her oyun için ayrı kayıt tutulur.WebPlayer için kayıt limiti 1 mb'dir.Bu limit aşılırsa PlayerPrefsException fırlatır.(try-catch yapısıyla yakalayabilirsiniz.)
PlayerPrefs Sınıfındaki Fonksiyonlar
- Set Fonksiyonları (Geriye değer döndürmez.)
- SetInt : İlk parametresinde girilen anahtara 2. parametrede girilen int tipi değeri atar.
- SetFloat : İlk parametresinde girilen anahtara 2. parametrede girilen float tipi değeri atar.
- Get Fonksiyonları
- GetInt : İlk parametresindeki anahtarın değerini döndürür.(Veri tipi int ise)Eğer yoksa 2. parametrede girilen değeri döndürür.(varsayılan = 0)
- GetFloat : İlk parametresindeki anahtarın değerini döndürür.(Veri tipi float ise)Eğer yoksa 2. parametrede girilen değeri döndürür. (varsayılan = 0.0f)
- GetString : İlk parametresindeki anahtarın değerini döndürür.(Veri tipi string ise)Eğer yoksa 2. parametrede girilen değeri döndürür. (varsayılan = "")
- Diğer Fonksiyonlar (HasKey haricinde değer döndürmez.)
- HasKey : İlk parametredeki anahtar mevcut ise true, mevcut değilse false döndürür.
- DeleteKey : İlk parametredeki anahtarı siler.
- DeleteAll : Tüm anahtarları siler.(Parametre girilmez.)
- Save : PlayerPrefs sınıfındaki değişiklikleri diske kaydeder.Normalde uygulamadan çıkma esnasında kaydedilir.Bu sebeple aniden çıkış yapıldığı durumlarda kaydedilmez.Diske kaydederken küçük takılmalara sebep olabilir.Bu sebeple oyun oynama esnasında kullanılması tavsiye edilmez.
Örnek Kullanım (C#)
İpucu (C#)
Belirli bir anahtardaki PlayerPrefs işlemlerini GetInt/SetInt vb.fonksiyonları yazmadan değişken üzerinden kolayca yapabilirsiniz. |
Referans
Herkese merhaba.Unity3D üzerine ilk yazımdı.Biraz çeviri gibi oldu ama.Örnek ve ipucu tamamen bana aittir.Basit oldukları için açıklama yapmadım.Aklınızdaki soruları ve yorumlarınızı bekliyorum.:)
Kolay gelsin...
Yayın tarihi : 26.07.2012 00:26 (Üst sırada gözükmesi için tarih ileri alınmıştır.)
Yayın tarihi : 26.07.2012 00:26 (Üst sırada gözükmesi için tarih ileri alınmıştır.)
Çok iyi, sitende başarılar :D
YanıtlaSilTeşekkürler :)
SilÇok güzel ve faydalı bir konu devamını bekliyoruz :)
YanıtlaSilİlk olarak çok teşekkürler. PlayerPrefs sınıfı ile ilgili olarak Türkçe bir çalışma bulmak gerçekten beni çok mutlu etti . Sizden ricam playerprefs i unlock level için kullanabileceğimiz bir çalışmayı bizimle paylaşabilirmisiniz. Bununla ilgili gerçekten internette az sayıda kaynak var. Olanlar da çok yüzeysel anlatmış. Şimdiden ilgin için çok teşekkürler. Yeni yazılarını bekliyor olacağım.
YanıtlaSil@jokers99, @KnGfRhZs yorumlarınız için teşekkürler.
SilÖrneğe gelicek olursak, çok basit bir yapısı var aslında.Hemen bir örnek hazırladım.Denemedim, umarım çalışır.Belki GUI'si hatalıdır.Ama mantığı anlaman yeterli :)
int mevcutLevel;
void Awake(){
mevcutLevel = PlayerPrefs.GetInt("mevcutLevel", 1);
}
void OnGUI(){
for(int i = 0; i <= 5; i++)
{
if (mevcutLevel <= i){
GUI.enabled = false;
}
if(GUILayout.Button("Level" + i)){
LevelYuklemeFonksiyonu(i);
}
}
}
void LevelYuklemeFonksiyonu(int levelNo){
Application.LoadLevel("Level " + levelNo.ToString()); // "Level [levelNo]" adlı sahneyi(scene) yükler.(Build Settings penceresinde scenes in build'de olmalı.)
Bu yorum yazar tarafından silindi.
YanıtlaSilbenim bir ricam olacak ben genel olarak kodlarımı java ile yazıyorum mbu sebepten dolayı paylaşımları hem c hem de java olarak paylaşmamız mümkün mü ?
YanıtlaSilmalesef bunun için uğraşmak istemiyorum.:)İki dilin syntaxı arasında çok az fark var.Zaten paylaştığım kodların çoğu işin mantığını öğretmeye yönelik.
Silreklam gibi görürsen sil de ben js dersi veriyorum burdan bakabilirsiniz www.unity3dturk.blogspot.com
YanıtlaSilKardeşim Allah razı olsun. İşte olay budur ya. Açıklama yöntemin çok güzel. Gerçekten çok faydalı sağolasın. Ülkemizde böyle olması ne kadar güzel işte bu ya!!!
YanıtlaSilPlayerprefs ile bir float değişkeni kaydettim. uygulama kapanıp açılınca kaydedilen değişkenin üstüne yeni girilen sayıyı eklemek istiyorum örneğin: 5 kaydedildi bu kaydedilen 5 in üstüne 4 eklemek istiyorum nasıl yaparım
YanıtlaSil