DerStefan Geschrieben 26. Dezember 2020 Melden Share Geschrieben 26. Dezember 2020 Hallo Freunde, in meinem Beispiel-Skript soll ein Objekt eingefärbt werden. Das Problem ist, dass es bei sehr vielen Farbwerten der Fall ist, dass das Objekt weiterhin weiß bleibt. Dieser Code hier funktioniert einwandfrei: using System.Collections; using System.Collections.Generic; using UnityEngine; public class WMarkieren : MonoBehaviour { GameObject gameObject; void Start() { gameObject = GameObject.Find("Würfel"); gameObject.GetComponent<Renderer>().material.color = new Color(5f, 0f, 223f, 255f); // Violet - passt } } Ändere ich aber den RBGA-Wert in z.B. (241f, 251, 133f, 255f), müsste es gelb sein, bleibt aber weiß! Bei (100f, 0f, 223f, 255f) sieht es z.B. weiterhin so aus, wie in Beispiel 1 (violet), obwohl der Wert deutlich anders ist. 0f, 0f, 200f, 255f hingegen ist ein kräftiges blau - funktioniert ebenfalls. Das gameObject (Würfel), welches eingefärbt werden soll, besitzt ein Material, das folgende Eigenschaften mit sich bringt: - Shader: Sprites/Default - Tint: 255, 255, 255, 255 (komplett weiß) - Render Queue: From shader 3000 Irgendwie klappt das einfärben nur, wenn die RGB-Werte deutlich radikal ausfallen. Entweder gehen nur kräftige Farben, oder es bleibt weiterhin weiß. Wo liegt das Problem? Danke für jede Hilfe! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 27. Dezember 2020 Melden Share Geschrieben 27. Dezember 2020 Schau mal hier. Glaube das erklärt dir was bei dir Falsch ist: https://docs.unity3d.com/ScriptReference/Color.html Ansonsten das hier benutzen: https://docs.unity3d.com/ScriptReference/Color32.html Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 27. Dezember 2020 Melden Share Geschrieben 27. Dezember 2020 Kurzfassung: Color geht von 0 bis 1, nicht 0 bis 255 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jog Geschrieben 27. Dezember 2020 Melden Share Geschrieben 27. Dezember 2020 Hallo, vor 21 Stunden schrieb DerStefan: gameObject.GetComponent<Renderer>().material.color = new Color(5f, 0f, 223f, 255f); In dieser Zeile liegt der Fehler, klein aber fein. War auch mal daran verzweifelt, da es keine fehlermeldung beim überschreiten des wertbreiches gibt. Bei new Color( ) liegt der Wertereich zwichen 0 und 1 als float. z.b. gameObject.GetComponent<Renderer>().material.color = new Color(0.2f,0.5f, 0.9f, 1f); Bei new Color32( ) liegt der Wertereich zwichen 0 und 255 als integer z.b. gameObject.GetComponent<Renderer>().material.color = new Color32(128,250, 60, 1); Sorry Sascha hab 2 sek. zu lange geschrieben Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DerStefan Geschrieben 10. Januar 2021 Autor Melden Share Geschrieben 10. Januar 2021 Hallo und alles Gute für das neue Jahr. Ich bedanke mich recht herzlich für eure Hilfe. Das Problem ist nun gelöst (habe es mit Color32 gelöst) Viele Grüße Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.