Unity 3D TR Forum

Orjinalini görmek için tıklayınız: Oyun içi market ile karakter değişimi
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
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
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];
}


}
(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
Ş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