2016-04-02 18 views
0

youtube kodundaki sprite animasyonunu değiştirmeyle ilgili bu eğiticiyi takip ediyorum ve bunu UI düğmesini kullanarak sprite animasyonunu değiştirip değiştiremeyeceğimi merak ediyorum. bunun nasıl yapılacağını bilen var mı? Teşekkür ederim!Unity 3D: UI düğmesini kullanarak hareketli grafik animasyonunu değiştirme

DÜZENLEME: ben tür yardımlarınız sayesinde çalışıyor reposed senaryo, bu görüntünün iki görüntüden itibaren sprite görüntüyü değiştirir ama ne temelde elde etmek çalışıyorum her zaman tıklayın bu yani Kullanıcı Arabirimi düğmesi hareketli görüntüyü bir görüntüden (UI düğmesi tıklat)> görüntüyü ikiye ayırma (UI düğmesi tıklat)> görüntüyü üçlü (UI düğmesi tıklat)> olarak değiştirir ve sonra otomatik olarak kendisini değiştiren hareketli görüntü yerine işlemi tekrarlar.

+0

Size Imagethree' yüzden gerçekten söyleyemem 'ile yapmak isteyen vardır ne olduğu açık değildir. Ayrıca cevabımı da düzenledim. Ne zaman değişmesini istiyorsun? Bu turoial içinde –

cevap

0

Düğmeler onclick etkinlik var http://docs.unity3d.com/ScriptReference/UI.Button-onClick.html

Sadece düğme davanız değişen sprite kodu içinde, tıklandığında çağrılan bir yöntem oluşturmak

. Bir zamanlayıcı kullandığınız gibi görüldüğü halde, bir boole gibi bir şey kullanmanız gerekecek çünkü onClick() sadece bir kez tıklandığında çağrılır, her kare değil. sprite anim bittikten sonra https://www.youtube.com/watch?v=J5ZNuM6K27E

bool b_RunSpriteAnim; 

public void onClick(){ 
     b_RunSpriteAnim = true; 
} 

void Update(){ 
    if (b_RunSpriteAnim) 
     //your anim sprite stuff 
} 

Bak Sonra sadece false için b_RunSpriteAnim geçiş ve zamanlayıcı sıfırlanır.

Düzenlendi: Boolean'a ihtiyacınız yok. Sadece istediğini sandım çünkü bir zamanlayıcı kullanıyordun (Youtube bağlantısına göre). Eğer sprite'ı hemen değiştirmek istiyorsanız, buna ihtiyacınız yoktur. Imagethree'un çalışmadığı gibi, kodunuza asla dahil etmediğiniz içindir. Bu, onClick'a eklediyseniz, Imagethree ile elde etmeye çalıştığınız şey net değil, sadece ayarlanan görüntünün üzerine yazacaktı, bu yüzden ne elde etmek istediğinize emin değilim.

public void onClick(){ 
    this.gameObject.GetComponent<SpriteRenderer>().sprite = Imagetwo; 
} 

İkinci Düzenleme:

public Sprite[] Images; 
//Index starts at one because we are setting the first sprite in Start() method 
private int _Index = 1; 

void Start(){ 
    //Set the image to the first one 
    this.gameObject.GetComponent<SpriteRenderer>().sprite = Images[0]; 
} 

public void onClick(){ 
    //Reset back to 0 so it can loop again if the last sprite has been shown 
    if (_Index >= Images.Length) 
     _Index = 0; 

    //Set the image to array at element index, then increment 
    this.gameObject.GetComponent<SpriteRenderer>().sprite = Images[_Index++]; 
} 
+0

@JesscaStone 9:40, bu onClick yöntemine düğmeyi nasıl bağlanacağını anlatır. –

+0

Um, size cevap vermeye çalıştım ama yeterli karakterim kalmadı bu yüzden soruyu "cevap ekle" ye bıraktım, lütfen okuyun, teşekkürler –

+0

Um, sorumu düzenledim, hoş bir göz atabilirsin. Bir göz attıysan çok memnun olurum. Teşekkür ederiz –

İlgili konular