‫Wenn wir uns die Benutzeroberfläche von Fruit Ninja ansehen, können wir sehen, dass wir einen Brunnen haben, ich eine beste Punktzahl erziele und dann haben wir
‫einen Timer, der abläuft.
‫Und das müssen wir natürlich auch unserem Spiel hinzufügen.
‫Lassen Sie uns also zuerst ein neues Objekt erstellen und es als Spielmanager bezeichnen.
‫Und hier fügen wir ein Skript hinzu.
‫Lassen Sie uns also ein neues Skript erstellen und dieses aufrufen, und wir weisen diesem Spielmanager ein neues Skript zu.
‫Lassen Sie uns also hier in unserem Skriptordner ein neues Skript erstellen und diesen Spielmanager nennen.
‫Ziehen wir nun den Spielmanager in unser Spielmanagerskript, nicht um das Spielmanagerskript an unseren
‫Spielmanager zu leiten und zu bearbeiten.
‫Was unser Spielmanager jetzt tun wird, ist, die Punktzahl zu zählen.
‫Lassen Sie uns dafür eine Methode und mehrere Variablen erstellen.
‫Zuerst benötigen wir eine ganze Zahl, der der Score-Wert zugewiesen wird, und dann
‫benötigen wir ein Textobjekt.
‫Und um mit Text zu arbeiten, müssen wir die Unity
‫Engine-Start-UI hinzufügen.
‫Auf den Namensraum mit der Engine der Benutzeroberfläche können wir jetzt auf die Textklasse public text zugreifen und
‫diesen Score-Text nennen.
‫Und lassen Sie uns eine Methode erstellen, die einfach unsere Punktzahl erhöht.
‫Also öffentlich aufheben, Punktzahl und Ausgabe erhöhen, Punktzahl um sagen wir zwei erhöhen.
‫Jedes Mal, wenn jemand diese Methode oder eine Klasse diese Methode aufruft.
‫Also um zwei erhöhen.
‫Und dann wollen wir auch noch den Notentext setzen.
‫Jedes Mal, wenn die Punktzahl erhöht wird, möchten wir natürlich auch die Textvariable aktualisieren.
‫Also punkten Sie mit der Saite.
‫Gut.
‫Jetzt speichern wir dieses Skript und kehren hier zu Unity zurück.
‫Wir werden ein neues Objekt erstellen und ich werde dieses UI nennen.
‫Ändern wir also den Namen des Spielobjekts.
‫Nennen wir es UI.
‫Und jetzt fügen wir hier einen UI-Text hinzu.
‫Ich werde die Leinwand erstellen.
‫Ich werde die Leinwand auf das UI-Spielobjekt ziehen.
‫Und was ich hier verwenden möchte ist, dass unser Leinwandskalar keine konstante Pixelgröße hat, sondern mit der Bildschirmgröße
‫skaliert und wir die Auflösung beispielsweise auf achthundert mal achthundert oder neunzehn, zwanzig mal
‫zehn einstellen können achtzig, was immer du haben willst.
‫Also werden wir vorerst nur den Text dort haben.
‫Schauen wir uns also an, wie das derzeit aussieht und wir sehen den Text nicht, also lassen Sie uns das schaffen.
‫Kommen wir zu unserer Leinwand.
‫Da bist du ja.
‫Und Sie sehen, dass unser Text derzeit nicht einmal in unserem Spiel ist.
‫Mal sehen, unsere UI-Elemente sollten zurückgesetzt werden, OK?
‫Und jetzt können wir die Position unseres Textes ändern.
‫Ich möchte, dass sich mein Kortex oben links auf meiner Benutzeroberfläche befindet.
‫Zoomen Sie also ein wenig hinein und ändern wir die direkte Transformation nach oben links.
‫Das wird die Ankervoreinstellung sein.
‫Das heißt, aus dieser Perspektive werden die Werte von X und Y berechnet.
‫Also wählen wir einfach null null.
‫Und Sie können sehen, dass sich unser Text jetzt in dieser oberen linken Ecke befindet.
‫Jetzt wären gute Werte zum Beispiel einhundert minus fünfundsiebzig und vielleicht ändern wir auch
‫die Größe unseres Textes.
‫Dies wird also der Notentext sein.
‫Also vielleicht und es gibt hier einen Wert wie Null und ändere den Namen davon.
‫Schule wird ihren Kerntext nennen.
‫Jetzt ist die Schriftgröße natürlich etwas zu klein, also ändern wir das.
‫Gehen wir mit, sagen wir einhundertzwanzig.
‫Und wie Sie jetzt sehen können, verschwindet es.
‫Wir sehen die Nummer also nicht mehr und das hat mit dem Überlauf zu tun.
‫Wenn Sie also einen horizontalen und vertikalen Überlauf hinzufügen, wird die Nummer angezeigt, egal was passiert.
‫Nun, egal in welcher Größe hier zB vier mit Anhydrase für dieses Objekt.
‫OK, so wird es derzeit aussehen, vielleicht ist es nicht die perfekte Position, um damit herumzuspielen,
‫vielleicht also, um es dort hochzuziehen.
‫Also die Y-Position von Null, ich denke, das sollte in Ordnung sein.
‫Lassen Sie uns nun die Farbe des Textes ändern.
‫Machen wir es eine orange oder orangefarbene Farbe.
‫Also alles, mal sehen, es gibt natürlich null, unser Hintergrund sieht nicht mehr so schön aus.
‫Wir müssen den Hintergrund unseres Spiels ändern, aber zumindest haben wir unseren Cortex.
‫Lassen Sie uns nun diesen Text duplizieren und diesen einen Highscore-Text nennen.
‫Und jetzt ändern wir diesen Highscore-Text.
‫Ziehen wir es nach unten und geben wir die Null von Best Colon ein.
‫Und Sie sehen, das ist natürlich viel zu groß.
‫Lassen Sie uns das auf vielleicht 36 herunterskalieren.
‫Das sieht im Spiel First Zero viel besser aus.
‫Okay, jetzt ändern wir vielleicht den Hintergrund unserer Hauptkamera.
‫Also jetzt ist es soweit.
‫Diese Farbe, diese orange-bräunliche Farbe, und vielleicht sieht das besser aus, oder für den Moment ist es in Ordnung.
‫Ich denke, das ist jetzt besser.
‫Um unsere Nummer ein bisschen cooler aussehen zu lassen, können wir eine Gliederung hinzufügen, damit Sie hier
‫zur Benutzeroberfläche gehen können.
‫Fügen Sie also eine Komponente hinzu, dann UI-Effekte und dann finden Sie hier eine Übersicht.
‫Nun, das wird tun, was Ihrem Spiel eine Gliederung hinzufügt, damit Sie oder zu Ihrem Text können, und Sie könnten
‫das so machen.
‫Wie Sie sehen können, wie Sie eine Kante erstellen können, eine Konturkante für Ihre Punktzahl, schreiben Sie hier Ihren Highscore-Text.
‫Es würde keinen Sinn machen, wenn die Hauptkamera zum Beispiel eine helle Farbe hätte, dann würde eine schwarze
‫besser aussehen.
‫Wenn es zum Beispiel so ist wie diese Farbe, dann sollte vielleicht die Partitur eine Wirkung haben.
‫Farbe schwarz.
‫Also ich denke, das sieht viel besser aus, als der High-School-Text auch einen bekommen sollte.
‫Also fügen wir in U hinzu.
‫Ich habe den Umriss des Effekts und wie Sie jetzt sehen können, sehen sie viel besser aus.
‫Gut.
‫Lassen Sie uns nun unseren Score-Text in unseren Code implementieren.
‫Unser Spielmanager erwartet also bereits einen Punktetext, damit wir ihn hineinziehen können und unser aktueller Punktestand
‫Null ist.
‫Wenn wir das zum Beispiel auf fünf setzen, schauen wir uns an, was passiert.
‫Das heißt, dass zu fünf im Spiel noch nichts passiert, also müssen wir die Punktzahl hinzufügen.
‫Das heißt, wir müssen diese Methode hier aufrufen, diese Methode mit erhöhter Punktzahl in unserem Fruchtskript.
‫Wenn wir also eine geschnittene Frucht herstellen, bedeutet dies, dass wir eine zusätzliche Punktzahl erhalten.
‫Um dies zu tun, fügen wir Suchobjekt
‫vom Typ Spielmanager hinzu und erhöhen die Punktzahl.
‫Dies erhöht nun die Punktzahl jedes Mal, wenn wir eine Frucht aufschneiden.
‫Gut.
‫Also lassen Sie es uns jetzt testen.
‫Beginnen wir das Spiel.
‫Und lassen Sie uns unsere Früchte durchschneiden, und wie Sie sehen, wird unsere Punktzahl jedes Mal um zwei erhöht, und
‫vielleicht möchten wir unterschiedliche Werte basierend auf den Früchten haben, die wir aktuell geschnitten haben.
‫Wir schneiden nur Orangen, aber vielleicht möchten wir auch andere Objekte in Scheiben schneiden.
‫Dann möchten wir zum Beispiel auch andere Werte haben.
‫Also lassen Sie uns hier nur drei zuweisen.
‫Jetzt bekommen wir natürlich einen Fehler, weil der Spielmanager selbst nicht weiß, was diese drei tun
‫sollen.
‫Also fügen wir hier und jetzt einen Endpunkt hinzu.
‫Anstatt Punktzahl plus zwei plus gleich zwei zu sagen, erhöhen wir sie einfach um die erzielten Punkte.
‫In unserem Fall werden es jetzt drei sein.
‫Jedes Mal, wenn wir laufen oder Obst schneiden, bekommen wir jetzt drei Punkte.
‫Schauen wir uns das also ganz schnell an, wenn das stimmt.
‫So.
‫Lass uns eine Frucht aufschneiden und wir bekommen jetzt drei Punkte.
‫Als nächstes müssen wir eine Funktion hinzufügen, die das Spiel stoppt, denn jetzt können wir das Spiel endlos spielen und wir
‫erhalten ständig Punkte und es gibt keine Bestrafung für jedes Verhalten.
‫Und das wollen wir natürlich ändern.
‫Und Fruit Ninja, das macht normalerweise der Bomp oder der Timer.
‫Wenn also der Timer abläuft, wird das Spiel gestoppt oder wenn wir auf eine Beule treffen, dann stoppt auch der Timer.
‫Also fügen wir unserem Spiel die Bombe hinzu.
‫Also gehen wir zum Tatort.
‫Aber lass uns unseren Modelordner öffnen und hier hatten wir die Bombe.
‫In Ordnung, also lass uns jetzt in eine Szene von dir gehen und die Bombe in unser Spiel ziehen.
‫Nun, eigentlich ist es zu groß, also lass es uns wieder loswerden.
‫Also lass uns die Bombe löschen und zu unserem Bombenmodell gehen.
‫Lassen Sie uns nun den Skalierungsfaktor auf alle Punkt drei ändern und diese anwenden.
‫Und jetzt können wir die Bombe einleiten.
‫Und ich denke, dass die Größe viel besser ist.
‫Lassen Sie uns nun einige Komponenten hinzufügen.
‫Zum Beispiel eine Physik zum Starrkörper und eine Physik 2D-Box oder eigentlich Circle Collider hier.
‫Dies sollte in Ordnung sein.
‫Gut.
‫Der Collider passt gut, finde ich.
‫Gut.
‫Was wollen wir also tun, wenn wir auf eine Beule treffen?
‫Nun, wir wollen das Spiel pausieren und das Spiel über den Bildschirm zeigen oder so ähnlich.
‫Also fügen wir unserer Bombe ein Skript hinzu.
‫Also füge ich ein neues Skript hinzu und nenne es ein Bombenskript oder eigentlich nur Bombe.
‫Und jetzt ist das Bombenskript hier geöffnet, wir fügen eine 2D-Methode zum Eingeben des Auslösers hinzu.
‫Jedes Mal, wenn wir die Bombe treffen, wollen wir sehen, ob die Klinge uns getroffen hat.
‫Blade B ist
‫also gleich Kollision, dass diese Kollision tatsächlich die Kollision hier ist, Kollision, die Komponenten und Blade erhält.
‫Also, was das bedeutet, wir haben diesen Code bereits gesehen.
‫Aber was bedeutet das, wenn das Objekt, das ausgelöst oder getroffen wurde, uns ausgelöst hat, wenn das die Klinge ist, dann tun
‫Sie etwas.
‫Und wenn es nicht die Klinge ist, dann kehre zurück.
‫Wenn also nicht zurückgegeben wird, es aber B ist, möchten wir ein Objekt vom Typ Spielmanager finden.
‫Dann wollen wir also auf unseren Game-Manager zugreifen und eine Methode von ihm aufrufen.
‫Sagen wir also beim Bombentreffer.
‫Wenn wir also jetzt auf die Beule treffen, beschwert es sich, dass es keine Methode gibt, die für Bombentreffer aufgerufen
‫wird, und wir werden diese Methode in unserem Spielmanager finden oder wir müssen diese Methode und den Spielmanager erstellen.
‫Lassen Sie uns diese Methode bei einem Bombentreffer ungültig machen und sie sollte öffentlich sein, damit wir natürlich von außen darauf
‫zugreifen können.
‫Sagen wir erstmal Bumpus Hit.
‫Also debuggen Sie diesen Log-Bombe-Treffer.
‫Speichern wir also dieses Skript, speichern wir auch das Skript.
‫Jetzt sehen wir, dass der Fehler nicht mehr da ist.
‫Jetzt testen wir das.
‫Gehen wir also zurück.
‫Lassen Sie uns das Bomp-Skript in unseren Skriptordner verschieben, während wir schon dabei sind.
‫Und jetzt lassen Sie uns das Spiel laufen lassen und sehen, ob ich eine Beule treffe.
‫Eigentlich bewegte sich die Bombe zu schnell, also werde ich sie nach oben schieben, damit ich eigentlich kann, was
‫ich jetzt tun kann, ist die Deaktivierung.
‫Schwerkraft, also sagen wir Schwerkraftskala Null.
‫Und mal sehen was passiert.
‫Und ich kann die Bombe richten oder schlagen.
‫Eigentlich wird natürlich nichts so empörend passieren, da es beim Circle-Collider keinen Auslöser gibt.
‫Sehen wir uns noch einmal an, was jetzt passiert.
‫Und wie Sie sehen, wird Bompard jedes Mal angerufen, wenn ich durch die Bodenwelle gehe.
‫Gut.
‫Jetzt können wir also die Schwerkraftskala wieder auf eine ändern, das war nur zu Testzwecken und jetzt sollte unsere Bombe
‫funktionieren.
‫Was wir jetzt tun möchten, ist, das Spiel zu stoppen, wenn dies passiert, damit wir einfach sagen können, dass
‫die Zeitpunkt-Zeitskala gleich Null ist.
‫Das wird das Spiel einfach stoppen.
‫Diesmal ist diese Zeitskala im Allgemeinen eine Funktion, mit der Sie die Geschwindigkeit Ihres Spiels reduzieren können. Null bedeutet, dass es überhaupt
‫keine Geschwindigkeit gibt, was bedeutet, dass es keine Bewegung gibt und Sie das Spiel stoppen.
‫Und einer wäre, Sie haben die normale Geschwindigkeit.
‫Zeitskala Eins ist also der Standardwert und Zeitskala Null ist zum Beispiel das Beenden des Spiels.
‫Also speichern wir das Skript und überprüfen es noch einmal und sehen wir, ob ich die Bombe schnell genug schlagen kann.
‫Um das Spiel zu stoppen und wie ihr sehen könnt, habe ich es durchgestürzt und meine Bomben waren eigentlich meine Früchte gestoppt und
‫die Bomben haben auch aufgehört.
‫Gut.
‫Jetzt haben wir nur noch eine Bombe.
‫Eine Bombe ist also in Ordnung, aber wir wollen auch zufällig Bomben spawnen.
‫Dazu müssen wir zu unserem Spawner-Spielobjekt zurückkehren.
‫Unser Drehbuch hat es also besser gesagt.
‫Kommen wir also zum Sponer-Skript.
‫Und derzeit haben wir nur eine Frucht zum Laichen, also können wir nur eine Fruchtart laichen.
‫In diesem Fall ist es eine Orange.
‫Aber was wir haben wollen, ist, in der Lage zu sein, Orangen und Bananen zu spawnen, zu spawnen, was immer wir wollen,
‫und auch Bomben zu spawnen.
‫Und um dies zu tun, müssen wir diese Frucht so ändern, dass sie in ein Array erscheint, bei dem es sich um ein Array von Spielobjekten
‫handelt.
‫Fügen wir also die eckigen Klammern hinzu und ändern wir dies in Objekte zum Spawnen, denn es sind nicht nur Früchte, sondern
‫Objekte im Allgemeinen.
‫Jetzt bekommen wir hier natürlich einen Fehler, weil wir versuchen, eine einfache Frucht zu laichen und diese Methode nicht mehr
‫verfügbar ist.
‫Wir müssen also zufällig ein Spielobjekt erstellen, das entweder eine Bombe oder eine andere
‫Frucht ist.
‫Und dann sagen wir einfach, OK, sponser das.
‫Also lass uns das machen, lass uns ein Spielobjekt erstellen, das ein G-Loch genannt
‫wird und sagt, dass du weißt, und dann haben wir einen zufälligen Wert, also erstellen wir einen zufälligen Wertebereich.
‫Wir wollen nach dem Zufallsprinzip verschiedene Arten von Früchten oder verschiedene Arten von Spielobjekten erstellen.
‫Zum Beispiel sollte die Bombe seltener erscheinen als etwas anderes.
‫OK, also was ich hier sagen werde, wenn P kleiner als 10 ist, weil der Wert zwischen null und hundert liegen kann, also wenn er kleiner
‫als 10 ist, möchte ich eine Bombe spawnen.
‫Die Wahrscheinlichkeit einer Bombe beträgt also etwa 10 Prozent oder die Wahrscheinlichkeit, dass eine Bond-Bombe spawnt.
‫Also werde ich nur sagen, gee, alles sind Objekte, die an der Position Null erscheinen.
‫Also muss ich mich jetzt natürlich darum kümmern oder ich muss die Bombe auf
‫die Position Null zuweisen und sonst.
‫Ansonsten möchte ich ein Ziel mit Objekten zum Spawnen mit einem zufälligen Bereich zwischen Eins und Objekten zum Spawnen Länge setzen.
‫Das reicht also mit einer Wahrscheinlichkeit von 10 Prozent.
‫Ich werde eine Bindung herstellen.
‫Und mit einer Chance von 90 Prozent werde ich eine andere Art von
‫Früchten kreieren und hier muss ich natürlich geschweifte Klammern verwenden, weil dies ein Index ist, dem wir dies zuordnen wollen.
‫OK, also noch einmal, 10 Prozent Chance, dass es eine Beule ist und 90 Prozent Chance, dass es etwas zufälliges
‫aus all den anderen Objekten ist, die wir zugewiesen haben.
‫Und natürlich instanziieren wir keine Frucht mehr, um zu laichen.
‫Wir instanziieren dieses Spielobjekt.
‫Natürlich könnten Sie ein Objekt erstellen, um das zu erzeugen, was Sie Früchte zum Spawnen nennen.
‫Und dann könnte man natürlich auch öffentliche Spielobjektbombe sagen.
‫Und dann könnten Sie hier einfach die Bombe zuweisen und jetzt Geode in Bamp ändern.
‫Das wäre eine Option.
‫Natürlich wäre hier Ihre Reichweite von Null bis irgendwo.
‫Das wäre eine andere Möglichkeit.
‫Vielleicht ist das sogar eine etwas intuitivere Option, weil die Bombe eine ganz bestimmte Fruchtsorte ist.
‫Und was wir sonst noch hinzufügen, können wir nach Belieben hinzufügen.
‫Denn anders, als ich es Ihnen gerade gezeigt habe, mussten wir immer aufpassen, dass wir die Bombe
‫der allerersten Stelle zuordnen.
‫Und das wissen wir, weil wir den Code erstellt haben.
‫Aber wenn jemand anders damit beginnt, den Code auszuführen oder den Code zu bearbeiten, könnte er darüber verwirrt sein.
‫Gut.
‫Also stellen wir jetzt sicher, OK, es wird hier die Bombe.
‫Jetzt speichern wir das.
‫Und gehen wir zurück zu Unity.
‫Dort werden Sie sehen, was passiert, damit unser Spawner Früchte zum Spawnen bekommt.
‫Derzeit ist es nur die Orange und nach ein paar Sekunden sollte es von verzweifeln Früchten zu Objekten zu
‫Spawn und BAMP wechseln.
‫Gut.
‫Da sind also die Bombe und die Gegenstände zum Laichen.
‫Und ich werde nur sagen, dass es derzeit ein Objekt sein wird, das ich spawnen möchte.
‫Und jetzt gehen wir zu unseren Prefabs und ziehen die Orange dort hinein.
‫Also lenkt der Spawner die Orange hier rein.
‫Und nun zu der Beule, eigentlich haben wir noch kein Bump-Präfab, also erstellen wir
‫ein Bond-Prefab, ziehen wir die Beule in unseren Prefabs-Halter und ziehen wir diese Beule jetzt in unseren Spawner.
‫Um das zu testen, sollten wir hier vielleicht den Wert auf 50 setzen, damit die Chance 50 50 besteht,
‫dass eine Bombe hochgeht.
‫Also nur um zu sehen, ob es Bomben gibt, wo die Bomben im Allgemeinen herkommen.
‫Gut.
‫Es gibt also eine Bombe.
‫Orangen, Palmen, Orangen, Palmen.
‫Und wenn ich auf eine Beule stoße, na ja, ich treffe sie draußen, aber ich treffe auf die Beule und jetzt, bumm, hört das Spiel auf.
‫Mal sehen, ob wir jetzt.
‫Nun, setzen wir das auf zehn zurück.
‫Das ist besser.
‫Und jetzt beträgt die Chance, dass eine Bombe hochgeht, nur noch 10 Prozent.
‫Natürlich.
‫Und wie Sie sehen, Orangen, Orangen, Orangen, und dann bekommen wir die ganze Zeit Punkte, irgendwann könnte eine
‫Bombe hochgehen.
‫Bisher war keiner da.
‫Ach, komm schon, Westerbork, wie du siehst, das ist doch so eine Sache mit Chancern, oder?
‫Chancen sind nur Zufall.
‫Es kann passieren, dass ich hier eine Unmenge Orangen bekomme, bevor ich eine Beule bekomme, während die Wahrscheinlichkeit sehr gering ist und
‫es ein Perfekt gibt.
‫Gut.
‫Es hat also einiges gedauert.
‫Wie Sie sehen, habe ich bereits 40 Orangen getötet, bevor ich eine Beule bekam, was 10 Prozent bedeutet.
‫Nun, es sind 10 Prozent.
‫Es kann jederzeit passieren.
‫Und das ist erst nach fast 40 oder vielleicht sogar 50, ich glaube sogar 50 Orangen passiert, weil ich nicht jede einzelne
‫getroffen habe.
‫Gut.
‫Ich würde also sagen, gehen wir zum nächsten Video, in dem wir sehen, wie wir das Spiel beenden und unser Spiel neu
‫starten.
‫Wir sehen uns also dort.