Vallahi buradan sora sora bitireceğim bu oyunu sanki Ama bana kaynaklardan araştıra araştıra kendi projemde uygulayarak Unity öğrenebileceğimi yine buradaki bir arkadaş söylemişti ve işe yarıyor. Neyse. Oyunuma animasyonlu altınlarımı attım ve tıpkı engellerim gibi rastgele ve belli aralıklarla spawnlanmalarını sağladım.
Oyunumun şöyle bir görüntüsü var. Her bir altın yukarıdaki altın sayacını 2 arttırıyor ve bu değer ölüm ekranında sonuç şeklinde de yer alıyor. Altınların sayısal değerini tutan değişken "Gold" ve PlayerPrefs. SetInt("altin", Gold); dedim ve bunu market sahnemdeki mygolds değişkenimi mygolds += PlayerPrefs. GetInt("altin"); şeklinde yazdırdım ve ne olur ne olmaz shopmanager scriptimin Update'i içinde SetInt("mygolds", mygolds) şeklinde kaydedilmesini, Start içinde yani markete girdiğimde GetInt("mygolds") şeklinde yüklenmesini istedim. Ama sadece son el kaç altın topladıysam o altın ekrana yazdırılıyor. Bir yerde yanlış yaptığımı zaten biliyorum. Bu işin doğrusunu bilen biri bana yardımcı olabilir mi? Şimdiden teşekkürler.
Playerprefts de 2 adet değer tutuyorsun. birisi son oyunda kazandığı altın, diğeri toplam altın. Doğru mudur? Sıkıntı şu, değerleri birbiri ile karıştırıyorsun. Son oyundaki altını playerprefts de tutmaya gerek yok. Neyse konumuz o değil. mygolds değişkenini son oynadığı oyundaki altın ile topluyorsun. ve daha sonra tekrar mygolds değişkenini tekrar set ediyorsun. Sıkıntı burada olmalı, çünkü bir toplama işlemi var. İşlem kabaca şu şekilde olmalı.
C#:
int myGolds = PlayerPrefs.GetInt('myGolds');
myGolds += PlayerPrefs.GetInt('altin');
PlayerPrefs.SetInt('myGolds', myGolds);
Son eldeki altınlar geldiği için galiba myGolds değişkenini 0 olarak set ediyorsun. ilk satırdaki koda dikkat etmelisin. Mygolds degişkeni tüm altınları tutmalı.
Playerprefts de 2 adet değer tutuyorsun. birisi son oyunda kazandığı altın, diğeri toplam altın. Doğru mudur? Sıkıntı şu, değerleri birbiri ile karıştırıyorsun. Son oyundaki altını playerprefts de tutmaya gerek yok. Neyse konumuz o değil. mygolds değişkenini son oynadığı oyundaki altın ile topluyorsun. ve daha sonra tekrar mygolds değişkenini tekrar set ediyorsun. Sıkıntı burada olmalı, çünkü bir toplama işlemi var. İşlem kabaca şu şekilde olmalı.
C#:
int myGolds = PlayerPrefs.GetInt('myGolds');
myGolds += PlayerPrefs.GetInt('altin');
PlayerPrefs.SetInt('myGolds', myGolds);
Son eldeki altınlar geldiği için galiba myGolds değişkenini 0 olarak set ediyorsun. ilk satırdaki koda dikkat etmelisin. Mygolds degişkeni tüm altınları tutmalı.