2015-02-24 29 views
0

我有一張2d圖像。我想做的是 - 每當我點擊Sprite就會改變圖像(按照特定的順序),並且每4次重複一次圖像,我點擊它(因此它每4次循環一次)。我不知道如何去做,因爲我對團結是新的。提前致謝。如何每4次更換一次圖像(unity3D)

+1

發表你試過的東西!它會幫助他人提供答案 – Dinal24 2015-02-24 04:56:24

+0

可能的重複[如何在循環中無限循環數? (Unity3D- unityscript)](http://stackoverflow.com/questions/28714601/how-to-infinite-loop-numbers-in-while-loops-unity3d-unityscript) – 2015-02-25 09:36:53

回答

0

在跳入團結的世界之前,嘗試學習一些c#或基本的java教程,這將有助於減少。至於這個問題,請爲該對象創建一個腳本,或者使用基本計數器單擊一個事件,該計數器會爲每次點擊增加1。像這樣:

while(counter = 4) 
{ 
    picture.source = <new picture> 
    counter.int = 1 
} 

或者這個效果。

+0

嗨,有一個團結的錯誤,當你使用while循環會混淆引擎,所以它不會響應。我以前試過while循環,但它只是崩潰。在提出這個問題之前,我嘗試了if語句,但它只是將圖像立即更改爲第三張圖像,我不知道爲什麼。 – 2015-02-24 04:55:15

+0

對不起,沒關係。因爲我沒有增加回報;在循環結束時。但是有一個問題。當我第四次單擊它時,它會直接顯示第一張圖片而不顯示第四張圖片。我認爲它發生了,因爲當計數器= 4時,計數器只是直接轉到數字1而不延遲圖片。我該如何解決這個問題? – 2015-02-24 05:03:27

+0

@George Gall該代碼存在相當多的問題。對於初學者,您在while條件下使用了賦值運算符。這將導致每次迭代將值4分配給「counter」,導致無限循環。 – 2015-02-24 15:56:49

1

大概你已經按照你希望它們顯示的順序得到了一個圖像列表或圖像列表(我將稱之爲images),並且你已經有了一種檢測精靈點擊的方法。有很多方法,你可以做你的代碼想要什麼,他們中的一個會是這個樣子:

int imageNum = 0;        //this should be class wide 
... 
<sprite click detection> 
{ 
    imageNum++;         //increment the imageNum 
    imageNum = imageNum >= 4 ? 0 : imageNum; //reset to 0 on the 4th click 
    sprite = images[imageNum];     //set the sprite to the next image 
} 

如果你發佈你已經嘗試過,我可以使此代碼更接近你真正想要的東西。

+0

你的例子是乞求一個小高爾夫球(但OP,不要真的寫這個,或者當你稍後嘗試閱讀時你會討厭自己):'如果(精靈點擊檢測)精靈=圖像[imageNum = (imageNum + 1)%4];' – piojo 2015-02-25 10:08:18