2016-04-11 14 views
2

Bir görüntü doğru görüntüde olmak üzere 4 rastgele görüntüyü göstermek istiyorum. bu yüzden "correct_caps" klasöründen 1 rastgele görüntü aldım ve 3 başka bir klasörden dinleniyorum. Şimdi, görüntüleri görüntülemek için rastgele görüntü değişkenleri seçmek istiyorum, böylece doğru görüntüm daima yerini değiştiriyor.Rastgele rastgele C# birlikteliğinde görüntülemek için resmi seçin

using UnityEngine; 
using UnityEngine.SceneManagement; 
using UnityEngine.UI; 
using UnityEngine.EventSystems; 



public class NewBehaviourScript : MonoBehaviour 
    { 
public Image art1; 
public Image art2; 
public Image art3; 
public Image art4; 


public int x; 
public int x1; 
public int x2; 
public int x3; 

public string s; 
public string path; 
public string path1; 
public string path2; 
public string path3; 
public string path4; 

public int cl; 
public int i; 


void Start() 
{ 


    //selection of correct letter 
    cl = Random.Range(1, 26); 

    path1 = "Capital Letters/correct_caps/" + cl; 
    path = "Capital Letters/" + cl; 
    Debug.Log("Load path is " + path1); 


    x1 = Random.Range(1, 5); 
    path2 = path + "/" + x1; 



    x2 = Random.Range(1, 5); 
    path3 = path + "/" + x2; 
    i = 0; 
    while (i == 0) 
    { 
     if (x1 == x2) 
     { 

      x2 = Random.Range(1, 5); 
      path3 = path + "/" + x2; 
      Debug.Log("Load path3 is " + path3); 

     } 
     else 
     { 

      Debug.Log("Load path3 is " + path3); 
      i++; 
     } 
    } 




    x3 = Random.Range(1, 5); 
    path4 = path + "/" + x3; 

    i = 0; 
    while (i == 0) 
    { 
     if (x1 == x3 || x2 == x3) 
     { 
      x3 = Random.Range(1, 5); 
      path4 = path + "/" + x3; 
      Debug.Log("Load path4 is " + path4); 
     } 
     else 
     { 

      Debug.Log("Load path4 is " + path4); 
      i++; 
     } 
    } 

    //here I displayed images . But, I want to select art,art1,art2,art3 randomly. 

    art.sprite = Resources.Load<Sprite>(path1) as Sprite; 
    art1.sprite = Resources.Load<Sprite>(path2) as Sprite; 
    art2.sprite = Resources.Load<Sprite>(path3) as Sprite; 
    art3.sprite = Resources.Load<Sprite>(path4) as Sprite; 
}  

} 

cevap

0

1-4 arasında rastgele bir sayı yapın, ardından eğer ifadesini kullanın.

Random random = new Random(); 
int randomNumber = random.Next(0, 5); 
if (randomNumber ==1) 
{ 
     art.sprite = Resources.Load<Sprite>(path1) as Sprite; 
} 
if (randomNumber ==2) 
{ 
     art1.sprite = Resources.Load<Sprite>(path2) as Sprite; 
} 
if (randomNumber ==3) 
{ 
     art2.sprite = Resources.Load<Sprite>(path3) as Sprite; 
} 
if (randomNumber ==4) 
{ 
     art3.sprite = Resources.Load<Sprite>(path4) as Sprite; 
} 
+0

olduğunu. Her zaman "art" ın üzerindeki harfi (yol1) görüntüler, oyun için iyi bir fikir değildir. –

0

Kaynaklar aracılığıyla bir görüntü yüklemek içinYüklenen görüntü "Kaynaklar" klasöründe olmalıdır. İsterseniz alt klasörlere koyabilirsiniz. [Burada]

(http://docs.unity3d.com/ScriptReference/Resources.Load.html) path1 benim doğru harfi başka bir şey değildir Burada Belgeler