2016-09-26 2 views
0

zu ändern Ich habe eine UI-Schaltfläche in der Einheit, die Farbe ich über Skript ändern möchte, aber Fehler erhalten (Kann einen Werttyp nicht ändern Rückgabewert von `UnityEngine.UI.Selectable.colors '. Betrachten Speichern Sie den Wert in einer temporären Variablen) beim Aufruf der Methode, um die Farbe der Schaltfläche zu ändern, wenn die UIbutton gedrückt wird.nicht möglich, UIButton Farbe in Einheit

CODE

public Button DrumButton; 

public void DrumButtonClicked() 
    { 
     DrumButton.colors.normalColor = new Color(0.22f, 0.22f, 0.22f, 1f); 
    } 
+0

Eine Google auf Ihrer Fehlermeldung, und das erste Ergebnis ... http://answers.unity3d.com/questions/792008/how-to-change-normal-color-highlighted- color-etc-i.html – Darren

+0

Und die sehr zweite .... http://forum.unity3d.com/threads/changing-the-color-of-a-button-in-script.344121/ – Darren

+2

Mögliche duplizieren von [Unity So ändern Sie die Farben der UI-Schaltfläche über Skript] (http://stackoverflow.com/questions/38546130/unity-how-to-change-colors-of-ui-button-via-script) – Programmer

Antwort

-1

Sie können die Variable direkt Farben ändern. Es ist etwas, das von Unity verwaltet wird, und das wollen Sie nicht. Stattdessen müssen Sie es in einer temporären Variablen speichern, bevor Sie es ändern. Versuchen Sie folgendes:

ColorBlock drumColors = DrumButton.colors; 
drumColors.normalColor = new Color(0.22f, 0.22f, 0.22f, 1f); 
DrumButton.colors = normalColor; 
+0

Antworte nicht doppelte Frage! Lesen Sie die Kommentare. – Programmer