2017-05-14 8 views
0

So habe ich 6 UI-Schaltflächen auf meiner Leinwand, die "Tier 1" - "Tier 6" Ich wollte alle "Tier 1" - "Tier 6" in einem Array als Knopf , damit ich die interagierbare über C# einstellenHolen Sie Schaltflächen und speichern Sie sie in einem Array

hier ist mein Code

// Buildings 
[Header("Buildings")] 
public Button [] buildingTiers; 
public int numOfBuildingTiers = 6; // Number of building tier buttons; 

// ============================================================== 
void Awake() 
{ 
    buildingTiers = new Button[numOfBuildingTiers]; 

    for (var i = 1; i < numOfBuildingTiers; i++) 
    { 
     GameObject _buildingTiers = GameObject.Find ("Tier " + i).GetComponent<Button>(); // This is line 37 
     buildingTiers [i] = _buildingTiers; // This is line 38 
     buildingTiers [i].interactable = false; 
    } 
} 

und ich habe diesen Fehler

Aktiva/Octa Interactive Aktiva/Codes/Main.cs (37, 71): Fehler CS0029: nicht implizit Typ UnityEngine.UI.Button' to UnityEngine.GameObject‘

und

Aktiva/Octa Interactive Aktiva/Codes/Main.cs (38,33) umwandeln kann: Fehler CS0029: nicht implizit Kann Typ UnityEngine.GameObject' to UnityEngine konvertieren .UI.Button‘

Antwort

1

es so versuchen:

// Buildings 
[Header("Buildings")] 
public Button [] buildingTiers; 
public int numOfBuildingTiers = 6; // Number of building tier buttons; 

// ============================================================== 
void Awake() 
{ 
    buildingTiers = new Button[numOfBuildingTiers]; 

    for (var i = 1; i <= numOfBuildingTiers; i++) 
    { 
     Button _buildingTiers = GameObject.Find ("Tier " + i).GetComponent<Button>(); // This is line 37 
     buildingTiers [i] = _buildingTiers; // This is line 38 
     buildingTiers [i].interactable = false; 
    }  
} 

Sie erhielten die Schaltfläche Komponente und "Speichern" es in einer GameObject Variable.

Auch Sie fügen nur Schaltflächen von Tier1 zu Tier5, das für Sie auch behoben. <= anstelle von <.

+0

Das wird funktionieren, danke! – honor8

Verwandte Themen