2016-07-13 6 views
0

Ich finde den effektiveren Code, um jedes Kind vom übergeordneten Spielobjekt zu finden und jede Kindkomponente Text des Spielobjekts zu ändern.So ändern Sie die übergeordnete untergeordnete Komponente Text Effektiver? Unity C#

Jedes Kind Komponente Text von Gameobject hat einen anderen Wert jedes von den Variablen abhängen.

Dies ist der Screenshot enter image description here

Dies ist mein Code:

public Dictionary <string, GameObject> product = new Dictionary<string, GameObject>(); 
    public Dictionary <string, Text> property = new Dictionary<string, Text>(); 

dex = productMargaret.FindIndex(j => j.productID == 15); 
      product["Mayonnaise"] = GameObject.Find("btnMayonnaise"); 

      property["qty"] = gameObject.transform.GetChild (1).GetComponent<Text>(); //+ productMargaret[dex].qty.ToString; 
      property["qty"].text = productMargaret[dex].qty.ToString; 
      property["price"] = gameObject.transform.GetChild (2).GetComponent<Text>(); //+ productMargaret[dex].price.ToString; 
      property["price"].text = "@ " + productMargaret[dex].price.ToString; 
      property["have"] = gameObject.transform.GetChild (2).GetComponent<Text>(); //+ productMargaret[dex].have.ToString; 
      property["have"].text = "You Have : " + productMargaret[dex].have.ToString; 

Das ist Code nicht funktioniert.

Wie geht das? für eine effektive Art wie vielleicht eine Schleife zu verwenden.

Dank

Antwort

0

Ich fand die Lösung selbst.

Dieses zwei Video erklärt alles über das Problem

https://www.youtube.com/watch?v=gjFsrVWQaQw

https://www.youtube.com/watch?v=rL36b6lo4-k

+0

hahh. Feder ist gut. Ich empfehle auch Sebastian Lague: https://www.youtube.com/channel/UCmtyQOKKmrMVaKuRXz02jbQ –

+0

yah. Sebastian Lague ist auch gut im Tutorial. Er hat so viele Tutorials. Ich muss das sehen. –

+0

Ich würde upvote, wenn Sie die Codelösung hier hervorgehoben .. –

0

Ihre Tasten Unter der Annahme, sind so etwas wie btnProductID_15, btnProductID_16, btnProductID_17 genannt und Button-Komponente haben mit ihnen verbunden. Man könnte einfach so etwas wie auf einer übergeordneten Gameobject tun:

public Dictionary <string, string> property = new Dictionary<string, Text>(); //the Key would be btnProductID_15...btnProductID_N and value will be the label of the button. 
List<Button> btnList = GetComponentsInChildren<Button>(); 
foreach (Button item in btnList) 
{ 
    Text textField = GetComponentInChildren<Text>(); 
    textField.text = property[item.name]; 
} 

Ofcourse Sie bevölkern die „Eigenschaft“ Wörterbuch entsprechend gehen müssen .... Und jetzt bin hungrig.

Verwandte Themen