Hey merhaba ziyaretçi bize destek olmak ister misin ? Hemen Kayıt Ol Seni hiç sıkmadan kayıt edeceğiz endişelenmek bize destek olduğun için teşekkürler.



  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Oyun içi market ile karakter değişimi
#1
Merhaba arkadaşlar.
Ben oyunumda bir market yapmak istiyorum. Ve karakrer satın alındığında oyun ekranındaki karakterin değişmesini istiyorum bunu nasıl yapabilirim?

Oyundaki para sistemini ve satın almayı yaptım fakat karakeri nasıl değiştireceğimi bulamadım. Lütfen yardım eder misiniz.  Smile
  Cevapla
#2
Scriptlerinde şu mantığı kullanabilirsin 


Kod:
class Sample {

//Şimdi işin içinde sadece satın alma olayı yok bide satın alınan karakterler arasından seçilmiş olan gösterilmesi lazım bu yüzden
//ben bir int atayacağım bu değişken seçilmiş karakterin numarasını tutcak


int Char_No;  //Artık sen seçilen karakteri buna bir şekilde atayacaksın
public Sprite[] Karakterler;  //bu 2d oyunlar için sprite resim göstericisi sen 3d yapcaksan burada mesh objecler olablir direk bir gameobjectlerde koyabilirsin sonra                                              //geri kalanını destroy edersin
public SpriteRenderer Karakterimiz;


void Start (){

Karakterimiz.sprite = Karakterler[Char_No];
}


}
  Cevapla
#3
(30-04-2019, Saat: 17:09)abayir41 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Scriptlerinde şu mantığı kullanabilirsin 


Kod:
class Sample {

//Şimdi işin içinde sadece satın alma olayı yok bide satın alınan karakterler arasından seçilmiş olan gösterilmesi lazım bu yüzden
//ben bir int atayacağım bu değişken seçilmiş karakterin numarasını tutcak


int Char_No;  //Artık sen seçilen karakteri buna bir şekilde atayacaksın
public Sprite[] Karakterler;  //bu 2d oyunlar için sprite resim göstericisi sen 3d yapcaksan burada mesh objecler olablir direk bir gameobjectlerde koyabilirsin sonra                                              //geri kalanını destroy edersin
public SpriteRenderer Karakterimiz;


void Start (){

Karakterimiz.sprite = Karakterler[Char_No];
}


}


Hocam yorumunuz için çok teşekkür ederim. Kusura bakmayın biraz geç cevap verdim ama ben Char_No olayını tam olarak anlayamadım. Nasıl ona seçilen karakteri atayabilirim biraz daha konuyu açıklayabilir misiniz?

Teşekkür ederim
  Cevapla
#4
Şimdi şöyle yapalım 


A ve B karakterleri olsun ikisidie satın alınmış olsun ama oyunu oynayan kişi bu karakterlerin birisini oynayabilir bu yüzden bi karakteri seçmesi lazım şimdi o aldığı karakterleri artık nerede seçecekse seçecek ve seçtiği karakterin üstünde seçili olduğunu belli eden bir icon yada yazı çıkaracaksın buraya kadar her şey görsel. Şimdi kodlama kısmına bakarsak ne yapmamız lazım eski seçili olan karakterdeki seçili imgesini kaldırıp yeni seçilene atamak ve seçilenin özel no sunu bir yere kaydetmek 


İlk özel noyu alalım gerisi kolay
Bunun için çok kolay bir fonksiyon oluşturacağız


void Char_Secme(int no){
PlayerPrefs.SetInt("Karakter_nosu",no);
}

Şimdi sen bunu karakterlerinin üzerine tıklandığı da etkin mi yaparsın yoksa ayrıyitten yeni buton mu koyarsın sana kalmış 

Şimdi sen bunu o butona atayacaksın ve senden bir int türlü paramatre girmeni istiyecek ha unutursan default olarak 0 alıyor olabilir ama unutma şimdi o paramatreleri ilk karaktere 0 ikinciye 1 ver ve böyle git çünkü birazdan karakterlerimizin şeçili kaldırırken yada oyunun başında spawnlerken array içerisinden halledeceğiz

Eski imgeyi kaldırmak biraz senin tasarımınla alakalı ben seçili olanın üzerinde tik varmış gibi hayal edecem

public Gameobject[] karakter_tikleri;

void yeni_tik_koyma(int x){

  for (int i = 0;i < karakter_tikleri.Lenght;i++){

    if( i== x ){
       karakter_tikleri[i].setActive = true;
    }else {
       karakter_tikleri[i].setActive = false;
    }
  }
}

Şimdi burdaki x değeri karakter no su sen bu fonksiyonu istediğin yerde çalıştirabilirsin artık ben bunu karakteri seçtikten hemen sonra çalışsın istiyorum bu yüzden kodda şöyle bir değişiklik yapıyorum

 
void Char_Secme(int no){
PlayerPrefs.SetInt("Karakter_nosu",no);
yeni_tik_koyma(no);
}
 
 neden playerprefse kaydettiğimi sorarsan ilerde iişine yarar oyun kapanıp açıldiğında kullanıcı tekrar seçmez anlamadıgın yer olursa sor eğer işinine yaradıysa bir repini alırım
  Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  2D Karakter animasyon geçişi yapmıyor espumante 0 557 21-04-2021, Saat: 21:01
Son Yorum: espumante
  Multiplayer Oyun(Pun2) Abdullahp 1 664 28-02-2021, Saat: 19:00
Son Yorum: mtat0640
  Hazır Assets Paketi Direkt Oyun Şeklinde mi Geliyor? Lethrenn 1 970 30-11-2020, Saat: 15:09
Son Yorum: mtat0640
  Unity 2D karakter tasarlama lugatsi 1 4,019 19-08-2020, Saat: 11:04
Son Yorum: Eyelay
  animasyonlu karakterlerle market sistemi nasıl yapılır ? honey 8 2,675 22-05-2020, Saat: 15:30
Son Yorum: honey

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi