Countdowns sind einfache Elemente, die in vielen Spielen vorkommen. Ihr Design kann jedoch leicht übersehen werden.
Mit ein paar einfachen Ergänzungen kann ein regulärer Timer jedoch wesentlich anregender gestaltet und in das Universum des präsentierten Spiels eingepasst werden, wodurch die Spielerfahrung erheblich gesteigert wird.
Viele dieser Elemente werden von dem Vortrag "Juice it or lose it" von Martin Jonasson und Petri Purho über das Spiel "Juicier" inspiriert. Die Quintessenz ist, dass es nicht ausreicht, die Informationen in ihrer einfachsten Form darzustellen. Sie müssen auch das, was mit Farbe, Geräuschen und Bewegung geschieht, verbessern und akzentuieren, wodurch das gesamte Erlebnis viel ansprechender wird. Ich kann den Vortrag unbedingt empfehlen, um auch andere Anwendungen kennenzulernen.
In dieser zweiteiligen Serie werden wir diese Elemente durchgehen und sie dann in einem einfachen Unity-Projekt implementieren, für das Sie die neueste Version benötigen. Im nächsten Teil 2 werden wir detailliertere und differenziertere Elemente betrachten.
Bereit? Lass uns gehen!
Timer in Spielen können unterschiedlichen Zwecken dienen, wobei sich Anwendungen nicht unbedingt überlappen müssen. Diese sind:
Das Design eines Timers kann sich zwischen diesen beiden ändern, da sich die für den Player erforderlichen Informationen in seiner Anwendung ändern.
Wenn Sie fünf Minuten Zeit haben, um eine Bombe zu entschärfen Metal Gear Solid 2, Du musst das wissen genau Zeit, die Sie haben, da jede Sekunde für den Gesamtfortschritt und die Planung von entscheidender Bedeutung ist. Der Timer muss dem Spieler mitteilen, wie viel er noch hat, und ihn benachrichtigen, wenn dieser Wert kritisch wird.
Wenn Sie eine gewisse Zeit durchhalten müssen, wird das Genauigkeitselement weniger wichtig. Natürlich wäre es schön zu wissen, wie viel Zeit in Sekunden Sie zum Überleben brauchen, aber das Spiel kann auch ohne diese Informationen funktionieren. Es könnte sogar verbessert werden, da eine Information wie "Sie müssen nur noch ein paar Sekunden länger durchhalten!" ist in einer stressigen Situation leichter zu verstehen als "Bitte lesen Sie diese Nummer in der Ecke des Bildschirms" und kann das Eintauchen in die Spielwelt verbessern.
Lassen Sie uns nun einen Blick auf Elemente werfen, die Countdowns und Timer interessanter und ansprechender machen.
Anstatt nur irgendwo eine Zahl einzugeben, können Sie eine eigene Countdown-Grafik erstellen, die dem Benutzer ungefähr die verbleibende Zeit anzeigt.
Eine grafische 2D-Implementierung erfordert etwas Finesse, da Sie sicherstellen müssen, dass der Spieler die Idee "Die Zeit läuft ab und Sie haben noch etwa X Sekunden übrig" richtig verstehen und lesen können..
Dies funktioniert sehr gut, wenn Sie Umgebungsindikatoren verwenden, um den Fortschritt anzuzeigen, und die Stimmen des Spiels Ihnen sagen, wie viel noch übrig ist. Eine auf dem Bildschirm eingefügte Zahl kann sich als unangenehm anfühlen und könnte einige Spieler möglicherweise aus dem Spiel nehmen.
Im Halbwertszeit 2, Sie müssen beispielsweise eine Position verteidigen, bis ein Teleporter aufgeladen ist. Zu Beginn wird eine volle Ladung angezeigt, die dann erneut aufgefüllt werden muss.
Die Ladung wird durch Elemente der Maschine angezeigt, die aufleuchten und anfangen zu rotieren. Dadurch erhalten Sie eine rudimentäre Uhr, die anzeigt, wie lange Sie noch halten müssen.
Nach dem Gebrauch muss der Teleport aufladen. Die Elemente leuchten langsam wieder auf und geben dem Spieler einen Hinweis, wie lange er noch halten muss (von Halbwertszeit 2)Die Teleportergebühr ist auch ein gutes Beispiel für eine eingebettet Anzeige, die sich direkt in der Spielwelt befindet. Diese sind nützlich, da sie den Spieler auf die Welt selbst fokussieren, während ein Timer auf einer GUI-Ebene oben auf der Spielwelt wäre.
Ein Sauerstoff-Timer in Die U-Bahn in der letzten Nacht, direkt in der SpielweltHolen Sie sich eine coole Schrift für Ihre Countdowns! Bestimmte Schriftarten wie diese Digital Display Font-Emulation emulieren ältere Lightup-Displays, die hauptsächlich für Zahlen in alten "digitalen" Displays verwendet wurden.
Der Player wird diese Zeichensätze bereits mit Timern und Countdowns verknüpfen und das Lesen erheblich vereinfachen, als ob es in etwas wie Arial oder Times New Roman wäre.
Grundlegende Lesbarkeit und Textgestaltung gelten ebenfalls. Stapeln Sie die Zahlen nicht senkrecht, verwenden Sie keine römischen Ziffern usw.
Die Metal Gear Solid-Serie macht diesen wundervollen Trick: Sie haben nur noch 500 Sekunden Zeit! und dann eine Zahl anzeigen, die als "5:00" angezeigt wird.
Als ich es zum ersten Mal spielte, vervollständigte mein Verstand dies automatisch als "5 Minuten", aber es wurde ausgetrickst. "500 Sekunden" ist ein ungewöhnliches, aber korrektes Format für die Zeit, und die Leute sind im Allgemeinen nicht dazu ausgebildet, dies richtig zu verstehen.
Der Effekt ist, dass Spieler denken, dass sie nur 5 Minuten haben, während es tatsächlich 8 Minuten und 20 Sekunden sind.
Dies hat in der Regel keine Nachteile, da sie durch die strenge Frist begrenzt werden und sich auf die Erledigung der Aufgabe konzentrieren Metal Gear Solid 2Bomben entschärfen), was sie von der Tatsache ablenkt, dass fünf Minuten vergangen sind und es noch Zeit gibt.
Dies geht Hand in Hand, wenn Sie dem Spieler die verbleibende Zeit in Sekunden mitteilen.
Ein wiederkehrendes Element in der MGS2 Countdowns sind, dass sie keine 60-Sekunden-Umsätze haben, sondern 100-Sekunden- "Umsätze". Dies ist nicht wirklich eine Minute, die zur nächsten übergeht, sondern die Sekunden werden aufgelistet. Statt 01:00 wird 00:59, wird aus 0100 0099. Sie müssen nur den Wert selbst ermitteln, was die Erstellung eines Countdowns vereinfacht, da Sie die Minutenberechnung überspringen können.
Die Anzeige von Millisekunden nach der Hauptnummer macht es viel interessanter!
Dies ist ziemlich einfach, da die Zeit bereits in einem Float gespeichert werden kann. Zwei bis drei Fließkommazahlen sind ein guter Wert, der noch lesbar und für den Spieler möglicherweise nützlich ist.
Wenn der Timer einen bestimmten niedrigen Wert erreicht, färben Sie den Text anders ein. Gelb zu machen funktioniert gut, da es den Timer mehr hervorhebt.
Sobald es seine letzten Sekunden erreicht hat, machen Sie es rot, größer und blinken. Nun kann die geringe Menge nicht ignoriert werden und es entsteht Spannung im Spieler.
Beginnen wir nun mit der Verbesserung eines Timers per Code. Wir werden das drehen:
Das sehr gut finden:
Unsere verbesserte TimeranzeigeWir werden einige spezielle Assets verwenden, die Sie schnell erhalten oder selbst erstellen können, oder Sie erhalten von den Quelldateien, die Sie oben rechts in diesem Artikel herunterladen können.
Bereit? Lass uns gehen!
Starten Sie Unity und erstellen Sie ein neues Projekt.
Erstellen Sie dann ein leeres Spielobjekt, platzieren Sie es vor der Kamera und fügen Sie über textMesh hinzu Komponente> Netz> TextMesh dazu Dies ist die Anzeige für den Timer in der Spielwelt.
Wir werden vorerst das 3d-textmesh verwenden, dies funktioniert aber auch in anderen Bereichen, beispielsweise der Unity-Benutzeroberfläche. Für den Moment hat der 3D-Text auch den Vorteil, dass es sein kann Innerhalb die Spielwelt, wie bereits erwähnt, und nicht oben drauf der Welt in einer GUI-Schicht.
Unser neuer 3D-Text wird nicht sofort angezeigt. Wir müssen einige Werte ändern.
Stellen Sie die Zeichengröße auf 0,1, der Anker zu Mitte links, die Ausrichtung zu Center, und die Schriftgröße auf 80. Fügen Sie auch Platzhaltertext in das Feld "Text" ein. Dies ist nur so, wir haben etwas im Editor zu sehen; Während des Spiels wird dies direkt über den Code angepasst. 00:00 werde gut tun.
Dann erstellen Sie eine neue Datei mit dem Namen Countdown.cs, füge es zu unserem Timer-Objekt hinzu und füge diesen Code hinzu:
mit UnityEngine; using System.Collections; öffentliche Klasse Countdown: MonoBehaviour Float-Timer = 120f; void Update () Timer - = Time.deltaTime; GetComponent() .text = timer.ToString ();
Wir haben eine Variable namens Timer, die die Zeit enthält, die heruntergezählt wird. Im Moment ist es um 120 Sekunden oder 2 Minuten. Dann in der Aktualisieren
Funktion, die jeden Frame genannt wird, ziehen wir ab Time.deltaTime
. Dies ist eine Abkürzung, um die tatsächlich verstrichene Zeit dort anzuzeigen. Danach bekommen wir die textMesh
Komponente aus dem Objekt und passen seine Text
Wert, der der Timer sein soll, wird in eine Zeichenfolge umgewandelt.
Wenn Sie das Spiel jetzt ausführen, zeigt das Textnetz eine abnehmende Anzahl. Herzliche Glückwünsche! Sie haben einen einfachen Timer gebaut.
Aber es ist noch lange nicht engagiert. Es zeigt auch 4 bis 5 Zahlen nach dem Dezimalpunkt und geht nach Erreichen von Null weiterhin in negative Werte über.
Ein negativer Timer sieht kaputt aus, also stellen Sie sicher, dass dies nicht passiert. Passen Sie das an Aktualisieren
Funktion, um so auszusehen:
if (Timer> 0f) Timer - = Time.deltaTime; else timer = 0f; GetComponent() .text = timer.ToString ();
Dies verringert den Timer nur, wenn er tatsächlich positiv ist. Sollte es trotzdem negativ werden (was passieren könnte, wenn es die abgelaufene Zeit abzieht), wird es auf Null gesetzt.
Erinnern Sie sich an die coole Digital Display-Schrift, die ich oben erwähnt habe? Hol es dir und füge es deinem Projekt hinzu!
Der Textmesh-Bereich im Inspektor enthält ein Feld für die Schriftart. Ziehen Sie die Schriftart daher aus Ihren Assets.
Und jetzt wird unser Timer viel aufgeräumter aussehen!
Im Moment variiert die Anzahl der Zahlen nach dem Dezimalpunkt, wodurch der Timer stark schwankt. Korrigieren Sie das, indem Sie die Zeile, die den Wert auf den Text anwendet, folgendermaßen anpassen:
GetComponent() .text = Timer.ToString ("F2");
Dadurch wird nach zwei Zahlen automatisch alles abgeschnitten, und es werden ständig Dutzende und Hundertstel Sekunden angezeigt.
Lassen Sie uns einige adaptive Farben hinzufügen! Passen Sie das an Aktualisieren
Funktion, um so auszusehen:
if (Timer> 0f) Timer - = Time.deltaTime; else timer = 0f; if (Timer < 10f) GetComponent() .color = Color.red; else if (Timer < 20f) GetComponent () .color = Color.yellow; GetComponent () .text = Timer.ToString ("F2");
Der Timer wird gelb, wenn weniger als 20 Sekunden verbleiben, und rot, wenn weniger als 10 Sekunden verbleiben.
Die gesamte Countdown.cs-Datei sollte folgendermaßen aussehen:
mit UnityEngine; using System.Collections; öffentliche Klasse Countdown: MonoBehaviour Float-Timer = 60f; öffentlicher AudioClip soundBlip; void Update () if (Timer> 0f) Timer - = Time.deltaTime; else timer = 0f; if (Timer < 10f) GetComponent() .color = Color.red; else if (Timer < 20f) GetComponent () .color = Color.yellow; GetComponent () .text = Timer.ToString ("F2");
Und das ist es! Wir haben jetzt einen viel interessanteren und interessanteren Countdown.
Sie können das vollständige Projekt auch in den Quelldateien oben rechts in diesem Artikel anzeigen.
Wir haben uns einige Elemente angeschaut, die den Timer in Spielen verbessern. Die Lektionen davon können auch auf viele andere Elemente angewendet werden. Außerdem kann der Timer, den wir gebaut haben, einfach angepasst und in jede Art von Spiel eingefügt werden. Dies ist ein interessantes Element, ohne dass Sie den Inhalt erneut entwickeln müssen.
Aber es gibt noch mehr! Im nächsten Teil dieser Serie werden wir uns noch mehr Elemente anschauen und unseren Timer weiter verbessern.