Unity Ekranlar arası save sistemi nasıl yapılır?

AIroe

Hectopat
Katılım
20 Mayıs 2021
Mesajlar
493
Çözümler
3
Daha fazla  
Sistem Özellikleri
AMD Ryzen RX 580 - 8 gb
MSI Z390 A PRO
İntel i7 9. Nesil
16 GB Ram
1.5 TB HDD
500 GB SSD
Cinsiyet
Erkek
Meslek
Öğrenci
1721570260151.png


1721570490405.png


Selamlar, uzun süredir geliştirmekte olduğum Unity oyunumda resimde de görüldüğü üzere, sol üstteki sandalyenin yanına gidip e tuşuna bastığımızda Cutscene'nin devreye girdiği bir kod yazdım ve çalıştı, fakat bu cutscene oyun boyunca sadece bir kez gözükücek. Onun dışında bu sandalyenin yanına giden oyuncular tekrar e tuşuna bastığında herhangi bir etkileşime giremeyecekler. 2 gündür bu sistem için uğraşıyorum fakat yapamadım, ChatGPT ve YouTube'dan yardım aldım fakat hiçbiri benim yaptığım gibi bir şey yapmadığından kendi oyunuma entegre etmekte çok zorlandım ve başarısız oldum. Kısacası yapmaya çalıştığım şey;

Oyuna her başladığımızda puanımız 0 olacak ve bu sandalyenin yanına gelip her "e" tuşuna bastığımızda puanımız 1 artacak ama sahneler arası geçiş yaptığımızda bu puan korunmaya devam edecek.

Yardımcı olan herkese şimdiden teşekkür ederim. Kodları görmek isteyenlere kodları paylaşabilirim.
 
C#:
if(PlayerPrefs.GetBool("dahaÖnceSandalyeyeTıklandiMı") == false)
{
    PlayerPrefs.SetBool("dahaÖnceSandalyeyeTıklandiMı", true);  
    CutScene();
}
PlayerPrefs işinize yarayabilir. Örnek olarak bıraktım.
 
C#:
if(PlayerPrefs.GetBool("dahaÖnceSandalyeyeTıklandiMı") == false)
{
    PlayerPrefs.GetBool("dahaÖnceSandalyeyeTıklandiMı", true);  
    CutScene();
}
PlayerPrefs işinize yarayabilir. Örnek olarak bıraktım.
PlayerPrefs'i sayı arttırma mantığı ile denemiştim fakat bool ile denemek hiç aklıma gelmedi , teşekkür ederim deneyeceğim

C#:
if(PlayerPrefs.GetBool("dahaÖnceSandalyeyeTıklandiMı") == false)
{
    PlayerPrefs.SetBool("dahaÖnceSandalyeyeTıklandiMı", true); 
    CutScene();
}
PlayerPrefs işinize yarayabilir. Örnek olarak bıraktım.
hocam şimdi denedim fakat playerprefsda getbool fonksiyonu çalışmıyor
 
Son düzenleme:
@AIroe PlayerPrefs değer döndürmüyor olabilir. Oyunun başında PlayerPrefs.SetBool("dahaÖnceSandalyeyeTıklandiMı", false); gibi bir kod yazmak gerekiyor olabilir.
 
using UnityEngine;

public class MyScript : MonoBehaviour
{
private void Awake()
{
// "myBool" isimli bir boolean değişkenini kontrol et
if (!PlayerPrefs.HasKey("myBool"))
{
// Eğer bu değişken yoksa, false olarak ayarla
PlayerPrefs.SetBool("myBool", false);
PlayerPrefs.Save();
}
}
}
 

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı