‫Wenn es eine Sache gibt, die für einen unendlichen Läufer am wichtigsten ist, dann ist es unendlich.
‫Und um eine unendliche Welt zu erschaffen, die wir brauchen und eine prozedurale Schöpfung, müssen wir sie prozedural erstellen, was
‫bedeutet, dass wir dies per Code tun müssen.
‫Wir wollen also keine riesige Welt aus, ich weiß es nicht, einer Milliarde verschiedener Teile unserer roten Elemente oder
‫alten Teile erschaffen.
‫Wir wollen das programmatisch tun und wir können das auf einem verfahrenstechnischen Weg tun.
‫Also, was ich jetzt machen möchte, ist zuallererst, ich möchte meinen Kristall aufstellen und ich möchte den Kristall ändern, nicht
‫irgendwo auf der Welt sein oder irgendwo, wo ich ihn positioniert habe.
‫Ich möchte, dass es auf einem Straßenteil ist.
‫Also lasst uns unseren Kristall positionieren.
‫Dieses hier.
‫Positionieren wir es auf unserem Straßenteil.
‫Also lasst uns Barway alle anderen Kristalle loswerden.
‫Löschen Sie auch, entfernen wir unsere Straßenteile, löschen Sie auch.
‫Und jetzt als Regisseur Crystal auf unser Spiel.
‫Sagen wir also grob hier ist in einer guten Position.
‫Mal sehen, ob es nur oben ist.
‫Ganz oben, ja, es ist in Ordnung.
‫Das ist gut und ich möchte den Kristall auf den Straßenteil legen und jetzt werde ich den Kristall
‫deaktivieren.
‫Wie Sie sehen, ist es jetzt nicht mehr verfügbar.
‫Wir müssten es aktivieren.
‫Und jetzt wird dieser Straßenteil ein neues Fertighaus sein.
‫Also lassen Sie uns diesen Straßenabschnitt in unserem Prefabs-Ordner verfolgen.
‫Und wir wollen später mehrere dieser Straßenteile prozedural erstellen.
‫Gut.
‫Bevor wir das tun, gibt es einen grundlegenden Teil unseres Spiels, der immer gleich sein wird.
‫Das wird also in gewisser Weise unser Weg sein.
‫Also lasst uns übrigens auch die Kristalle loswerden.
‫Und jetzt können wir den Kristall duplizieren und ihn entsprechend verschieben.
‫Die ersten Schritte sind also immer gleich, und dann geht es zur Site.
‫Dieses Stück wird also immer gleich sein, also schauen wir uns das Spiel an.
‫Ja, es ist immer dasselbe.
‫Sie bewegen sich immer so.
‫Und der nächste.
‫Gut.
‫Das ist nun der Anfang unserer Karte.
‫Und jetzt wollen wir weitermachen und es prozedural gestalten, damit die Teile automatisch und
‫effizient erstellt werden.
‫Und dazu erstellen wir ein neues Skript für unsere Straße.
‫Gehen wir also zu unserem Weg bei der Komponente und dem neuen Skript und nennen wir ihn einen Weg.
‫Jetzt öffnen wir das.
‫Und hier brauchen wir unser Repat Prefab.
‫Also öffentliches Spiel, Objektstraße Fertigbau.
‫Lassen Sie uns das ganz schnell in Einheit zuweisen, damit unser Straßenskript ein Straßenfertigteil benötigt.
‫Lassen Sie uns das Skript übrigens in unserem Skriptordner verfolgen.
‫Kommen wir nun zu unserem.
‫Straße und führt jetzt das Straßenskript oder das Straßenteil-Spielobjekt.
‫Okay, wir haben so ziemlich keine Fertighäuser mehr.
‫Gut.
‫Als nächstes müssen wir wissen, ab wann wir unsere Welt erschaffen haben wollen?
‫Also ich habe hier einen Pfeil.
‫Das Rohteil 11 wird nicht benötigt, das ist also zu wenig.
‫Also von der Straße an möchte ich weitermachen und neue Straßenteile erstellen.
‫Also ab diesem Zeitpunkt.
‫Wenn ich also neue Straßenteile erstellen möchte, muss ich die Position ablegen, die Position ist die Position
‫oder die Transformationsposition unseres Straßenteils.
‫Und wenn wir es uns ansehen, ist es an der Position null null sieben komma neun.
‫OK, also lassen Sie uns diese Position überprüfen.
‫Ich werde es in unser Roadscript zurückziehen.
‫Ich möchte diese Position haben.
‫Also werde ich im letzten Beitrag einen neuen öffentlichen Vektor erstellen.
‫Also nenne ich es und füge es hier zu null null sieben komma neun oder neun hinzu.
‫Das war die Position unseres letzten Straßenabschnitts.
‫Was wir jetzt wissen müssen, ist, um wie viel wir ein Objekt bewegen müssen.
‫Also dieses Straßenteil, positionieren wir es draußen und jetzt verschieben wir es oder duplizieren diese Straßenkraft und
‫bewegen es mit Kontrolle und Shift.
‫Und dann können wir sehen, dass es sich um einen ganzen Punkt bewegt, sieben oh sieben.
‫Das ist also so ziemlich die Breite oder die Positionsänderung unseres Blocks.
‫Und die Breite sollte es auch sein.
‫Gut.
‫Kehren wir also zu unseren Roadscripts hier zurück.
‫Wir müssen diesen Offset kennen.
‫Lassen Sie uns also einen neuen öffentlichen Float-Offset erstellen, der als Float Punkt sieben oh sieben heißt.
‫Und jetzt erstellen wir eine Methode.
‫Ich werde die Startmethode loswerden.
‫Ich werde eine neue Methode erstellen, öffentliche Leere, einen neuen Straßenteil erstellen.
‫Und ich werde vorerst nur den Rückstand debuggen, einen neuen Straßenteil erstellen.
‫Und innerhalb der Update-Methode werde ich überprüfen, ob der Benutzer eine Taste drückt.
‫Also geben Sie ein, dass die Taste gedrückt wird.
‫Und welchen Code will ich.
‫Punktabstand des Schlüsselcodes.
‫Immer wenn der Spieler die Leertaste drückt, möchte ich einen neuen Straßenteil erstellen.
‫Lass uns jetzt damit anfangen.
‫Lassen Sie uns diese Methode also noch weiter entwickeln.
‫Erstellen Sie also einen neuen Straßenteil.
‫Was brauchen wir hier?
‫Wir müssen Position erzeugen, die ein Vektor drei ist, also nennen wir es nicht Spon-Post-Vektor drei Null, was
‫die Position Null Null Null ist.
‫Das ist also eine zweite Position, von der aus wir beginnen.
‫Dann wollen wir eine Chance haben, die eine zufällige Bereichsvariable zwischen null und hundert ist.
‫Und wenn die Chance kleiner als fünfzig ist, möchte ich links spawnen und ansonsten möchte ich rechts
‫reagieren.
‫Wenn die Chance also kleiner als fünfzig ist, möchte ich einen positiven Satz haben, andernfalls möchte ich einen negativen Offset
‫haben.
‫Die Sporn-Position wird also der neue Vektor 3 sein, der die letzte Position von X plus Offset und die
‫letzte Y-Position ist.
‫Ich nehme an, deshalb und schließlich dachte der letzte Beitrag an Z plus den Versatz, das heißt, es wird unser verschieben oder es wird
‫eine Spawn-Position erstellt, die ein Vektor drei ist, die die Spawn-Position zuweist, die ein Vektor
‫drei ist .
‫Und wir werden das später verwenden, um unser Spielobjekt zu erzeugen, das unser geschriebenes Stück oder Rollenteil ist.
‫Ansonsten wollte ich die Spawn-Position gleich dem neuen Vektor drei sein, letzter Post X minus dem Offset.
‫Letzter Beitrag Y und letzter Beitrag Zeeb, plus die.
‫Lassen Sie uns nun fortfahren und die Spielobjekte erstellen.
‫Ich werde ein G Instantiated nennen, damit wir in unserer Einheitswelt erstellt haben, schrieb Prefab.
‫Und an welcher Position während der Spawn-Position.
‫Und welche Quaternion wollen wir haben?
‫Wir verwenden Quaternion Dot Yula, was bedeutet, dass wir es mit Null Komma fünfundvierzig Null drehen, weil unsere Spielobjekte ebenfalls
‫gedreht werden.
‫Und wir möchten, dass unsere Straßen gedreht werden, und wir möchten, dass sie auch hier gedreht werden.
‫Und jetzt brauchen wir die letzte Position oder müssen die letzte Position festlegen, die Gedo ist, transformieren Sie diese
‫Position.
‫Denn das ist die neue Position, oder?
‫Wir müssen die letzte Position unseres neuen Spielobjekts kennen.
‫Wir haben also mit der letzten Position begonnen, die wir manuell eingerichtet haben, und richten sie jetzt immer mit
‫der erstellten ein.
‫Der neue Straßenteil hat also eine bestimmte Position und wir speichern diese in unserer letzten Post-Variablen.
‫Gut.
‫Versuchen wir es also.
‫Ich ging zurück zu Unity und erstellte den geteilten Bildschirm.
‫Das macht hier Sinn, denn wir wollen sehen, was in der Szene passiert.
‫Also lass mich den Sound ganz schnell loswerden, obwohl er großartig ist.
‫Nun, lass uns ins Spiel gehen und jetzt lass uns den Spassky drücken.
‫Und wie ihr hier in der Szene seht, ist euch unsere Welt nun auf Basis unserer Armaturen entstanden.
‫Aber natürlich möchten wir, dass dies geschieht und nicht darauf beruht, dass wir die ganze Zeit klicken.
‫Wir wollen, dass dies auf der Grundlage unserer Position geschieht.
‫Kommen wir nun zurück zum Skripting.
‫Lassen Sie uns dies also automatisch erstellen.
‫Lassen Sie uns hier die private void-wach-Methode verwenden.
‫Und lass uns einfach repeating aufrufen oder lass uns die Methode widerrufen repeating aufrufen
‫und was wollen wir repeat well aufrufen und eine neue Straßenteilmethode erstellen.
‫Und das wollen wir nach einer Sekunde tun und das wollen wir jede Sekunde tun.
‫Also versuchen wir es einfach.
‫Lassen Sie uns das Spiel speichern und sehen, was jetzt passiert.
‫Versuchen wir es also.
‫Und wir können sehen, dass jede Sekunde ein neuer Straßenteil erstellt wird.
‫Okay, aber das ist nicht genau das, was wir wollen.
‫Wir wollen nicht, dass es in einer Woche erstellt wird, denn jetzt könnte oder könnte es passieren, dass wir das Spiel nicht starten
‫und es einfach läuft und wir immer noch jede einzelne Sekunde eine riesige Welt erschaffen.
‫Aber was wir tun wollen, ist nur, wenn das Spiel gestartet wird.
‫Diese wollen wir schaffen.
‫Also, wie machen wir das?
‫Nun, wir verwenden hier nicht die Wache-Methode, sondern eine andere, die wir oder
‫wir eine andere erstellen, die wir als Start-Start-Building bezeichnen.
‫Und es wird nicht privat, sondern öffentlich sein, weil wir von unserem Spielmanager darauf zugreifen wollen und natürlich brauchen wir die
‫Update-Methode jetzt nicht mehr mit gedrückter Taste, wo wir neue Straßenteile
‫basierend auf unserem Tastendruck erstellen .
‫Gehen wir also zum Spielmanager und zur Methode zum Starten des Spiels, denn hier starten wir das Spiel und das
‫ist ein perfekter Punkt, um diese Objekte zu erstellen.
‫Suchen wir also ein Objekt vom Typ und suchen wir das Straßenobjekt.
‫Und da hatten wir eine Methode namens Start Building, und das ist die, die wir aufrufen möchten.
‫Gut.
‫Lass uns weitermachen und das testen.
‫Gehen wir also zu unserem Spiel und ich bekomme eine Ausnahme ohne Referenz, und das hat damit zu tun, dass ich keinen
‫Spielmanager mehr habe.
‫Schauen wir uns also an, wie wir das ändern können.
‫Lassen Sie uns ein neues Spiel auf Manager erstellen, wenn dies auch bei Ihnen der Fall ist.
‫Ich werde hier einen Spielmanager erstellen und Regie führen oder ich werde das
‫zuerst hier zurücksetzen und meinen Spielmanager hierher ziehen, weil er aus irgendeinem Grund verschwunden ist.
‫Also werde ich die Szene jetzt speichern und bevor wir testen.
‫Und natürlich müssen wir die Punktzahl und den Text und den Highscore-Text zuweisen.
‫Also machen wir das und versuchen es noch einmal.
‫Und wir sollten den Fehler nicht bekommen.
‫Gut.
‫Jetzt sind wir also wieder auf dem richtigen Weg.
‫Ich muss es irgendwie gelöscht haben.
‫OK, also lass es uns jetzt ausprobieren oder lass es uns versuchen.
‫Beginnen wir das Spiel.
‫Und wie Sie sehen, wird das Spiel dort hinten prozedural erstellt und ist ein bisschen zu langsam.
‫Wir sind also schneller, als unser Spiel diese Teile schafft.
‫Lassen Sie uns also etwas schneller neu geschriebene Teile erstellen.
‫Übrigens könnten wir sie zum Beispiel alle oh Punkt fünf Sekunden erstellen.
‫Also lassen Sie uns das jetzt tun, oh Punkt fünf F, der dieses Problem lösen sollte.
‫Ich denke, das Intervall ist in Ordnung.
‫Werfen wir einen Blick darauf, starten wir das Spiel und sehen wir, ob es genug schafft.
‫Was mir jedoch nicht gefällt, ist, dass ich immer noch sehen kann, wie diese Stücke produziert werden.
‫Oh, ich bin hingefallen.
‫Das bedeutet, wie man es lösen kann, ist ziemlich einfach.
‫Ich könnte diesen Teil hier und da einfach loswerden.
‫Nun, den brauche ich.
‫Bringen wir es zurück auf unsere Straße.
‫Ich könnte dieses Stück einfach hier duplizieren und weiter verschieben.
‫Verschieben wir es eigentlich hierher.
‫Nochmals dupliziert, damit ich die Welt einfach ein bisschen größer machen konnte.
‫Also speichern wir das jetzt.
‫Und jetzt sollte ich nicht mehr sehen, wo es erstellt wurde.
‫Also lass uns das Spiel starten.
‫Und jetzt haben wir hier natürlich das Problem, dass wir nicht mehr den richtigen Endpunkt haben, denn wo war
‫er?
‫Unsere Straße muss die letzte Position haben.
‫Also der Offset der letzten Position und dieser sollte jetzt hier sein.
‫Unser Weg, Teil 14, ist jetzt der letzte.
‫Ändern wir also die Werte hier und nehmen auch den Z-Wert von unserer Straße und geben ihn hier ein.
‫Okay, also versuchen wir es jetzt noch einmal.
‫Mal sehen, wo die Stücke entstehen.
‫Und wie Sie sehen, werden sie an der richtigen Position erstellt.
‫Perfekt.
‫Und jetzt sehe ich nicht, wo meine Welt entsteht und denke, OK, Punkt fünf Sekunden sollten in Ordnung
‫sein, weil sie jetzt schneller erschafft, als ich laufen kann.
‫Ok das ist gut.
‫Jetzt fügen wir die Kristalle wieder hinzu, da wir keine Kristalle haben.
‫Jetzt wollen wir unsere Kristalle haben.
‫Kommen wir also zu unserem geschriebenen Skript.
‫Und hier im Create-New-Teil wollen wir jeden fünften Schritt oder jeden fünften Schritt einen Kristall haben.
‫Erstellen wir also eine private und Straßenzählung, die null ist, und erhöhen wir die Straßenzählung für jede Straße, die
‫wir erstellen.
‫Also Straßenzählung plus plus.
‫Und dann prüfen wir.
‫Wenn die Straßenanzahl durch fünf geteilt wird, also Modulo fünf gleich null ist, dann wollen wir unseren Kristall aktivieren.
‫Also g transformiere Gedanken und bringe das Kind in die Nullposition.
‫Also fügen Sie uns hinzu, holen Sie sich das Spielobjekt und setzen Sie es auf aktiv.
‫Wahr.
‫Das reicht also, wenn jetzt jede fünfte Straße einen aktiven Kristall hat.
‫Gut.
‫Und jetzt sagen wir das Skript, gehen wir zurück zu Unity und sehen, ob das funktioniert.
‫Die Startstücke haben also keine Kristalle.
‫Die von uns manuell erstellten haben also keine Kristalle.
‫Der Spieler muss hier also einen bestimmten Teil durchstehen, bevor er Kristalle bekommt.
‫Oh, jetzt haben wir hier aber ein kleines Problem.
‫Wie Sie sehen, funktioniert die Animation nicht mehr richtig.
‫Und vielleicht können Sie sich vorstellen, warum das so ist.
‫Nun, das hat damit zu tun, dass unser Spieler irgendwann in der Luft war oder die Luft nur für den Bruchteil einer
‫Sekunde berührt hat.
‫Und da fing er an, sich nicht mehr richtig zu bewegen.
‫Nun, nicht nur richtig gemacht, also lasst uns das beheben.
‫Wir können das auf zwei Arten beheben.
‫Man könnte sein, dass an einer Stelle etwas Platz dazwischen ist, so dass die Blöcke nicht perfekt aufeinander
‫abgestimmt sind.
‫Was könnte also einer der Gründe sein, warum ein anderer oder ein anderer Weg, es
‫zu lösen, sein könnte, zu unserer Charakteranimation zu gehen und einen neuen Übergang hinzuzufügen, den Übergang vom Fallen zum Laufen
‫zu machen, und dieser basiert auf einer Bedingung, die wir haben nicht erstellt.
‫Erstellen wir also einen neuen Parameter und nennen wir diesen Trigger.
‫Nicht mehr fallen, das wäre aber nicht die perfekte Lösung, also wäre die bessere Lösung wirklich zu prüfen,
‫ob es hier Lücken zwischen meinen Stücken gibt.
‫Aber ich wäre eine Möglichkeit, das zu tun, nicht mehr zu fallen.
‫Also machen wir das.
‫Kehren wir hier zu unserem Skript zurück, und wir können hier in unserem Diagrammcontroller und der Update-Methode weitergehen.
‫Wir könnten sagen, wenn die Neufassung nicht mehr an dieser Position ist, könnten wir fortfahren und den
‫Auslöser auf nicht mehr fallen einstellen.
‫Ich glaube, so nenne ich es.
‫Schauen wir es uns also an.
‫Lass uns das ändern, damit wir nicht mehr fallen.
‫IN ORDNUNG?
‫Das war der richtige Begriff, also lasst uns zur Einheit zurückkehren und das ändern, sodass wir nicht mehr fallen.
‫Und jetzt wollen wir sehen, ob das Problem gelöst ist.
‫Also lass uns das Spiel hier spielen.
‫Wir können zu unserer Szene gehen und vielleicht eine bessere Sicht auf solche Dinge finden.
‫Und jetzt lass uns weitermachen und das Spiel starten.
‫Also lasst uns jetzt einige sammeln.
‫Wie Sie sehen können, ist er dort gefallen.
‫Es gab eine kleine Lücke, und es war eine Lücke von unserem Start an.
‫Nun, der Punkt, an dem ich das Feld manuell erstellt habe und an dem wir mit der Vorgehensweise begonnen haben.
‫Da muss also eine kleine Lücke dazwischen gewesen sein.
‫Die eine oder die Lösung, die ich Ihnen gerade gezeigt habe, ist also nur ein Patch, ein kleiner Patch.
‫Sie sollten diese nicht wirklich verwenden, wenn Sie leben.
‫Sie sollten also eine kleine Lücke finden, die wir dort haben.
‫Aber ich finde es zu langweilig, dir das im Detail zu zeigen.
‫Schauen wir uns nun das nächste Kapitel an.
‫Oh, das habe ich verpasst.
‫Wie Sie sehen können, macht unser Spiel, was es soll.
‫Wir haben ein fertiges Spiel?
‫Ich würde sagen, wir haben den Ton.
‫Diese Punkte können wir sammeln.
‫Wir gut, wir haben eine hohe Punktzahl und so weiter.
‫Und ich denke, das Wichtigste ist unsere Verfahrenswelt.
‫Nun könnte die Herausforderung etwas höher sein.
‫Natürlich können Sie die Geschwindigkeit des Players schrittweise ändern.
‫Dann müsste man natürlich auch das Tempo ändern, in dem wir unsere Prozeduralkarte erstellen und das sind
‫wir super.
‫Ich denke, es reicht, wenn Sie gesehen haben, wie ich sechsundzwanzig Punkte verbinde, und im nächsten Kapitel werden wir das
‫nächste Spiel erstellen.
‫Ich hoffe also, Sie haben Recht und ich hoffe, Sie haben dieses Spiel genommen und es noch besser gemacht.
‫So machst du es noch besser.
‫Also mach bitte weiter und füge Funktionen hinzu, von denen du denkst, dass sie dieses Spiel besser aussehen lassen oder dieses Spiel
‫einfach fantastisch machen würden.
‫Also bitte mach weiter und teile das mit uns.
‫Gut.
‫Wir sehen uns also im nächsten Kapitel.