Unterscheiden Sie die Sichtbarkeit der Plattform vom Hintergrund

15

Ich habe ein 2D-Endlos-Runner-Spiel, dessen Hintergrund ständig seine Farben ändert. In der Zwischenzeit bleibt die Farbe der Plattformen gleich. Auf diese Weise werden die Plattformen zu einem bestimmten Zeitpunkt (wenn ihre Farbe mit der des Hintergrunds übereinstimmt) für den Spieler "unsichtbar".

Wie kann ich dieses Problem mit Unity kreativ, kurz und sicher umgehen?

PS Ich habe versucht, glänzendes Material hinzuzufügen, aber es hat nicht funktioniert .

ZenVentzi
quelle

Antworten:

20

Alter Trick - neuer Look:

Beispiel 1

Fügen Sie Ihren Plattformen eine Farbebene hinzu, mit der Sie die definierte Linie beibehalten können.

Beispiel 2

Ihre Lösung für Linien- oder andere Grafiken kann variieren, das Prinzip ist jedoch dasselbe - die Farbe, die Sie auswählen, kann so subtil oder scharf sein, wie Sie es benötigen.

Tom 'Blue' Piddock
quelle
Die schönste Antwort in meinem ganzen Leben. Ich würde das Leben hier sagen, aber wir alle wissen, dass das eine Lüge wäre. i1.memy.pl/obrazki/8f68408024_no_life.jpg
ZenVentzi
1

Da dies ein unendlicher Läufer ist, gehe ich davon aus, dass Ihre Hintergrundfarben prozedural generiert werden. Ich bin mir bei Ihrem Algorithmus nicht sicher, nehme aber die Farbausgabe und beschränke den Bereich.

  1. Sie können Ihre Plattformfarbe (n) einfach als mögliche Hintergrundfarbenoption ausschließen (der Hintergrund kann jedoch geringfügig anders und schwer zu unterscheiden sein). Zum Beispiel: WENN backColor = platformColor THEN GetNextBackgroundColor (). Sie könnten auch hierfür eine Funktion 'IsColorSimilar (color1, color2)' erstellen, dies ist jedoch schwieriger.

  2. Verwenden Sie eine Liste bekannter gültiger Hintergrundfarben und blättern Sie durch diese.

  3. Haben Sie unterschiedliche Farbe "Stile" für beide. Ihre Plattform könnte hell und fröhlich sein und Ihre Hintergrundfarben auf entsättigte Farben beschränken. Sie müssen sich von der traditionellen RBG-Methode zur Darstellung von Farben entfernen und zu einem Modell wie HSL wechseln.

Ein großartiges Unity-Add-On für die Arbeit mit Farben ist ColorTools. Es kostet 10 Dollar, ist es aber wert. https://www.assetstore.unity3d.com/en/#!/content/21966

Es verfügt über Methoden zum Generieren von Farben für das, wonach Sie suchen, z. B. Desaturate () zum Entsättigen der generierten Hintergrundfarbe und IsSimilar (), um zu überprüfen, ob die beiden Farben zu nahe beieinander liegen.

Sie können andere ähnliche Funktionen mit ein wenig Suchen kostenlos in anderen Bibliotheken im Internet finden.

Doug.McFarlane
quelle