Unity: Entkopplung von Daten und Verhalten unter Verwendung eines Model-View-Controller-Designmusters. | Fred Moreau | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Unity: Entkopplung von Daten und Verhalten unter Verwendung eines Model-View-Controller-Designmusters.

teacher avatar Fred Moreau, Unity Instructor, Agile Coach

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Kursübersicht

      0:35

    • 2.

      Ein Überblick über Designmuster

      6:37

    • 3.

      Mocking

      13:29

    • 4.

      Überlegene UI-Elemente als Prefabs

      3:11

    • 5.

      Spur Daten (Modell)

      5:42

    • 6.

      Abtrennung der Daten von der Komponente

      4:13

    • 7.

      die Daten zu einem benutzerdefinierten Asset Typ machen

      4:18

    • 8.

      Zufallsdaten (für Testzwecken)

      10:54

    • 9.

      Bearbeiten der Daten mit einem benutzerdefinierten Inspektor

      17:17

    • 10.

      Aufstellung der Komponente der the

      7:21

    • 11.

      Die Daten und die Ansicht ausfüllen

      6:40

    • 12.

      Animieren

      4:41

    • 13.

      Benutzerdefinierte Eingaben mit Keycodes umgehen

      11:35

    • 14.

      Spielern.

      6:46

    • 15.

      Gameplay

      6:12

    • 16.

      Auflistung der TrackView der Sync'ing

      10:09

    • 17.

      Bildmaterial mit dem Gameplay hinzufügen

      12:36

    • 18.

      Kurs Retrospektive

      2:10

    • 19.

      Refactoring.

      6:00

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

529

Teilnehmer:innen

2

Projekte

Über diesen Kurs

Dieses Training ist die erste Reihe von Schulungen in Einheit und konzentriert sich auf die Teamarbeit zwischen Designer:innen von Künstler:innen und programmers.

Jedes Training in dieser Serie wird ein spezifisches Thema der Spielindustrie ansprechen.
Dieser Kurs wird sich auf Designmuster und insbesondere den model-view-controller ansprechen.

Wir beginnen von Grund auf neu zu erstellen und einen Guitar Hero zu erstellen, oder Tap Rache wie
Spiel zu

Wir beginnen mit einem schnellen Überblick über die bekannten Muster (MVC, MVVM, MVVM),
dann werden wir die Ansicht von a verbessern, bevor wir uns an der up arbeiten.

Wir entwerfen die Track (Modell), dann zeigen und bearbeiten sie, und werden sie mit einem benutzerdefinierten Inspektor Wir werden mit dem Kurs von ScriptableObject anwenden

Wir werden dann in der Track arbeiten, es mit Prefabs work auffüllen und sie animieren.

Wir werden dann auf dem Game-Controller, der Eingaben des Spielers und alle GamePlay behandeln

Am Ende des Kurses wissen Künstler::, was sie mit UI-Komponenten machen können.

Triff deine:n Kursleiter:in

Teacher Profile Image

Fred Moreau

Unity Instructor, Agile Coach

Kursleiter:in

With a strong technical expertise and a taste for design, I've had the opportunity to lead teams of creative people through development of innovative projects.

I'm passionate about learning and training, I started giving training early and have been involved in training certification programs. When you work in this industry, sharing your knowledge is not only a duty, it's the opportunity to learn even more.

I'm a self-taught developer myself. I work with Unity since 2011, and was very lucky to meet with mentors who taught me a great deal about OOP. That's a lot to learn about when your background is not in engineering, though, I figured that if I could do it, anyone can.

Vollständiges Profil ansehen

Level: Intermediate

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Kursübersicht: In diesem Training werden wir auf Design-Muster und vor allem das Modell View-Controller-Muster, das weit verbreitet in Aptiva Lawmen verwendet wird und sehr nützlich in der Spielentwicklung sein kann um zu beginnen, die U. Y unter Verwendung der Werkzeuge für die Einheit y. Dann werden wir auf unergründliche Objekt berühren, die uns erlaubt, Sicherheitsdaten Indie-Editor und verwenden Sie es jedes Mal. Und dann werden wir auf den Game-Controller berühren, um die Eingaben vom Spieler zu nehmen und Feedback an den Spieler zu senden, um ihn wissen zu lassen, wenn Blade richtig oder falsch dafür, wir werden einen Tap Rache oder Gitarrenheld Art von Spiel verwenden. Also mit dieser weiteren Aito Gelegenheit und ich werde Sie im nächsten Video sehen 2. Ein Überblick über Designmuster: Während dieses ersten Kapitels wir auf den Model View-Controller zu berühren, werden wir auf den Model View-Controller zu berühren, die die Basis für die kommenden Kapitel aus diesem Spielprojekt sein wird, das wird eine Art Gitarrenheld sein oder tippen Sie auf Rache Art Spiel, wo der Spieler muss verschiedene Eingänge und Rhythmus mit der Musik abspielen. Und so, was Ah, können wir hier sehen, ist, dass das Gameplay ist ein sehr datenzentriertes Gameplay. Es bedeutet also, dass wir Daten für die Tracks verarbeiten müssen. Und so müssen wir Ah, Thor, die Daten. Und dann werden wir auch Teoh haben, um diese Daten zu verwenden und in diesem Kapitel daran zu arbeiten, die Daten zu behandeln, einige grundlegende Daten zu erstellen. Und was wir hier sehen ist, dass Ah, wir haben eine Reihe von erwarteten Eingaben angezeigt wird, ist Colin und so werden wir es für den Moment sehr einfach machen , wo wir nur eine Eingabe durch sie eins in haben. Aber so ist oben, unten, links, rechts Dann die verdrängten Mädchen unten mit einem Satz Beat pro Minute Umfang im Player, Miss drückte die Tasten und riven mit der Musik und die Eingangsdarstellungen ändern um die Spieler-Aktion zu reflektieren, wie Habe ich vermisst? Habe ich es richtig verstanden? Habe ich es falsch verstanden? Der Spieler muss wissen, ob es richtig gespielt wird, und wenn es gespielt wird, muss er wahrscheinlich einige Belohnungen bekommen. Wenn Sie wahrscheinlich ersetzen. Also lasst uns einen guten Überblick darüber haben, was wir in diesem Kapitel anfassen werden. Wir werden eine schnelle Ansicht der bekannten Muster haben, die der Neid sieht, das ist der Model View-Controller oder der M V M für Model View View Modell und der M V P für Model View Presenter, die entworfen sind -Muster. Dann werden wir sehen, wie schwächen schnell die Ansicht in Einheit verspotten, mit dem U Y-Tool, so dass wir uns ein ziemlich gutes geben können. Ich denke ziemlich gute Darstellungen aus, wie die Ansicht aussehen wird, und dann, wie die Daten wie mit ihm. Dann werden wir auf das Streckenmodell zu berühren. Also werden wir die Datenstruktur ansprechen. Wir werden es so machen, dass die Daten unabhängig von dem Gameplay werden wir auf wiederverwendbare Daten berühren und auf Zivilisation berühren, die wir auch bei der Erzeugung von einfachen Daten berühren werden, Zufällig sagte, dass wir nicht unsere eigene Daten zu Beginn der Entwicklung. In waren auch auf Datenanzeige in der Bearbeitung zu berühren. Und dann werden wir die Spuransicht berühren, die die Spur in der Spielansicht darstellt, indem wir einige Disziplinmodelle verwenden, die wir referenzieren werden. Und dann werden wir die Ansicht mit diesen Prefab Subjekten bevölkern. Und dann werden wir die Ansicht animieren. Und später werden wir den Gameplay-Controller berühren, indem wir die Eingaben des Spielers nehmen, der alle Glücksspielmechaniken behandelt, die das Singleton-Muster berühren würden , das verliert, um auf einen Controller zuzugreifen oder eine Spielkomponente zu überflüssigen wo immer es sich in der Szene ohne sie manuell referenzieren zu müssen. Und dann werden wir auf den Strand Blick berühren ist, was wir tun wollen, ist die Ansichten zu aktualisieren wenn der Spieler spielt, sagte, dass der Spieler weiß, ob er gerade um gespielt wird. Beginnen wir also mit einem schnellen Überblick über den Modellansicht-Controller. Der Model View-Controller sagt uns, dass wir im Gegensatz zu einer kompetenten Architektur , eine gemeinsame trennen , . Es ist autark, also wird Selbstvertrauen mit einander arbeiten. Aber es gibt autark. Sehr oft hat ein kompetenter seine eigenen Daten. Es hat Treffer auf die Darstellung der Daten, und es behandelt die Eingaben des Spielers in einer Band von innen, so dass es ist Es ist alt, autark in einem Design. Besser, wir neigen dazu, Dinge zu trennen, so dass sie modularer sind, damit die Dinge schwächen. Die Idee von einem Model View-Controller ist, dass Sie einen Controller vory schnell und sehr einfach austauschen können, ohne eine andere Komponente aus dem Ökosystem wechseln zu müssen. In diesem Muster sehen wir, dass wir ein Modell haben, das die Daten selbst sind, und am anderen Ende gibt es den Benutzer, und dazwischen gibt es einen Controller und eine Ansicht. Die Aussicht wird nehmen. Das Modell nimmt die Daten aus dem Modell und präsentiert die Daten dem Benutzer in einer bestimmten Form. Und dann wird der Controller auf der anderen Seite auf der anderen Seitedie Eingabe vom Benutzer nehmen und die Daten ändern. Und so, wenn sich die Daten ändern, dann die Ansicht von Daten und so weiter und so weiter. Dies ist der Modellansicht-Controller. Dies ist ein Entwurfsmuster, das in der APS-Entwicklung weit verbreitet ist. Jetzt gibt es ein paar andere Muster, die diesem Modellansicht-Controller-Muster sehr ähnlich sind und so ist das Modellansichtsansichtsmodell, bei dem Sie hier sehen können, dass es eine andere Abstraktionsebene zwischen dem Modell und der Ansicht gibt , in der Sie eine -Ansichtsmodell, was in Ordnung ist. Wir wissen, dass Daten und wir wissen, die Ansicht. Aber was wir hier tun wollen, ist sicherzustellen, dass Sie eine Ansicht haben können, die irgendwie in der Lage ist sich an ein Modell anzupassen. So könnten Sie, wie eine sehr großzügige Ansicht, und so könnten Sie möglicherweise andere Arten von Daten anzeigen. Und das ist die Idee des Modellansichtsmodells, das auch in der Spieleentwicklung verwendet wird. Manchmal ist ein anderes Entwurfsmuster, das diesem wiederum sehr ähnlich ist, der mittlere Ansichtsmoderator, der Modellansicht-Moderator, im Gegensatz zum ursprünglichen Modellansichtscontroller. Sie können sehen, dass sich der Moderator zwischen dem Modellende befindet, also ist es nicht die Ansicht, die wirklich auf dem Modell datiert, aber die Ansicht aktualisiert basierend auf dem Moderator, der Gefangene ist der Manager ist der globale Manager, und es behandelt die Daten und gibt die Ansicht. Es gibt ihm die Daten angezeigt werden, und die Ansicht zeigt dann die Daten an, und es nimmt die Eingaben des Benutzers. Davon abgesehen, sind dies nur entworfene Muster. Sie sind nicht nur wie etwas, dem man sehr genau folgen muss. Es ist etwas, mit dem Sie spielen und ändern können, ist, dass Sie brauchen, obwohl es normalerweise gut ist, diese Entwurfsmuster wahrscheinlich zu kennen und sie zu verstehen, so dass, wenn Sie Ihre eigenen Design-Veteranen erstellen möchten dann landen Sie nicht irgendwie ein Muster neu zu erstellen, das bereits in die Fallen unbekannter Designmuster fällt. Also, mit dem ganzen Treibstoff, der weitergeleitet wird, ist es Zeit zu üben. Und das ist, was wir im nächsten Video tun werden 3. Mocking: Also, da wir anfangen werden, an diesem Modell View-Controller-Muster zu arbeiten, müssen wir ah, arbeiten in allen drei Komponenten gleichzeitig. Aber wir müssen mit einem von ihnen anfangen. Und es wird immer Leute geben, die, wie Teoh, bis zum Ende beginnen. Und normalerweisemag ich Teoh. normalerweise Beginnen Sie mit der Ansicht, die mehr darüber ist, wie die Aussicht aussehen wird, äh, am Ende und was sie und ist zur Arbeit gekommen und wie es läuft. Teoh, benimm dich. Ich mag es, zuerst die andere Ansicht zu vermasseln. Da. Ich rede nur von Ah, frisch neu , oder? Warum, Trudy, Projekt mit Einheit und ich habe gerade hinzugefügt, Ah, einfache Leinwand hier. Ah, irgendwie ein Studio. Also, was wir hier tun werden, ist Mokin in die Ansicht zu starten und dann werden wir anfangen, an dem Modell zu arbeiten, äh, gleich danach. Also, was ich hier tun werde, ist in das Erstellen-Panel zu kommen und ich werde in die Sie wollen gehen und gebeten, eine neue Leinwand zu erstellen. Ich erstelle zwei Leinwände, weil die Leinwand, die ich bereits habe, eine Leinwand zu D ist und es ist ein Bildschirm zahlt Overlay und der, den ich Teoh Handle jetzt will, wird eine Leinwand drei d Also und ich werde es tatsächlich umbenennen Canvas drei D so und jetzt was Ich möchte hier tun, ist und sagen, ich möchte es von Bildschirmraum Overlay zu Bildschirm Raum Kamera nehmen, so dass ich drei D-Projektion handhaben kann. Und da werde ich nur die Hauptkamera hier benutzen, und ich werde die schlichten Enden und alle anderen Einstellungen auf ihre Standardwerte halten. Ich werde eigentlich nur sagen, dass ich mit der Bildschirmgröße skalieren möchte und ich werde eine Referenzauflösung von 10 80 x 7 20 geben, um 20 p Auflösung zu sparen. Und ich werde auch sagen, dass die Höhe hier übereinstimmen wollen und dass ich eine Referenzpixel pro Einheit von 128 Pixeln wie folgt geben möchte. Jetzt, da ich das habe, werde ich ein paar Sprites importieren, und so werde ich nur wichtig gehen, die Brauch Sie ein Paket brauchen, das Sie zusammen mit diesem Training finden werden und dort wird das mir die gesetzten Eingaben geben und auch eine Triggerzone, die wir einrichten und zusammenstellen werden. Also gehen wir hin. Wir haben diese Sprays hier, das unten Leben bis auf eine Rose und auch eine Triggerzone, die nur ein einfaches Quadrat ist. Aber es hat hier Einstellungen, wie wir in diesem Raubtier sehen können, so dass wir einen Rand und eine Grenze haben, so dass wir von dort aus ein Holo-Quadrat erstellen können . Was ich tun will Hier ist dann anfangen, ein paar Show zu verspotten, die ich gehe. Teoh sagte, dass, äh, ich werde den Zoom auf diese neue Leinwand-Heilung zurücksetzen und was ich jetzt will, ich werde nur, äh, dass die gleiche Ansicht größer wird und von dort, was ich bin Going Teoh erstellen ist das, was unsere attraktive Ansicht sein wird, die ich ein Mock aus einer Track View machen werde. Und so werde ich hier reingehen und einfach gesagt, dass ich ein Panel erstellen möchte und ich werde den Hintergrund loswerden, irgendwie Bilder wie diese sehen, und ich werde einfach. Ich gebe es wie einen Standardhintergrund. Ich mache es voll und ganz zum Backen und gebe ihm einen grauen Hintergrund wie diesen, damit wir ihn sehen können. Und jetzt werde ich seinen Ah Lineman einstellen. Also zuerst werde ich Teoh umbenennen, um zu verfolgen, wie du das magst und ich werde dies ändern , so dass es ganz unten wie folgt ah gesäumt ist und ich werde es ein mit off 3 20 so geben . Das wird also die Repräsentation abseits der Strecke sein. Und jetzt, da ich das habe, werde ich Teoh beginnen, einige sub-you-Elemente hinzuzufügen, wie wir gesehen haben, dass wir jeden Beat als dienen Elemente dargestellt haben wollen . Was ich also tun kann, ist einfach dieses Element hier zu duplizieren, und dann werde ich es Beat-Ansicht so nennen, und ich werde es auf das Laufwerk überziehen, das du magst, und ich werde seine Position zurücksetzen und seine Skala so zurücksetzen Person begründet, ist die Fähigkeit Teoh geändert und ich werde seine Höhe zu ändern. Also werde ich es wie eine Höhe von 40 geben und das alles wird später anpassbar sein. Aber vorerst werde ich es hier drinnen sitzen. Und was ich hier habe, ist eine Unteransicht hier drin. Und was ich werde Teoh hier tun, ist, in der Spuransicht hinzuzufügen, ich werde eine weitere Komponente hinzufügen, die eine vertikale Layout-Gruppe ist. Und was also? Der Ausweichen ist, dass es automatisch alle Kinder dieses Objekts anlegt. Also, jetzt werde ich diese 100 hier nehmen, und ich werde ihm eine andere Farbe geben , ,die ich blau machen werde. Und jetzt können wir hier sehen, dass, wenn ich dieses Objekt nicht ein paar Mal besänftige, es automatisch diese Objekte dort anlegen wird. Jetzt können wir sehen, dass dieses Fach dieses Objekt automatisch entlang seiner Höhe verteilt . Also werde ich hier auch eine weitere Komponente hinzufügen, die eine konstante Größe, gemeinsame Größe, Angst und die Kondensate Zukunft ist. Oder verlieren Sie mich zu sagen, dass ich die Größe dieses Objekts basierend auf dem Inhalt dieses Objekts anpassen möchte. Also basierend auf den Kindern des Subjekts und dort, werde ich das vertikal sagen. Ich wollte die Mindestgröße sein. Und was Sie hier sehen können, ist, dass jetzt alle Objekte wieder zusammen genommen werden , da dieses Objekt jetzt die Höhe von allen Objekten zusammen ist. Und ich habe immer noch Zugang zu den Abständen hier. Wenn ich sie also mit 20 Pixeln ausräumen wollte , dann könnte ich es so machen. Also das ist Ah, das ist ein sehr, äh, Foley Andy, der auf diese Weise macht, und das verliert mich auch. Dann nehmen Sie einfach diese Strecke hier und dann werde ich einfach diesen Track spazieren lassen wie wir durch das Spiel gehen. Was wir also tun werden, ist, dass wir zu Beginn des Spiels die Ansicht mit allen Informationen initialisieren, die wir von der Strecke erhalten, und wir werden diese mit all den verschiedenen Informationen füllen. Ist ah, rauf, runter, links, rechts. Und dann werden wir einfach dazu bringen, dass es so nach unten geht. Nein, was? Ich gehe auch Teoh, um hier zu tun und sagte, dass ich will, dass dies die ah, die China-Krawatten kontrollieren und ich wollte die Breite kontrollieren, aber ich will nicht, dass es die Höhe kontrolliert. Ich wollte nur das mit kontrollieren. Und so, was wir auch hier und jetzt wie damals tun werden, sagen wir, dass wir die Ansichten von ein wenig ändern wollen , so dass wir Repräsentation von den linken, rechten, oben unten Eingaben haben rechten, . Und um das zu tun, werde ich einfach hinzufügen, äh, äh,oder tatsächlich, ich könnte das einfach duplizieren und dann lief ich es. Und dann werde ich das so einstellen, dass all seine Eltern so transformiert werden. Und jetzt werde ich das Quellbild ersetzen. Ich werde auch die Skala so zurücksetzen und dort werde ich das ändern, um den, ähm, linken Earl zu verwenden , um den, ähm, um den, ähm, . Und ich werde auch sagen, dass ich die Erwartung bewahren wollte und ich auch weiß sein wollte. Sonst ist es blau gegen blau, und es ist nicht sehr viel, dass sie fähig ist, und so habe ich das. Nun, das ist das wird meine unten Dinge werden meine linke Eingangsansicht sein. Und so werde ich das nach links umbenennen, und ich werde das umbenennen, um einen Raum wie diesen zu verlassen, und ich werde all das loswerden . Und jetzt, wo ich das habe, werde ich das ein paar Mal duplizieren, und alles, was ich jetzt tun muss, ist ah und sagen, nimm das hier und ich sage richtig, äh, und unten. Und so, wie Sie es erwarten würden, werde ich das zu großen Perot bringen und schrieb, und ich mag das wirklich. Und ich werde das Quellbild ersetzen, um die unten, gesprüht und oben Sprite so und richtig zu verwenden . Jetzt habe ich all diese Objekte, ähm, die ich später benutzen kann. Und ich werde einfach nur ändern, kann erkennen, dass bekam, um die Skala wieder für alle anderen Objekte zurückzusetzen. Also möchten Sie vielleicht, dass Teoh sicherstellen, dass Sie nicht mit diesen Werten wie diesen addieren. Und jetzt werde ich sagen, dass ich nicht verschiedene Farben für das Jahr haben werde. Die linke Rate nach oben und unten. Also im Grunde werde ich nur willkürliche Colleges nehmen, die den Farben des PlayStation vier-Controllers entsprechen . Also werde ich es einstellen, dass die Linke irgendwie rosa sein wird und die Daunen blau ist. Das Recht ist so rot, und der Aufstieg wird so grün sein. Aber Sie können tatsächlich nur eine beliebige Farbe wählen, die Sie wollen. In einem weiteren Video werden wir sehen, wie wir Multi-Plattform-Eingänge tatsächlich nutzen und verschiedene Sätze von Sprites für PlayStation, Xbox und PC und andere Versionen haben können Sätze von Sprites für PlayStation, . Das ist also, Ah, ziemlich alles, was ich wollte. Aber ich möchte auch in der Lage sein, den Bildschirm zu kippen, so dass wir eine Perspektive haben, ist, dass wir in der ursprünglichen Mock Up sehen könnten. Wir wollen nicht, dass dies ein sehr zwei-d sehr viel zu D-Spiel ist. Wir wollten eher ein Drei-D-Spiel sein. Und so, um dies zu tun werde ich tatsächlich zu Wir gehen wieder hier rein, und ich werde ein neues Panel wie dieses zur Spuransicht hinzufügen, und ich werde es Tilt View nennen. Und so wird die Deal-Ansicht ein zu Wurzel der Leinwand drei wie folgt bleiben, und ich werde einfach die Track-Ansicht auf die Neigung von Ihnen so offensichtlich. Und da mit Blick auf die Kasse. Was ich hier tun werde, ist und sagen, dass ich ein wenig von einem neuen Offset von unten will , wie 100 Pixel und vielleicht das gleiche an der Spitze, wie 50 Pixel auch. Und nein, was? Ich will sicherstellen, dass es gibt, dass ich den Drehpunkt an die Vory-Buchten setzen werde, und so werde ich einfach sagen, dass der andere Pivot zu, ah Null so, und ich werde wahrscheinlich auch das jetzt zurücksetzen müssen. 50 und 100 wie diese. Und was mir das erlaubt, ist, den Bildschirm hier so zu drehen und die Ansicht zu kippen. Also werde ich einen willkürlichen Wert von 60 verwenden. Und das macht es jetzt immer zu tun, ist nicht, die Position der Spuransicht zu ändern. Und wie Sie sehen können, dann wird die Reise in einem Drei-D-Raum bewegen auf dies ist das, was ich wollte. Und noch einmal, ich kann Sie wissen, dass es nur ein paar Mal dupliziert, und ich werde den Effekt bekommen, , dass ich wollte, dass Teoh wenig Interesse hat und das und das macht. Es heißt, am nächsten Tag haben Deal. Wir werden, ah, ah, bereiten die Pre-Fabs vor, die wir verwenden können, um stattdessen sie acht Buchstaben und wir werden auch anfangen, an dem Model-Skript zu arbeiten. 4. Überlegene UI-Elemente als Prefabs: Okay, jetzt, da wir unseren Moke aus dem Stamm haben, wollen wir auch, dass Teoh die Triggerzone hinzufügt, die dem Spieler sagen wird, wo zwei und wann eigentlich,um eigentlich, die Eingaben. Und um dies zu tun, werde ich einfach das linke Objekt hier nehmen, und ich werde es duplizieren und ich werde reparieren und es zu den gekühlten Sie so und gehen einfach zurücksetzen. Es ist, ah Position wie diese 200 und ich werde auch die Skala 111 zurücksetzen und so. Und jetzt werde ich das ändern, um so an der Wurzel zu sein und meistens werde ich die Position und die Leute wie diese ausrichten . Und damit werde ich dies umbenennen, um eine Triggerzone wie diese zu lösen, und ich werde das Kindobjekt hier und da ablesen. Ich werde diese zurück in weiß ändern, und ich werde das auch ändern, um die Triggerzone Sprite zu verwenden. Und dort können Sie sehen, dass in der Bildseite haben wir diese schöne sagte Teoh geschnitten, und ich bin einfach zu deaktivieren fühlen Zentrum und durch UN-Kontrollfeld Zentrum würde sterben , dass, wenn wir auf die Ausbreitung hier gesehen haben, Dieses Recht hat einige Grenzen und es wird einfach nur machen es vollständig transparent innerhalb der Grenzen. Damit wird ich diese Zone hier anvisieren lassen und wie wir später in der Lage sein wollen , Ansicht mit Objekten anzuziehen, wollen wir offensichtlich nicht dieses Objekt oder wirklich in der Spuransicht haben. Und so sind sie alle hier drin aufgestellt. Was ich auch hier tun werde, ist dann einfach alle diese Objekte dort auszuwählen. Ich werde das Reast-Ziel deaktivieren, weil dies nicht hartnäckig ist. Also brauche ich nicht zu ah, haben die andere Frühstücks-Ziel-Option da drauf. Was ich will, Teoh zu tun. Hier ist und einfach nur hier reingehen und einen neuen Ordner erstellen, den ich Pre-Fabs so nennen werde . Und ich komme hierher und ziehe die letzten und rechten und und und runter vor Fabs wie diese. Und so werde ich ihnen jetzt in der Ansicht geben, nur Sie halten einen idealen Kerl, wo ich hingehe und was ich tun will. Aber später werden wir sie einfach loswerden und die Ansicht mit den Daten, die von der Strecke kommen, wieder füllen . Und so werden wir im nächsten Video anfangen, an dem Streckenmodell zu arbeiten. Also auf alle Daten, die wir in ein in einem Musiktrack setzen wollen 5. Spur Daten (Modell): Okay, in diesem Video werden wir am Streckenmuster oder am Spurmodell von diesem Modellansicht-Controller besser arbeiten . Und so, um dies zu tun und einfach gehen, um einen neuen Ordner zu erstellen, der in Canticle Skripte wie diese. Und in diesem Ordner werde ich gehen und ein neues C scharfes Skript erstellen und ich werde es so verfolgen, und ich werde anfangen, den Track so zu bearbeiten. Und damit, was ich anfangen werde, werde ich das alles loswerden, und ich werde das alles im Namensraum gerne tun. Es macht, dass es Ihr Brief ist, ah,um ah, das Projekt zu kümmern. Und damit hier, werde ich nur die Spur halten, unmoralisches Verhalten vorerst zu sein. Und wir können uns vorstellen, dass es irgendwie ein Track-Player ist. Und ich werde mir nur überlegen, wie die Daten sind? Daher ist das Modell im Modellansicht-Controller sehr wichtig, da es die Daten sind, die wir verwendet haben, um die Ansicht anzuzeigen. Aber es sind auch die Daten, die wir in der kontrollierten oder zwei kontrollierten das Spiel verwenden. Und so ist es sehr, dass es die Wurzel eines Model-View-Controllers ist. Und was also? Ich gehe, Teoh zu fragen. Hier ist, was ist ein Track? Was alle Informationen sind, die wir in einer Spur haben wollen. Also sehr offensichtlich könnten wir anfangen, genug zu denken. Ah, nun, es hat einen Titel und es hat einen Autorennamen und es hat eine Beschreibung. Es hat ein Album, Namen und so weiter. Und so ist das alles hübsch von dir, und ich werde sie einfach nicht hier reinbringen. Aber wir werden dies wahrscheinlich in einem späteren Kapitel tun, oder beginnen Sammlungen von Tracks anzuzeigen und den Spieler in den Waffenstillstand zwischen mehreren Tracks zu lassen . Aber ich möchte wirklich, dass Teoh sich darauf konzentrieren soll, ist, was dieser Track in meinem Controller machen wird? Es wird meine Streckenansicht erzählen. Was sind die Informationen, die angezeigt werden sollen? Und es wird meinem und kam Controller sagen, wie man diese Informationen verwendet, und so wird es im Grunde eine Liste von Informationen sein, weil es einfach in den Informationen sein wird , die sagen, ist jeder Schlag, den wir eine Eingabe nehmen wollen, und wir wollen ein Eingabe und wir wollen eine Eingabe zu nehmen und stellen Sie sicher, dass der Spieler gespielt wird. Das Eingänge. Also werde ich es nur als eine Liste von ganzen Zahlen darstellen. Ich könnte einige intelligentere Daten darüber erstellen, was der Takt ist. Vielleicht hat es eine Eingabe in der Zeit und so weiter, aber das ist etwas, worin wir gerade eingehen. Ah später, schätze ich. Aber jetzt gehe ich nur Teoh, mach es sehr einfach. Es wird eine Liste von ganzen Zahlen sein und immer noch, wenn es Null ist, dann wird es übrig bleiben. Es bedeutet, dass wir die linke Eingabe erwarten. Wenn es einer ist, dann ist es wahrscheinlich, Ah, unten. Und wenn es auch ist, ist es oben. Und wenn es drei ist, ist es richtig. Und ich werde auch einen Standard verwenden, einen Wert von minus eins, um einen leeren Beat darzustellen. Eso einen Beat, den wir einfach nicht spielen wollen. Und deshalb werde ich nur sagen, dass ich dies eine öffentliche Liste von Ganzzahlen erstellen möchte , die ich Beats nenne und das war's. Und wenn ich wieder hier reinkomme, werde ich jetzt ein neues Spiel erstellen, das hier widerspricht, damit wir uns das ansehen können. Haben Sie die Daten dargestellt wird. Und ich werde diesen Track einen Spieler wie diesen nennen, und ich werde eine Komponentenspur hinzufügen. Und was wir hier sehen können, ist, dass das schon ah, Sarah realisierbar ist . Also kann ich einfach sagen, dass ich drei haben will, und dann ist die eine nicht gespielt werden. Und die zweite besteht darin, das Jahr den linken Eingang zu spielen und der nächste ist zum Beispiel, den Down-Eingangabzuspielen , den Down-Eingang . Und das ist das die Datenstruktur. Das ist es, was wir wollen, dass Teoh als Datenstruktur behandelt. Und es gibt auch eine sehr wichtige Information. Wie für den Game-Controller ist die Beats pro Minuten, weil es geht, um das Gameplay zu sagen . Was ist das Bit pro Minute? Wie hoch ist die Geschwindigkeit dieser Strecke? Und das ist eine weitere Information, die ich hier hinzufügen möchte, und ich werde es über eso stellen, dass wir, wenn wir wie eine sehr lange Strecke haben, wir nicht wollen, dass wir diese Informationen den ganzen Weg nach unten finden. Also werde ich sagen, öffentliches Bild oder B p m gleich und ich werde ihm einen anderen Wert von 120 so geben . Und wenn ich wieder hier reinkomme, bekomme ich hier die BPM-Informationen. Das ist es also. Und was wir hier sehen, ist, dass in dieser ah Track Komponente hier wir alle Daten haben und wir könnten anfangen, alle machenden X hinzuzufügen. Wenn Sie in einer komponentenbasierten Architektur wären, würden wir anfangen, eine lthough Mechanik hinzuzufügen, die die Spuransicht und dann würde auch das Spiel Spielmechanik hinzufügen. Aber weil wir die Daten von der Ansicht und dem Controller trennen wollen, ist eines der Probleme, die wir hier haben, dass wir wissen, dass wir ein Spielobjekt für jeden Track haben wollen . Ah, das wollen wir spielen können. Und so wollen wir nicht, dass dieses Skript hier auf ein Modellverhalten verweist, und das werden wir im nächsten Video tun. Wir werden diese Spur in ein Datenmodell ändern, anstatt ein motorisches Verhalten zu sein 6. Abtrennung der Daten von der Komponente: Okay, Also in diesem Video wir jetzt dieses ah-Datenmodell in ein echtes Datenmodell verwandeln und völlig ein verlassen von der Art des Verhaltens, die es behandelt. Also, was ich hier tun werde, ist dann sagen, dass ich eine neue Klasse von Objekten erstellen möchte. Ich werde eine neue öffentliche Klasse machen, und ich werde diesen Track aufrufen, und ich werde die Track-Daten aufrufen, so dass es nicht, äh s, so dass es im gleichen Namen ist der andere und so da drin und einfach zu nehmen Diese beiden Zeilen hier drin. Also werde ich die Eigenschaften von dort in den Handelsdaten nehmen und hier drin werde ich auf eine öffentliche Spur verweisen, die Daten versuchen, die ich so auf die Strecke gehen werde, und wann immer ich diese Notiz mache, ist, dass, wenn ich zurück in den Editor gehe Jetzt können Sie sehen, dass alles einfach verschwinden wird, und es wird verschwinden, weil diese Spurdaten standardmäßig nicht überlebensfähig sind. Es bedeutet also, dass es nicht im Dateiformat der Einheit gespeichert werden kann und daher müssen wir dies ändern . Ich werde das System Sarah Realisable anrufen. Und so ist dies ein Attribut, das besagt, dass diese Klasse NASA realisierbar ist und so alle Eigenschaften dort sterilisiert werden können. Und ich gehe jetzt zurück in den Redakteur, und was wir sehen, ist, dass wir jetzt die Spur haben. Und so ist die Strecke hier und so können wir ändern, äh, die Perimeter, die wir hatten, und ich könnte mehrere Tracks auch haben, Zum Beispiel könnte ich es eine Liste von Tracks machen. Und was ich jetzt Teoh Anzeige bekomme, ist, wie wir durchgehen, ich will auch ah, in der Lage sein, diesen Inspektor ein wenig zu dekorieren. Ich werde einen Header wie diesen verwenden , den Duncan zu cool zurückgelegt hat. Ich werde dieses Spiel gehen, dass Einstellungen wie diese und ich werde auch einen Gedanken hinzufügen nur um sicherzustellen, dass die Benutzer des Editors verstehen, was das ist. Und so füge ich einfach Anzahl von Beats pro Minute wie folgt hinzu. Und ich möchte auch ein Bereichsattribut hinzufügen, so dass wir nicht gehen können, zum Beispiel, bei Null Bittner Minute und so werde ich es Bereichsbereich verwenden. Es ist überarbeitet. Und so wird das Bereichsattribut einfach ein Minimum nehmen. Alle sagen einfach 30 und Maximum wird 360 sein, was schwierig genug sein sollte, denke ich. Und so, dass es? Nein, wenn ich wieder in den Editor komme, können wir sehen, dass sie die Wiedergabe-Einstellungen und die Tool-Tipps haben. Das ist Ah, das ist schon ziemlich nett, aber das ist schon ziemlich nett, aber es macht es irgendwie schwierig zu retten, weil, ah, das ist alles in einer Szene. es macht es irgendwie schwierig zu retten, weil, ah, Also könnte ich im Grunde da Die Information ist immer noch in Bezug auf das motorische Verhalten weil es das Geldverhalten ist, das referenziert und erzeugt und Cyril Augen eine neue Spurdaten . Und so ist dies nicht sehr praktisch, um im Editor zu manipulieren. Wenn ich in der Lage sein wollte, Tracks vernünftig und weder zur Laufzeit zu fegen, weil ich auf einmal definitiv in der Lage sein möchte, nur einen Player zu behalten und die Discs irgendwie gefegt zu haben. Also möchte ich nur in der Lage sein, die Spuren zu schwitzen und den Spieler einfach nicht zu tauschen, um die Spur, die er referenziert, zu fegen. Und so werden wir das im nächsten Video anfassen, als eine Baluch Annette Tom Lee die Streckenmedaille vom Motorverhalten isolieren musste . 7. die Daten zu einem benutzerdefinierten Asset Typ machen: In diesem Video werden wir uns ansehen, wie man die Streckenmedaille vom motorischen Verhalten völlig isoliert , so dass wir auf jede Spur verweisen können, die den gleichen Spieler des Verhaltens halten. Und was ich hier tun werde, ist dann zurück in das Truck-Skript zu kommen und im Grunde werde ich das hier einfach so loswerden. Und ich werde das wieder auf die Strecke nehmen. Und ich werde das einfach auch loswerden. Und jetzt werde ich sagen, dass die Spur nicht mehr von einem des Verhaltens erbt, sondern von deskriptiven wird Objekt erbt. Deskriptive wird Objekt, stellt Daten. Es ist also ein Cerulli Zobel Objekt dort andere Möglichkeiten zu mehreren Augenobjekten, die Sie XML-Zentralisierung verwenden können . Sie können auch Jason Zivilisation verwenden, wenn Sie Daten austauschen möchten. Ah, völlig außerhalb der Einheit, ist es sehr einfach, Daten mit anderen Formaten auszutauschen. Aber der einfachste Weg, der innerhalb der Einheit dies im Editor in zur Runtime zu tun, ist, das Skript,das Kräuterobjekt und so diskreditierbares Objekt zu verwenden Skript, und mich zu verlieren, um benutzerdefinierte Daten innerhalb des Unity-Editors zu erstellen und später darauf zu verweisen. Und ich werde Thio Thio hier tun, ist, wenn ich das tue, dann, wenn ich wieder ins Theater komme, dann wird das nicht mehr funktionieren. Also werde ich einfach den Track-Player loswerden. Wie wir hier sehen können. Die Spurkomponente auf sagt mir, dass das zugehörige Skript nicht geladen werden kann, da es sich nicht mehr um ein motorisches Verhalten handelt. Also nein, ich werde einfach dieses Objekt hier loswerden. Und es gibt eine sehr schnelle Abkürzung, die mich verlieren, um die Daten zu erstellen. Und ich tue dies, indem ich das Menü „Asset erstellen“ hinzufüge. Ah, Attribut hier und da. Ich werde ihm einen Munyon-Namen geben. Und so wird der Geldname sein, ich werde nur sagen, Einheit Coach Flash Beats Flash einen neuen Entwurf wie diesen flashen, und ich hoffe auch, ihm einen Standard-feinen Namen zu geben und das Standarddateiziel wird keine Beats Track Dot Asset sein und aus diesem Grund wird einfach eine Bereicherung sein. Es muss gerettet werden, vermögt nicht. Und so werde ich das einfach so machen und die Attribut-Anweisung schließen und jetzt, wenn ich wieder hier reinkomme. - Ja. Was Sie sehen können, ist, dass ich hier nicht kommen und ich kann nie im letzten Menü hier erstellen , Sie brauchen einen Trainer schlägt neue Spur. Also zuerst werde ich einen neuen Ordner erstellen und ich werde diese Spuren so nennen und in den Tracks werde ich gehen und eine neue Spur erstellen. Ich werde das 120 bpm so nennen und Sie können sehen, dass ich jetzt die Fähigkeit habe, so ziemlich das zu tun, was ich vorher gemacht habe. Aber das ist jetzt in einem Datenformat. Es ist jetzt in der Datei, die ich später verwenden kann. Und ich kann das auch speichern und das sehr leicht verteilen. Es ist sehr einfach, Indie-Editor zu handhaben und sehr einfach, die Laufzeit jetzt zu betrachten, da wir Ah haben , dies eine der wichtigsten Dinge, die wir tun müssen, wenn wir Datenmodell erstellen, ist schnelle Möglichkeiten, irgendwie gefälschte Daten oder Verkostungsdaten zu generieren, weil es Ich will einfach nicht hier reingehen und sagen, Nun, Nun, ich will fünf haben, und der erste mit drei wird minus eins sein und so weiter. Ich möchte in der Lage sein, diese These Testdaten zu generieren, bevor wir irgendeine Art von Editordaten erstellen , die beide oder die Daten innerhalb des Editors verlieren, die wir später ansprechen werden. Aber ich möchte in der Lage sein, einige Testdaten schnell zu generieren, und das werden wir im nächsten Video anfassen. 8. Zufallsdaten (für Testzwecken): In diesem Video werden wir uns darum kümmern, wie man schnell Verkostungsdaten aus dem Editor generieren kann. Also, um das zu tun, werde ich einfach wieder in das, äh, Track-Modell hier gehen äh, , und was ich hier tun werde, ist, dann werde ich anfangen, einige Informationen hinzuzufügen, um diese Daten zu generieren. Normalerweise würden Sie die Informationen, die die Daten generieren, nicht in das Modell selbst einfügen. Sie würden das in eine netted A-Klasse einfügen, da die Editor-Klasse verantwortlich ist, die Daten zu generieren. Daher sollten die Daten nicht die Sanitäterfehler enthalten, die Sie zum Generieren der Daten verwendet haben . Es sei denn, Sie möchten in der Lage sein, die Daten neu zu generieren und sie schnell dort zu zentralisieren , und so, um es sehr einfach zu machen, werde ich das einfach in das Track-Modell selbst einfügen und die meisten wieder, um die Daten zu setzen -Generierungsmethoden im Spurmodell selbst, so dass wir diese Methoden schließlich zur Laufzeit verwenden und einige zufällige Fade-Daten zur Laufzeit generieren können. Aber sonst würden Sie das sonst nicht von der Strecke halten. Das Datenmodell, um dies in Bearbeitungsklassen zu setzen, die verwendet, um das Modell selbst zu generieren. Was ich hier Teoh sagen werde, ist, dass ich zuerst eine statische öffentliche Ganzzahl referenzieren werde, die ich Input nennen werde und dass ich es schwierig machen werde, weil ich will, dass dies als generieren möglich ist. Und so für jetzt haben wir definiert, dass wir in der Lage sein wollten, Teoh Eingaben für links nach oben und rechts und unten zu verwenden , so dass es vier Eingaben macht. Aber wir könnten möglicherweise verschiedene Versionen wie eine Stream-Down-Versionen verwenden, eine einfachere Version mit nur zwei oder drei Eingängen oder eine kompliziertere wie ein vorteilhafter Ah-Benutzer , ein fortgeschrittener Spieler wie ein Profi, Sie Pro Player Art von Eingaben. Und dann müssten wir mehr als nur vier Eingänge verarbeiten. Also muss ich die Anzahl der Eingaben referenzieren, die ich verwenden möchte, um die Daten zu generieren, so dass sie von 0 bis 3 geht. Oder es könnte möglicherweise von 0 bis 7 gehen, wenn ich acht verschiedene Eingänge haben wollte . Und da werde ich einfach basierend kopieren, äh, das, weil es einfach zu lange dauern wird, um zu tippen. Aber lass mich einfach erklären, was ich hier habe. Das wird also die Pre-Roll sein. Die Pre-Roll ist, wie maney leere Beats wollen wir am Anfang der Strecke haben. Denn wenn wir nicht wollen, dass der Track mit dem Gameplay in Stanley beginnt, wollen wir dem Spieler die Zeit nehmen, um die Noten gemeinsam zu sehen. Dies wird also die Zahl aus leeren Beats sein, die nicht am Anfang des Tracks gespielt werden sollen . Und dann werden wir Notizen hinzufügen. Wir werden Beats für Blöcke hinzufügen. Und so wollen wir maney minimale Beats in einem Block haben. Und das ist, wie maney maximale Anzahl von Strand wir pro Block haben wollen. Und da ist dies die minimale Anzahl von leeren Strand, die wir zwischen Blöcken haben wollen, und das ist die maximale und Anzahl von leeren Beats zwischen den Blöcken und am Ende haben die Löhne die Anzahl der Blöcke, die wir generieren wollen. Also die Idee hier ist, dass wir nur eine große Schleife machen und wir werden anfangen Beats basierend auf rend um Wert-Zufallszahlen hinzuzufügen, um dies zu tun. Um dies noch einmal zu tun, könnte ich die randomize-Methode setzen. Ich könnte es in eine Editor-Klasse einfügen, so dass es nur innerhalb der Einheit unterstützt oder nicht mehr rechtzeitig verfügbar ist und immer noch die Umfänge in der Klasse selbst behalten kann. Aber ich werde das vorerst in die Spur bringen. Und so ist es ah, immer ein praktisches Teoh, dies zur Laufzeit zu verwenden, wenn wir einige zufällige Daten generieren wollten. Also werde ich dort eine neue öffentliche Kluft erklären, und ich werde es als „Ableben“ nennen, so und zufällig. Das erste, was ich tun möchte, ist dann gesagt, dass Beats gleich einer neuen Liste von Ganzzahlen ist. Das erste, was ich tun muss, ist, dies zurückzusetzen. Ansonsten werde ich nur weiter hinzufügen zu ah, die Liste und sie sind, was ich hier tun werde, ist dann von der Pre-Roll beginnen. Also für die Peripheriegeräte, werde ich eine vollständige Schleife machen, und ich werde sagen, für begraben Ihr B gleich Null und B ist weniger als Pre-Roll und dann jeden Luke belastet werden. Was dann? Was mache ich, dass ich Beats hinzufügen mache, weil es ah ist, es ist eine Liste. Es ist sehr einfach. Und dann werde ich sagen, Beats fügen minus eins hinzu. Das wird also die Minus-Eins-Daten hinzufügen, die ich für die GMT-Beats sagen möchte, und dann werden wir später sehen, wie wir damit umgehen können. Nun, was ich will Teoh auch tun, ist nicht sagen vier und sie sind alle sicher für Ganzzahl. Und ich werde dieses B l Caylee Block gleich Null nennen, dann Block ist kleiner als die Anzahl der Blöcke und wieder Block wird jedes Mal belastet . Und jetzt werde ich sagen, dass ich eine neue Blocklänge definieren möchte wie? Maney, wie viele Ah Beats werden wir in diesem Block haben? Und so werde ich definieren, dass ich diese Blocklänge nennen werde und die Look-Länge wird zerreißen um Reichweite sein. Also werde ich den Zufallsbereich verwenden und Sie können sehen, dass sie eines der Dinge sind, die ich oft gesehen habe, tatsächlich, äh, wo Leute irgendwie diesen Kampf ist zu verstehen, dass es zwei Implementierungen der die Bereichsmethode. Es gibt wunderbar die Floats und eine für die ganzen Zahlen und die für die ganzen Zahlen sagt uns , dass das Maximum exklusiv ist. Also, wenn Sie zufällige 01 sagen, erhalten Sie Onley Null. Du wirst nie eins bekommen. Wenn Sie also einen Wert wünschen, der zufällig Null auf eins ist, müssen Sie den zufälligen Bereich 02 sagen, so dass er von 0 zu 1 geht. Und so werde ich, äh, einfach minimalen Block und maximalen Block wie diesen verwenden äh, und und Granger sagte, plus einen, damit wir, ah, ah, den anderen den Maximalwert verwendet haben. Jetzt werde ich sagen, dass für Integer gleich Null sein und dann weniger als Google Ansprüche sein und dann das Plus Plus, werde ich beginnen, einige Beats hinzuzufügen. Und so werde ich sagen, dass Sie beendet sind gleich Brendan Range irgendwie das Gleiche. Zufallsschlüssel. Und dieses Mal werde ich Null verwenden, und ich werde die Eingabe verwenden, ähm, ähm, Eingaben hier Wert, die Ah hier erstellt haben. Das ist also eine statische Variable, so dass sie unter allen Tracks geteilt wird, und und wir können sie später ändern, wenn wir wollen. Und so habe ich diese neue, äh, äh, Zufallszahl generiert. Und deshalb, weil das Null-basiert ist, möchte ich nicht plus eins tun, denn sonst würde das mit, ähm, Wert enden ähm, . Es würde aus dem Euro kommen, und es wird sagen, äh, äh, Beats hinzufügen, verursachen Interesse hinter dem Takt, den ich gerade so erstellt habe. Und jetzt, wo ich das habe, äh, was ich auch tun kann, ist, dass ich das Gleiche mit dem Intervall machen werde, und mit dem Intervall werde ich einfach dieses Loch Ebenen wie dieses Ende einer Länge gehen, und dort wird dies minimale Intervall und des maximalen Tieres wie dieses verwenden. Und das wird Interval Blaine's nicht für das Maximum nutzen. Und da ist es nur, wir werden, äh, dieses Mal sagen, dass wir minus eins hinzufügen wollen, wie wir es für die Pre-Roll getan haben. Und was? Dies ist, was das hier tun wird, ist dann sagen, dass wir hier für jeden Block, den wir erstellen wollen, in diese Schleife kommen . Also werden wir beginnen, einen Block zu erstellen, und dann ein Intervall ein Block, ein Intervall , ein Block, wenn Intervall. Aber wir wollen keine Pause am Ende haben. Wir wollen nicht mit einem Intervall enden. Und was wir hier tun können, ist dann sagen, dass, wenn Block, also sagen wir, wenn Block Ah, die Anzahl der Blöcke minus eins einlegt. Dann machen wir einfach eine Pause, damit wir aus der Zellschleife ausbrechen. Wenn wir den letzten Block erreicht haben und so dass es Wir haben diese zufällige ah generierende Funktion , die wir können, dass wir später verwenden können. Und so für den Moment, der einzige Weg, dass wir es verwenden können, wenn ich zurück ins Theater, nur um sicherzustellen, dass alles glatt dort ist, bekomme ich, um alle Perimeter zu sehen, die haben. Aber das war's. Die einzige Möglichkeit, diese Daten zu generieren, ist die Verwendung eines anderen Skripts, dieser Laufzeit. Und deshalb arbeiten Sie daran, an einem benutzerdefinierten Editor zu arbeiten, um hier eine benutzerdefinierte Schaltfläche hinzuzufügen , die verliert, auf diesen Boden zu klicken und diese zufälligen Daten zu generieren. Und das werden wir im nächsten Video machen 9. Bearbeiten der Daten mit einem benutzerdefinierten Inspektor: Also in diesem Video, werden wir eine benutzerdefinierte erstellen entweder für die Track-Klasse, die Teoh verliert, Fügen Sie einige Schaltflächen hier hinzu, die ist, um die randomisierte Methode auslösen, die wir bereits implementiert haben . Also lasst uns hier in das Drehbuch gehen. Und ich werde einen neuen Satz Ordner erstellen, die ich Canticle 80 dort bin. Und es ist sehr wichtig, den Editor so zu benennen, damit die , Skripte, die sich in diesem Ordner befinden, nicht zur Laufzeit ausgewertet werden. Und wenn Sie erstellen, wird jedes Skript, das sich in einem Editorordner befindet, nicht mitgenommen. Das Gebäude generiert keine Fehler, wenn Sie einige Bearbeitungsklassen verwenden und referenzieren. Und in diesem Editor-Ordner werde ich gehen und einen neuen Anzug erstellen, kurzes Skript, das ich werde Track Editor einfach so gehen. Und nun mal sehen, was wir tun können, wenn ich , wieder hier reinkomme,wenn Sie sehen können, ist, dass die ah, in einem der entwickelten Sie sehen können, dass diese, äh, Objekttragödie es oder jetzt ein Teil der Versammlung ist. Siehst du, scharfer Redakteur äh , hier und nicht Teil des Ach , der anderen, also siehst du, dass es hier nicht existiert. Also ist es da drin. Und so wird es nur für den Einsatz im Editor erstellt werden. Also was? Ich will Ach, zu tun. Hier ist und, äh, fügen Sie einfach den gleichen Namen Raum wie diesen und so. Und jetzt gehe ich. Teoh sagte, dass dies in 80 der Klasse sein wird, also wird es vom Editor erben und Sie können sehen, dass Editor aus einem einfachen Grund nicht existiert , dass ich den und den Unity-Editor habe. Und jetzt kann ich einfach Editor so sagen und mit einer nativen Klasse müssen wir auch das benutzerdefinierte Attribut hinzufügen, um zu sagen, welche Art von Objekt es bekommen kann und es gab nur sagen, dass es bestimmt ist, um, ähm, es die Strecke wie diese. Und jetzt werden wir beziehen anziehen aus dem Inneren der Äußersten. Das ist das erste, was wir tun wollen, ist, dass wir auf das Objekt verweisen möchten, das der Editor gerade bearbeitet. Also dort werde ich eine neue Spur referenzieren, die ich dort abkühlen werde. Wir haben einige Nachrichtenmethoden, die wir verwenden können, ist auf aktivieren und so weiter. Aktivieren wird ausgelöst, wenn wir ein Objekt im Editor auswählen, das die Daten anzeigt . Und dann werde ich sagen, Track equals und dann auch Target und Target ist ein geerbtes Mitglied vom Ende der Klasse, weil es nur ein Knopf Jek ist, dass ich es auf eine Spur wie diese zurückwerfen muss . Wir können auch, was wir tun können, ist bei einer Überschreibung der Methode, die auf Inspector Gree so kalt ist und auf dem Inspektor gooey. Wenn ich einfach die von einer solchen Fahrt mache und dann komme ich hier zurück und wähle jetzt die Strecke . Wir können sehen, dass wir alle Daten verloren haben, einfach weil wir die Daten einfach nicht anzeigen. Und wenn ich die Daten anzeigen möchte, kann ich einfach die Buchten auf der Inspector Boje anrufen. Und dadurch rufe ich das geerbte Mitglied auf, ich rufe die geerbte Version auf Inspector Goofy auf. Und jetzt werde ich Thea die Daten wieder anzeigen lassen. Und jetzt, was ich tun möchte, ist, mehr Funktionen hinzuzufügen und so das zu tun, was ich tun möchte, ist dann zu überprüfen, ob wir bereits einige, ah Bits Informationen in der Spur haben , also könnte ich einfach tun, wenn trek dot Beats dot zählt gleich Null, dann möchte ich etwas tun, in ansonsten wahrscheinlich eine andere Nachricht anzeigen und verschiedene, verschiedene Dinge anbieten verschiedene, . Was ich tun werde, ist gehen und hinzufügen, ah, ah, Editor gehen Editor gooey Layout verwenden, um eine Hilfebox anzuzeigen. Und im Ruder, Boggs. Ich werde sagen, dass die Spur ng ist immer nur leere Spur auf diesem In on Pass ein Nachrichtenband, Ich werde sagen, Nachrichtentyp Informationen wie diese. Und so können wir das nur wirklich überprüfen. Zum Beispiel, wenn ich hier wieder reinkomme und ich würde sagen, dass ich Null will. Dann habe ich diese Information hier. Es sagt mir, dass die Strecke leer ist und das ist Ah, das ist eine Sache. Und was jetzt? Ich will auch Teoh hier draußen ist nicht auf gooey Layout Grillen Taste sagen. Und dann für die Leute, die bereits in der Vergangenheit den alten Gu Easy Stam benutzt haben. Es funktioniert wie die Gläser funktionieren sehr ähnlich wie der alte fettige Stiel. Also rufe ich diese Methode auf, die eine Schaltfläche anzeigen und auch den Status der Schaltfläche zurückgibt , wenn sie angeklickt wird. Und so wird es wahr zurückgeben, wenn wir auf diese Schaltfläche klicken. So werden sie auch nur gesagt, Generate Random Trek und wir werden einen passen Editor-Stil übergeben. Es ist ein Stil und verwenden Sie die vielen, aber in vielen Schaltflächen-Stil für diese in. Dies wird also die Schaltfläche anzeigen. Wenn ich jetzt wieder ins Theater komme, sollten wir diesen Körper sehen und zufällige Tracks erzeugen. Aber es tut nichts. Es wird nur etwas tun, wenn ich all dies in eine if-Anweisung wie diese setze und dann sage, was ich tun möchte und was ich tun möchte, ist Track randomize so sagen. Und das ist der Grund, warum ich diese Methode gesetzt habe, bevor ich erstellt habe Die Methode ist eine öffentliche Methode, so dass sie leicht vom Track Editor beurteilbar sein könnte, denn wenn es wäre, wenn es privat wäre, als die Tragödie ihrer Klasse nicht darauf zugreifen konnte. Und jetzt, da ich das hier habe. Ich kann auch einfach kopieren fügen Sie dies und da werde ich einfach nur ändern, und da werde ich eine Datum zufällige Spur wie das setzen, so dass wir bekommen wir eine andere Nachricht bekommen und da gehen wir. Also jetzt habe ich Zufallsspur generieren. Ich klicke darauf, und wie wir sehen können, funktioniert die Methode ziemlich gut. Und wir haben all die Beats und die zufälligen Einstellungen, ganz unten. Also, vielleicht wollen wir das wirklich anders nehmen . Aber eigentlich, was ich wirklich will, ist nicht all die Beats so zu zeigen. Und bevor ich etwas anderes mache, was ich auch hier tun werde, ist dann etwas sehr Wichtiges hinzuzufügen. Welches ist es? Entweder Dienstprogramm und ich werde. Normalerweise wird die Methode gesetzt dirty genannt und hat das Track-Objekt. Und das ist sehr wichtig, denn wann immer Sie es speichern, projizieren Sie in Immunität. Wenn Sie ein Projekt speichern und fortfahren, speichern Sie die Szene, aber das Projekt gespeichert. Es speichert alle Daten, von denen er weiß, dass er gespeichert werden muss. Und wenn Sie etwas in ein Objekt ändern, wie zum Beispiel Daten, die Sie ändern. Sie haben Daten in einem Objekt geändert, und Sie müssen dem Editor mitteilen, dass dieses Objekt jetzt schmutzig ist . Es muss also immer dann gespeichert werden, wenn Sie das Projekt speichern oder einen von Ihnen speichern, wenn Sie den Editor beenden . Und jetzt will ich auch, dass Teoh hier macht, dann wieder in die ah, im Track-Objekt hier. Und ich werde einfach ein und das Attribut hier hinzufügen, um in Inspector ausblenden zu sagen, weil ich die Bits Information im Inspektor nicht anzeigen möchte oder zumindest nicht möchte, dass es einfach so angezeigt wird. Also jetzt, was ich wirklich will Teoh Sie hier haben, ist nur die Wiedergabe-Einstellungen, die zufälligen Einstellungen, die zufälligen Generationen Überschriften und dann die Unterseite. Und so, was ich tun werde, hier ist und wieder da reingehen und ich werde auch die eigene Methode des Inspektors nehmen . Ich werde es den ganzen Weg nach oben nehmen, damit es zuerst auftaucht. Und was wir hier jetzt sehen können, ist, dass wir diesen Körper hier drin haben, in dem, was ich hier tun kann , wird angefangen, die Daten auf eine andere Weise anzuzeigen. Und so, um dies zu tun, werde ich ah, kommen zurück hier und ich werde sagen, dass ich eine 80 dort haben will, um Editor Gree-Layout zu verwenden , und ich werde das große in Scroll-Ansicht verwenden. Und ich werde seine coole Ansicht so beginnen, weil ich nicht möchte, dass ALS die Bits in der Vory in einem sehr langen Weg angezeigt werden . Also möchte ich gehen, umdies um in einer Bildlaufansicht anzuzeigen. Aber wie wir sehen können, erwartet dieser grausame von euch, dass eine Vektorzahl seine Position kennt. Also muss ich hier referenzieren. Ich werde auch auf ein Opfer verweisen , dass ich eine Position wie diese nennen werde, aber da werde ich die Position so weitergeben . Und jetzt werde ich es auch benutzen Did zustimmen Lee aus wieder. Und dieses Mal werde ich die Ende-Scroll-Ansicht so machen und dazwischen was auch immer. Was auch immer ich dazwischen setze, wird innerhalb dieser Scroll-Ansichten automatisch datieren. Ich werde eine Schleife machen und ich werde die Schleife für Ganzzahl machen. Ich ist gleich Null. Ich bin Liz. Dann wird die Zahl aus Schlägen in den Spuren des Strandes, die so zählen, und ich werde jedes Mal belastet, wenn ich zeigen möchte. Also werde ich Redakteur Gooey spät verwenden. Ja, aber schon wieder. Und ich werde das indigene Feuerzeug benutzen. Also haben wir wirklich verschiedene Möglichkeiten, eine indigene, die ein Feld ist, anzuzeigen, oder Pop es und so weiter. Aber ich werde später nur die Indigenen benutzen. Und so verlangt die Verleumdung des Imagers nach Wert und einem Minimal- und Maximalwert. Also dort werde ich sagen, dass ich Track Dot Beats passieren und dann ah nehmen will, die aktuelle sei es Information. Und dann werde ich sagen, dass der Mindestwert minus eins im Maximalwert ist, wird Track Dot in Bitch sein . Und tatsächlich werden dies die Eingänge der Glasspur minus eins sein, weil es es ah verfolgt, was eine, ähm, eine statische Eigenschaft ist ähm, . Also ist es auf Klassenebene sinnvoll, nicht auf Instanzebene, und so dass ich das einfach so machen werde, und wenn ich wieder in den Inspektor komme, dann bekomme ich in einer Scrollansicht alle Informationen zu sehen. Was wir eigentlich nicht können ist, obwohl, ist , dass die Scroll-Ansicht ist nicht Scroll-Kräuter. Und es ist nicht skalierbar, weil wir sagen, dass es eine Schriftrolle von Ihnen zeigt, die ihm eine Position gibt. Aber wir haben das nie wieder zugewiesen, und so wird der Großteil des Editors von Widgets funktionieren. Ist das der Reiz Sie Treuhandansicht anzeigen, eine Position gegeben, und dann gibt es auch die neue Position zurück. So können wir es einfach so aktualisieren. Und wenn wir dabei sind, können wir auch nicht sagen, dass wir das können. Jetzt es es die zufällig generierten Daten. Indem ich dies tue, werde ich einfach sagen, dass wir den Wert anzeigen. Aber wenn sich dieses Land der Veränderungen ändert, dann aktualisieren wir auch die Abwertung. Und wenn ich das mache, dann kann nur ich jetzt hier hineinscrollen. Aber ich kann den Wert auch aktualisieren und ändern, wenn ich es so möchte. Und so, um dies zu beenden, was ich auch hier tun werde, ist dann fügen Sie eine andere Dekoration zu ah, potenziell filtern Sie die Informationen. Also werde ich auch einen neuen Bullenwert hinzufügen , den ich so Display-Stranddaten nennen werde. Und da drinnen wollen wir das alles nur tun, wenn wir Informationen haben, denn sonst, wenn wir keine Informationen haben, macht es keinen Sinn, sie anzuzeigen. Und so werde ich so etwas tun, wenn wir den Datenvan anzeigen wollen, zu dem ich gehe und zu diesem zu kommen. Und jetzt werde ich zu und ein anderes Widget, das Editor Ah, 80. Es Greeley aus, und es ist kalt, voller Zweifel und ah, wir geben es den Wert und wir übergeben es einfach den Namen. Also werde ich nur sagen, spielen Sie einfach Beats wie diese in, natürlich aktualisiert den Wert, so dass es den Wert anzeigt und es aktualisiert den Wert. Wenn wir darauf klicken und dann sagen wir, wenn das stimmt, dann zeigen wir den Rest außerhalb der EU an. Also werde ich dieses Comeback im Editor sagen. Und jetzt, was wir hier sehen können, ist, dass wir einen schönen vollen Zweifel haben, der verliert, um Deadbeats wie diese anzuzeigen oder nicht , und ich kann die Tracks aktualisieren. Und so könnte ich zum Beispiel jetzt einen neuen Track erstellen, um dies zu testen und was wir jetzt sehen können. Hier, das ist interessant. Ah, was wir hier sehen, ist, dass, uh, ja, natürlich, wenn wir für die ersten paar Bilder erstellen, die wir gerade erschaffen haben, das hier. Ah, dieses Objekt, dann wurde diese Liste noch nicht initialisiert. Der Inspektor versucht also, auf die andere Eigenschaft der Nummer der Kontoeigenschaft dieser Liste zuzugreifen , und das geringste wurde noch nicht initialisiert. Also, was wir tun können, hier ist und sagen Track. Sie haben verfolgt, dass Dutzend gleich schlägt. Nein. Und die Zählung ist ah, Null und sonst wird eigentlich nur etwas anderes tun. Wir tun es einfach, wenn das nein ist, dann kehren wir so zurück. Das ist noch einfacher und sicherer. Wir würden nur anzeigen würde das Beige auf Inspector gooey anzeigen. Ah, und wenn es nicht initialisiert ist, dann beenden wir einfach die Methode. Und so lassen Sie uns das noch einmal versuchen. Ich werde das loswerden und es nochmal tun, um sicherzugehen, dass ich das einfach klären werde. Gehen Sie und erstellen Sie eine neue Spur. Und da gehen wir wenig Arbeit. Also und ich werde das 90 bpm so nennen und diesen Wert hier ändern. Ich fühle mich so drinnen. Wir können sehen, dass die Strecke leer ist und dann können wir einfach gehen und sagte Zufallspur generieren. Okay, das war's also für das Model. Für den Moment. In den nächsten Videos werden wir mit der Arbeit an der Spuransicht beginnen. 10. Aufstellung der Komponente der the: in diesem Video werden wir mit der Arbeit an der Spuransicht beginnen. Also auf dem View-Port des Model-View-Controllers, äh, Muster hier. Und so, was ich tun werde, hier ist und zurück in den Skript-Ordner und in einem neuen C-Kurz-Skript , das ich werde verfolgen Sie so, und ich werde es sortieren. Es es jetzt, dasselbe Ding. Ich werde es auch in den Namen Raum setzen schlägt dies. Okay, so wie das. Und jetzt hier drin, um all das vorerst loswerden. Und hier drinnen. Was ich weiß, ist, dass diese Komponente ein paar andere Kompetenzen erfordert, um richtig zu funktionieren. Also werde ich anfangen, die Attribute der erforderlichen Komponenten hinzuzufügen und einen Typ aus zu verwenden. Und ich weiß, dass es eine Vertikale erfordert, und ich finde die Vertikale nicht. Äh, einfach, weil ich die Unity-Engine nicht benutze. Du warum? Ich füge hinzu, dass ich dich dem Motor benutze. Sie ich zuerst und dann kann ich Nein, Sie verwenden vertikale Layout-Gruppe. Und so ist dies das erste, was ich will Teoh nur angeben. Und ich wollte auch, äh, hier benutzen. Ich weiß, dass es erfordert auch einen Inhalt gemeinsame Größe Fieber, Zehenarbeit wahrscheinlich. Also werde ich das hinzufügen, so dass, wenn ich diese Komponente zu einem Objekt hinzufüge und diese Komponenten automatisch hinzufügt, wenn sie fehlen, und ich weiß, dass es auch üblich ist und das auf ein, um auf ein u Y-Objekt gesetzt werden muss . Also werde ich auch eins mit direkter Transformation wie folgt hinzufügen. Also nochmal dasselbe. nur sicher, dass ich alle Komponenten habe und beurteile, um auf alle Kommentare zugreifen zu können , die ich brauche. Jetzt, was ich will, Teoh. Das erste, was ich hier tun möchte, ist natürlich die Spur zu referenzieren . Und im Moment werde ich nur einen direkten Bezug auf die Strecke machen und das werden wir später sehen. Wir wollen einen neuen indirekten Verweis auf die Strecke haben, aber da möchte ich einen Verweis auf die Spuren haben und wir werden einen Verweis auf ein Track-Objekt machen , das ich verfolgen werde und es wird privat sein, aber es wird so realisierbar sein. Also werden wir die serialisierten gefüllten Attribute verwenden und es ist privat, weil wir keine anderen gemeinsamen haben wollen und anfangen zu verwirren. Dieses Member ist normalerweise eine gute Idee, nur private Variablen zu verwenden. Und wenn Sie existieren möchten, hatte ich einige Eigenschaften, wie Set-Methoden zu bekommen. Aber ich weiß auch, dass ich die Pre-Fabs referenzieren möchte, die ich werde. Stattdessenaß sie, aß sie, wie die linke oben, unten rechts Objekte, die ich brauchen, um stattdessen sie acht basierend auf den Daten, die ich in der Spur gefunden Also wieder werde ich Thio Thio direkte Transformation. Ich weiß, dass diese Objekte eine rote Transformation haben müssen. Mir geht's einfach gut. Anstatt nur auf ein Spielobjekt zu verweisen, werde ich auf eine Wrack Transformation verweisen, also verlieren sie mich, um sicherzustellen, dass das Objekt, das ich eingelegt habe, einen Datensatz von der Komponente hat. Und dann werde ich das links so nennen und wieder, ich benutze die, äh, mehrere Augen gefüllte Attribute und da werde ich einfach dasselbe mit rechts oben und unten so machen . Und ich muss auch auf eine andere verweisen, die die Referenz auf den leeren Raum er oder Teiler sein wird, oder Sie nennen es Ich werde auch einen Verweis auf eine andere Wrack Transformation machen, die wird die Restaurants von der aktuelles Objekt, das ich nennen werde, sind transformiert. Jetzt werde ich anfangen hinzuzufügen, ich könnte die wake-Methode verwenden, aber ich bin mir nicht sicher, ob das Laufwerk, das Sie bei wach initialisiert werden soll, und ich möchte nicht steuern können, wann immer es initialisiert wird. Also werde ich eine neue öffentliche Methode zur Verfügung stellen, die ich bin es nennen werde und es wird pflanzlich mit einer Spur initialisieren. Also, das war ein anderes Objekt, eine andere Komponente, um diese Spuransicht zu initialisieren, da es eine Spur gegeben. Und so werde ich diesen Track so nennen und so und aber dort werde ich auch die Story-Nachricht hinzufügen , und da werde ich anfangen, das darin zu tun und dann werde ich die Spur passieren, die ich lokal in diesem verweise Komponente und da drin, das erste, was ich tun muss, ist zu sagen, dass oder Transformation gleich der Transformation aus dem Subjekt , aber als direkter Graben so, so dass ich nie wieder hineingehen kann. Der Editor hier, und ich werde die Spur von Ihnen auswählen, und ich werde die Komponente versuchen Ansicht wie folgt hinzufügen. Und dort hat er einen Verweis auf eine Spur. So können wir sehen, dass selbst wenn ich hier darauf klicke, diese Einheit mir automatisch zeigt, äh, die serialisierte Objekte, die dem anderen Typ entsprechen. Uh, hier. Also werde ich das hier und da wählen. Wir können sehen, dass wir links oben, unten und leer sind. Und was ich hier tun werde, ist, dass sie in die Pre-Fabs gehen und ich werde eine hier nehmen , die ich duplizieren werde. Ich werde es leer nennen und dem Subjekt zeigen, was ich tun werde. Hier ist und deaktivieren Sie einfach die Bildkomponenten, so dass es nicht angezeigt wird. Aber wir halten das Wrack Transformation mit der Größe, die das andere Objekt trennen wird. Und ich werde auch durch das Bedienbare hier gelesen werden. Also, um das zu tun, wahrscheinlich werde ich das einfach in den Stamm ziehen und fallen lassen. Du hier und wirst dann den Perot loswerden. Ich werde sagen, dass es das kurze Geschehen brechen wird, werde ich ja sagen. Und dann klicke ich auf „Bewerben“, um das Thema hier und jetzt in der Track-Ansicht in den Referenzen hier zu datieren. Was ich hier tun werde, ist in Dragon fiel die unten in die unten, lachte links und rechts nach rechts und oben in die oben und die M g in die leere Referenz wie diese. Und jetzt werde ich die Präfekten loswerden, die ich in der Baumsicht hatte. Also haben wir jetzt alles, was wir brauchen, um den TRAV zu bevölkern. Du mit den Informationen, die wir von der Strecke bekommen haben, und das werden wir in der nächsten Sache tun. 11. Die Daten und die Ansicht ausfüllen: Jetzt, da wir alle Verweise auf die Objekte haben, die wir nicht befleckt haben, aß sie im Editor eingerichtet. Ich gehe zurück in die Track-View-Klasse hier in der In seiner Methode, werde ich anfangen, die Ah, die Instanzerstellungsmethoden hinzuzufügen . Also, das erste, was wir tun wollen, ist, einen Verweis auf ein Spielobjekt zu machen. Also werde ich eine Spielobjekt-Referenz machen, die ich so trostlos nennen werde, und dann werde ich für jeden ein neues anfangen. Es wird normalerweise dort gesagt, dass es besser ist, eine for-Schleife als eine für jede Schleife Performance-Wege zu verwenden . Aber da das nur einmal unten sein wird, wird das für jeden einfach gut sein. Und so werde ich dio-Integer die in Spur, die schlägt. Also für alle Informationen, alle Bits Informationen, die wir in der Spur haben, die ich tun möchte, ich möchte Instanz sie aß ein neues Objekt und dort werde ich ein neues Spielobjekt referenzieren und ich werde tun Schalter sein. Und so werde ich sagen, dass der Fall Null. Also, wenn die Information Null ist. Es bedeutet, dass wir links und wieder tun wollen, völlig willkürlich. Haben beschlossen, dass es nach unten nach oben Rate gelassen werden würde. Aber es könnte sein, dass es alles sein könnte. Also werde ich einfach sagen, G gleich übrig ist. Und denken Sie daran, die linke ist aufrecht Frankreich warm. Also muss ich auf seine Spielobjekteigenschaft wie folgt zugreifen. Und so wird das so sein. Also und dann werde ich einfach so brechen und dann von dort wieder, gehen Sie einfach und kopieren Sie basierte Firma in Kopie basierend auf all den verschiedenen Fällen. Und dann werde ich sagen, dass, wenn das ein oder zwei oder frei ist, dann wird das unten gelassen werden. Aber und richtig und da, anstatt den Fall minus eins hinzuzufügen, verwende ich nur den Standardfall. Und so bedeutet es, dass, wenn wir aus irgendeinem Grund einige, wie andere ganzzahlige Zahlen,hinzugefügt wie andere ganzzahlige Zahlen, , dass wir es nicht unterstützen , dann würden wir nur standardmäßig auf , äh, das andere Objekt und es würde die leeres Objekt. Also sind sie im Grunde, ich mache dir Luv. Ich erstelle einen neuen Verweis auf ein Spielobjekt und wähle das Spielobjekt basierend auf dem Beat aus, den ich noch und jetzt, was ich tun muss, ist und einfach stattdessen, sie aß dieses Objekt. Also werde ich ein Spielobjekt in Stan machen. Sie aß und dann alles vorbei G, und dann werde ich die Transformation passieren. Also alle sagen, nehmen Sie die Transformation dieses Objekts so. Ich werde die aktuelle Transformation dieses Objekts eso übergeben, in das es eingeht. Stan. Sie hasste in diesem Objekt als Kind dieses Objekts. Und das, wie wir gesehen haben, weil wir die, äh, die anderen beiden Komponenten die vertikale Layout-Gruppe in der Constant Sezer Zukunft haben, wird dies automatisch die Ansicht einstellen. Vermutlich. Also lasst uns das versuchen. Und jetzt haben wir das hier. Wir haben den Verweis auf die Strecke. Wir haben den Verweis auf all das andere Objekt. Und wenn ich anfange, dann sollte ich alle Informationen einrichten. Wahrscheinlich können wir das jetzt sehen, und obwohl eine Sache, die wir sehen können, ist, dass es offensichtlich mit dem ersten Objekt beginnt. sehen, und obwohl eine Sache, die wir sehen können, Also fängt es an. Es fügt hinzu, dass die 1. 1 dann die 2. 1, dass die 3. 1 und so weiter und so weiter. Und das Problem, das wir hier haben, ist, dass die Strecke irgendwie umgekehrt ist, weil wir angefangen haben sie vom Baby über den Anfang hinzuzufügen. Es gibt also zwei Dinge, die wir Thio Thio tun könnten, um dies zu beheben. Die 1. 1 ist, dass wir einfach die für jeden mit einer vollständigen Schleife in einer Zählung rückwärts vom Ende bis zum Anfang ersetzen können und die andere Art und Weise, die wir tun können und die ich bevorzugen werde, weil es Brief ein wenig meteo Griff. Das Objekt, das wir erstellt haben, ist eine Referenz zu nehmen. Also werde ich ein Ich werde einen Verweis auf eine Transformation machen und ich werde es die Ansicht nennen , und ich werde sagen, dass es dieser Transformation gleich sein wird. Also verweise ich auf die Transformation des Objekts, das ich gerade erstellt habe. Und jetzt werde ich dich retten. Setz dich nicht als erstes Geschwister so. Es bedeutet also, dass, wenn ich ein Objekt hinzufüge, ich es an der Spitze des Harrick E. hinzufügen werde. Und so, wenn ich dies immer wieder angefangen habe, indem ich dies tat, dann wird es es hinzufügen und es nach oben nehmen , weil ansonsten wird es unten hinzugefügt. Also füge ich es hinzu und bringe es nach oben. Ich habe es nicht nach oben genommen und so weiter und so weiter. Und so wird dies einfach umkehren wahrscheinlich die Strecke. Und dann, was wir sehen können, ist, dass die Strecke automatisch mit der Pre-Roll beginnt. Okay, jetzt werde ich einfach die Standardposition des Tributs auf Null zurücksetzen auf Warum? So dass es beginnt ganz am Anfang des Bildschirms und eso dort wieder und was wir sehen können , dass diese drei D. U. Y-System Augen für eine schöne wirklich verliert zu sagen, dass wir wollten, dass dieser Bildschirm zu sagen , dass die 100 Pixel von unten aus dem Bildschirm oder 200 Pixel und so weiter und dann bekommen wir Teoh wirklich zu sagen und wo die Spur auf dem, äh resultierenden 2-D-Bildschirm enden wird . Nun, da wir den Track mit ALS gefüllt haben, die Bit-Informationen, die wir wollen den Track haben, um automatisch Talwar an der Kamera zu scrollen , und das ist, was wir auf dem nächsten Video 12. Animieren: Nun, da wir die Spuransicht mit allen Informationen aus dem Spurdatenmodell gefüllt haben , möchten wir, dass die versuchende Ansicht auch automatisch mit der Zeit scrollt. Und um das zu tun, gehe ich zurück in den Stamm. Sie schreiben hier, und ich werde anfangen, einige Verweise auf seine Position zu machen und seine Position zu ändern. Das erste, was wir hier sehen, ist, dass die Position eines Objekts in Ah, Sie ich zwei d wird auch von einem Opfer referenziert . Aber ich will nicht beide Kontinente manipulieren. Ich möchte nur eine der beiden Komponenten manipulieren, die gesagt haben, um dies zu tun , werde ich ein wenig verwenden, ah, Trick, Trick, Teoh, machen Sie einen Verweis auf die Position. Also werde ich einen Sieger machen, um darauf hinzuweisen, dass ich Position anrufen werde, und so wird es standardmäßig ein privater sein. Und da werde ich einen Überschuss hinzufügen er, so dass ich gehe Teoh tun im Grunde werde ich eine Eigenschaft zu tun . Also werde ich ein Code-Snippet verwenden, um schnell eine Eigenschaft zu erstellen und wirklich Ihre eigenen Codevorlagen zu erstellen. In meiner vorherigen Ausbildung dort und im Grunde möchte ich nur sagen, dass ich es zu einem Schwimmer machen will, und ah, dort. Ich werde es Position so nennen, aber ich werde das nicht benutzen. Ich werde es benutzen. Ich werde ein bisschen einen Trick machen, wo das Lebensfähige auch ein Opfer ist. Aber der Überschuss ist dort drinnen über Wasser. Immer wenn wir auf die Wert-Position zugreifen, wollen wir die meine Position zurückgeben. Und wann immer wir den Wert ändern, dann wollen wir den neuen Wert mit der Y-Position vergleichen. Und wenn es anders ist, als wir die y-Komponente der Position dem Wert zuweisen wollen und was wir hier tun werden, ist, dass wir uns ändern wollen, wann immer es das tun würde . Wir wollen die Position vom Wrack ändern, transformieren. Also bin ich auch tun, Richt Transformation nicht verankert. Position gleich und sie sind alle gehen und sagen Position. So Position verankert Position ist auch ein Opfer. Und das ist es, was wir aktualisieren wollen. Aber wir wollen nicht beide Kompetenzen aktualisieren. Wir wollen die X-Komponente nicht handhaben. Wir wollen nur mit der einen Komponente umgehen. Also machen wir einen Schwimmer zurück, Schwester, die die Y-Position zurückgibt und das die Y-Position von der verankerten Position ändert , wann immer wir ah, wann immer wir es ändern. Und jetzt möchte ich sagen, dass die Leber beginnt, wann immer ich die Ansicht initialisiert habe, habe, ich möchte sagen, dass die Position unseren Zügen für ihn punktverankerte Position entspricht. Und ich tue Es gibt nur, ah, um es zu initialisieren, nur für den Fall, dass wir einen, ähm, und den Anfang ausgeglichen hätten ähm, . Und jetzt, wenn ich das mache, werde ich auch eine neue, äh, Update-Nachricht hinzufügen äh, und dort kann ich sagen Position minus ical, al, al, gerade vergangene Zeit. Bauen Sie keine Zeit und multiplizieren Sie diesen Jungen und willkürlichen Wert für jetzt, bevor wir in den Game-Controller bekommen, um all das richtige Timing basierend auf den Bits pro Minuten und so weiter zu definieren . Also multipliziere ich das jetzt mit zwei, nur Teoh, um zu sehen, was das tut. Okay, wir sehen, dass es sich bewegt, aber es bewegt sich sehr langsam, also multipliziere ich das einfach mit 20. Okay, also bewegt es sich, aber es ist dagegen, verschiedene einsam zu bewegen, also multipliziere ich das einfach mit 100. Alles klar, da gehen wir. Wir haben jetzt unsere Vorschau. Arbeit. Und ich hätte einen Speed-Multiplikator zur Spuransicht haben können. Aber es ist nicht der Punkt, weil diese Spuransicht wird nur durch den Game-Controller gesteuert werden . Und es ist die Aufgabe der Waffe dort, der Gamecontroller zu Schwanz. Würde sich das beschleunigen? Der Reisende sollte in die Bucht gehen. Und jetzt die Spuransicht selbst. Und das ist, was wir im nächsten Video tun werden, während wir mit der Arbeit an dem Gamecontroller beginnen , Teil des Model View-Controllers. 13. Benutzerdefinierte Eingaben mit Keycodes umgehen: Jetzt, da wir den Stamm haben, in dem Sie arbeiten, möchten wir mit der Arbeit an dem Controller-Teil des Model View-Controllers beginnen, der die Ansicht und das Modell steuern wird. In diesem Beispiel. Es muss das Modell nicht aktualisiert werden, das zu Beginn Teil des Modellansicht-Controller-Paradigmas ist, dass der Controller einen Tag die Daten dort gibt, es muss nicht wirklich die Daten aktualisieren. Es muss einfach die Daten lesen und auch mit der Arbeit der Mechanik arbeiten, was uns irgendwie zu einer etwas anderen Version des Modellansicht-Controllers führt , die so es sogut kennt. Was ich hier tun werde, ist ein neues Spielobjekt zu erstellen, das ich Game Plain Manager oder einen Controller nennen werde . Bringen Sie dies und ich werde seine Position zurücksetzen auf, und ich werde eine neue zuversichtlich, die in klinischen Gameplay, Controller wie diese und sie sind fast auf der Suche nach Neupositionierung hinzufügen . Das ist ein Skript hier im Skript-Ordner und dann werde ich es starten. Diese diese Gameplay-Controller erste Sache wieder, gehen Teoh auf den Namen Raum hier, so dass alte Klassen innerhalb des gleichen Namens, Raum. Und jetzt werde ich anfangen, an diesem eso zu arbeiten, werde ich das in Richtung, äh, Nachricht in den Update-Nachrichten halten äh, . Nun, eine der Regeln des Spiel-Controller hier wird sein, die Eingaben bald genug zu nehmen. Sie möchten die Eingänge Teil aus dem Spiel-Controller nehmen, so dass Sie einen Spiel-Controller haben können , der völlig unabhängig von der Plattform ist. Und das ist etwas, das wir im späteren Kapitel berühren werden, umMulti-Plattform-Eingänge und Management, Multi-Plattform-Eingänge und Display-Einstellungen zu handhaben Multi-Plattform-Eingänge und Management, Multi-Plattform-Eingänge und Display-Einstellungen zu handhaben . Aber im Moment werden wir nur die Eingänge und den Gameplay-Controller setzen. Und im Grunde, wenn ich innerhalb tun möchte, ist das Update zu testen, ob sexuelle solche Taste gedrückt wurde, wo eine solche Taste gedrückt wurde . Und es gibt zwei Möglichkeiten, dies in einer Immunität zu tun, Sie können entweder die Eingabesitzungen verwenden oder Sie können einen Tastencode verwenden. Und was ich hier tun werde, ist, einen Tastencode zu verwenden, weil er verliert, entweder eine Tastatur oder ein Spielpad zu verwenden. Also werde ich anfangen, einen Hitter und Alkohol zu benutzen. Ah, das hier. Eingaben wie diese fügen ein, äh, neues Schlüsselcode-Feld hinzu, das ich in der gleichen Sache links nennen werde. Es wird privat sein und es wird serialisiert werden. Also werde ich das so machen, Bruce, Bruce, und so links, äh, äh, unten, äh, und rechts so. waren also meine vier Schlüsselcodes, die ich hier auslösen konnte, das in den Inspektor setzen und mich dann verlieren, wenn ich wieder auf den Campbell-Controller zurückkomme. Dadurch kann ich wählen, welchen Schlüssel ich dort verwenden soll. Ich kann die Kräuter-Tasten von der Tastatur verwenden, aber ich könnte auch auf jedem anderen Spielpad, Tasten und Dinge wie das verwenden. Also werden sie den linken Pfeil und den Abwärtsraum und die OP Arrgh benutzen! Auf dem richtigen Weg wie dieser. Und das werden meine in Butch sein. Und so werde ich diese Eingaben wie diese nennen, um auch einen Verweis auf die Spur zu machen . Also, da bin ich auf der Suche, das zu replizieren und die Strecke zu besuchen. Und dort werde ich ein serialisiertes Feld für ein Gebet verwenden. Lebensfähig? Es wird ein privater Track sein , den ich Track so nennen werde, und das wird der Verweis auf die Strecke sein. Und jetzt, da dies der Verweis auf die Spur ist, möchte ich auch andere Komponenten auf die Spur zugreifen lassen, aber ich möchte nicht, dass sie es ändern können. Also, was ich hier tun werde, ist dann einen Überschuss wie diesen zu schaffen und ich werde es zu einer Öffentlichkeit machen und es wird vom Typ Spur sein. Und ich werde es verfolgen wie diese mit am Ende der erzielten und da werde ich gegen implementieren, aber keinen Satz. So die Implementierung erhalten Sie so. Ich sagte nur „Rückweg“. Also, indem ich das mache, bin ich ein paar andere Kommentare, um auf diesen Track zuzugreifen, aber ohne ihn ändern zu können. Und wo das etwas ist, das wir im Editor setzen werden und dass wir nicht von einem anderen kompetenten und gut wechseln können, natürlich ändern Sie dies später, wenn wir wollen, dass der Spieler eine Spur zur Laufzeit wählen und wir wollen wollen, a ah Spur Pekar Ansicht in der Lage sein, eine neue Spur auf den Gameplay-Manager mit dem Gameplay-Controller zuweisen . Also, was ich auch hier Teoh dazu bekomme, ist, dass hier ein weiterer kurzer Trick hinzugefügt wird, aber ich werde hier eine neue Zusammenfassung hinzufügen . Das erlaubt mir, ähm , Informationen darüber zu bekommen , , Informationen darüber zu bekommen, was diese Eigenschaft hier macht. Also werde ich das einfach tun. Das gefällt mir. Und ich werde das das aktuelle Track-Event nennen. Und wenn ich also in eine andere Komponente komme, als ich wissen möchte, was diese Track-Eigenschaft ist , dann ist das die Information, die ich bekommen kann. Es ist ziemlich die gleiche Sache ist ein Tooltip oder so, wenn ich Tooltip wie diese und sagte der Tool-Tipp für Beats Spur zu spielen, denke ich, dass. Und so wird dies im Editor erscheinen und dies wird in einem motorischen Verhalten angezeigt wenn ich über eine Eigenschaft komme. Es gibt eine andere Sache des Tages tun wollen, nur um das Denken sehr eng zu machen. Ich werde eine Region benutzen. Und so werde ich das Moto Be Verhalten nennen, äh, Methoden wie diese. Und da werde ich die Region so beenden. Was für ein Moment wir gehen, Thio fügte später hinzu, ist eine andere Region so Und ich werde dieses Gameplay nennen. Also werde ich dies in verschiedene Regionen aufteilen, Regionen oder Träumerei, Handy, wie Sie später gehen hier und wählen Sie dann eine Region. Es ist wie Verknüpfungen, die Sie in verschiedene Regionen im Code bringen. Also, was ich hier tun werde, ist dann sagen, dass ich eine neue Methode haben will, und ich werde es nennen, äh, Plattenschlag so und es wird ein und in Boot nehmen, was eine ganze Zahl sein wird. Und dann werde ich eine Debug-Abmeldung dieser Eingabe wie folgt hinzufügen, und jetzt werde ich das Datum eintragen. Ich werde sagen, wenn Eingabe, wenn Eingabe, ist dies die Eingabeklasse der Einheit Schlüssel nach unten. Was ist, dass die Taste auf den Rahmen gedrückt wird und nicht auf Lee. Der erste Frame, auf den er gedrückt wurde, und sie werden alle sagen, links so. Ah, Dann möchte ich sagen, Schlag in allen Pass Null, weil die linke Taste ist im Grunde die Spiele, die andere die Null. Und so werde ich dasselbe mit allen vier tun. Und so sagen alle eins zu und drei. Und das wird unten sein und, äh, und genau, und da muss ich auch diese Region mit n Region beenden und nicht einer anderen Region und Region wie dieser. Verwendung von Regionen ist sehr, äh, ja, voll. Wann immer Sie wissen, dass Ihre Klasse wird haben, wie, ein anderes Set Teile aus machen Ausgang ist das motorische Verhalten und das Gameplay. Also, da will ich mich nur trennen. Was ist der Initialisierungsteil? Und wo ist die Gameplay-spezifischen Methoden und Mitglieder nur Aufteilung dieser in zwei verschiedene Regionen. Aber das ist nur wirklich, um mir zu helfen, eso dies out in, wenn in der Mornin entwickeln. Also, jetzt werde ich wieder in den Redakteur und dort werde ich einen Track referenzieren. Also werde ich auf den gleichen Track verweisen, wie ich in der Baumansicht wie diese habe, ich werde speichern, und dann werde ich anfangen zu spielen. Und da, wenn ich die Pfeiltasten der Tastatur gedrückt habe, dann bekomme ich zu sehen, dass ich diese Debug-Ausgabe hier habe, und wenn ich darauf doppelklicke, wird es mich dort hineinbringen. Also bekomme ich zu sehen, dass dies die Play-Bit-Methode auf dem Display auslöst. Aber Methode wird die Methode sein, in die ich Maura-Code hinzufügen werde. Aber im Update habe ich nicht so viel Code hinzuzufügen. Ich nehme nur die Eingaben und übergebe sie dann in das Spielbit. Das ist irgendwie eine Vorarbeit, wie ich weiß, dass ich später diese in eine andere Komponente außerhalb des Gameplay-Controllers auseinandernehmen möchte. Jetzt, wo wir diese Eingaben haben , , wollen wir die Mechanik hinzufügen, die besagt, dass jeder Beat sich auf den nächsten Beat bewegt und dann wollen wir sicherstellen, dass, wenn wir etwas spielen, wann immer wir drücken und eingeben, wollen wir in der Lage sein, die Frage zu stellen, ist die Eingabe, die wir gerade gedrückt haben, diejenige, die jetzt gedrückt werden soll, und das ist die Herstellung X, die wir beginnen in der nächsten zu behandeln 14. Spielern.: in diesem Video beginnen wir mit der Arbeit an der Beat-Verwaltung des Gameplay-Controllers. Was wir also tun wollen, ist Teoh im Auge zu behalten, welcher aktuelle Beat auf eso dafür gespielt werden muss . Was wir tun werden, ist, dass wir hier anfangen werden zu arbeiten und wir anfangen werden. Ich werde hier eine neue, äh, Methode hinzufügen , wenn ich sicher bin, dass ich abstimmen werde, werde ich es als Nächster Beat nennen. Und so im Grunde wird diese Methode, äh, äh, jedes Mal, wenn ich es so anrufe, zum nächsten Beat gehen und dort werde ich ein Debug-Protokoll einlegen , und ich werde dieses Sprichwort einfach debuggen. Und so von dort, was ich tun möchte, ist, jetzt will ich wieder in Ihre Ich werde Verhaltensmethoden gehen und dann in der Geschichte, die ich hier aufrufen möchte, möchte ich verwenden, aufgerufen, fesselnd und in Mode, widerlegen. Ich werde sagen, dass ich für den nächsten Beat gehen wollte, und da möchte ich vorsichtig sein, weil das nicht so sicher ist, wir benutzen einen Text, und deshalb werde ich sagen, dass ich Avery Beat genannt werden wollte. Also für jetzt, lassen Sie uns einfach einen schnellen Test machen und sagen, dass wir sofort anfangen wollten und dann wollen wir es jede Sekunde anrufen. Also, im Grunde übergeben wir einen Umfang für das Intervall, ah, die Frequenz, die wir aufrufen wollen, wiederholen. Also, jetzt gehen wir zurück in den Editor und lassen Sie uns sehen, wie das funktioniert. In Ordnung? Und was wir hier sehen können, ist, dass wir jetzt eine Tick pro Sekunde haben. Also, was ich jetzt haben möchte, ist ein schneller Nachfolger, um die Anzahl von Sekunden pro Beat und die Anzahl der Off-Beats pro Sekunde zu thematisieren , die ich verwenden kann. Und was ich hier tun werde, ist, einfach ein paar Ex-Schwestern zu machen. Ich werde einen öffentlichen Float machen, und ich werde diese Sekunden pro Beat gehen, und das muss ein privates Set bekommen, damit ich es innerhalb der Instanz ändern kann . Und auf Leigh las es aus anderen Klassen. Und da werde ich das Gleiche hier mit einem anderen machen, dass ich für eine Sekunde Beats gehen werde , jetzt möchte ich diese Werte initialisieren. Und dafür werde ich die wake-Methode wie diese implementieren und in wach, werde ich einfach Sekunden pro Beat gleich Spur sagen. Und dann werde ich die Track-bpm-Informationen holen, und ich werde sie durch 60 so teilen. Und so, im Grunde, wie viele Sekunden pro Beat? Es ist die Anzahl der Schläge pro Minute dividiert durch 60. Und dann, wie viele Schläge pro Sekunde, dann wird dies 60 geteilt durch die Strecke, die BPM. Und so werden diese schnelle X-Probleme sein, die wir in anderen Komponenten verwenden können, um einfach auf die Anzahl der Off-Sekunden Perbet in der Anzahl der Bits pro Sekunde zu verweisen. Und da, Jetzt, Ich kann dies verwenden und sagen, dass ich Beats pro Sekunde verwenden möchte. Und eigentlich muss ich das muss ich das umbenennen und damit ich jetzt wieder in den Redakteur gehen und das ausprobieren kann. Und dort können wir sehen, dass es viel schneller geht. Wie wir gesagt haben, die Anzahl der Pittsburgh Minuten 220. Also haben wir im Grunde ein Häkchen. Jede Gesundheit Sekunde. Nun möchte ich einen weiteren Exeter implementieren, der mir erlaubt , auf den aktuellen Beat zuzugreifen, den ich spielen sollte. Und so, um dies zu tun, werde ich zurück ins Spiel gehen, Region spielen, und ich werde eine neue Eigenschaften hinzufügen. Ich werde mein Eigentum benutzen existieren, Sir, und es wird von Typ und Verletzung sein, und ich werde es so stromlos nennen. Und was wir hier sehen, ist, dass, wenn wir bekommen, dann geben wir einfach den Wert der Variablen zurück. Und wenn wir tun, A sagte, wir stellen sicher, dass die Werte geändert und dann werden wir den neuen Wert zugewiesen, und ich möchte auch sehen, ob wir die Strecke abgeschlossen haben. Also, wenn wir das Ende der Strecke erreichen, möchte ich in der Lage sein, den Aufruf abzubrechen und auch, uh, uh, stoppen das Gameplay wahrscheinlich in irgendeinem Sinne, ähm, Ereignisse später zu sagen, dass wir die Strecke beendet haben. Also, was ich hier tun werde, ist zuerst, sagen, ob, äh Strom gleich der Spur ist. Miststück. Zählen. Dann will ich Teoh benutzen. Abbrechen, rufen Sie auf, und dann werde ich die nächste Beat-Methode übergeben , und ich möchte auch etwas Wert speichern,um zu sagen, dass, wenn wir die Strecke abgeschlossen haben , später ich in der Lage sein will Teoh, Verwenden Sie eine einfache Boolean gerade gesagt Wenn wir abgeschlossen haben, dann möchte ich die Eingaben nicht mehr in eine nehmen . Also, was ich hier tun werde, ist dann ein privater Bulle, den ich fertig gehen werde und da drin kann ich jetzt sagen, dass wir den Aufruf abbrechen. Dann sagen wir abgeschlossen gleich zwei. Und jetzt, da ich das getan habe, jedes Mal, wenn wir nächsten Beat anrufen, was ich jetzt tun werde, sage ich Ströme plus Plus Und so wird dies den aktuellen Beat erhöhen gespielt werden, und dann wird dies alle Mechaniken auslösen, die wir Teoh später benutzen. Jetzt, wo ich das habe, möchte ich die Übereinstimmung zwischen den Beat-Informationen und den Eingaben machen, die wir vom Datum bekommen , und das ist, was wir in der nächsten tun werden, um 15. Gameplay: Also, jetzt, da wir den Beat Tickin haben, was wir wollen Teoh Würde, Eingänge und machen das viel zwischen den Eingängen und dem aktuellen Beat. Das erste, was ich tun werde, ist wieder ins Spiel zu kommen, spielen Controller hier. Was ich also im nächsten Beat tun möchte, ist Teoh zu wissen, ob der Spieler gespielt wird und wenn er nicht gespielt hat, es sei denn, es war ein leerer Beat, dann möchte ich einige verpasste Informationen protokollieren. Ich möchte sagen, dass es etwas gab, um Klinge zu sein, und dass wir es verpasst haben. Also, was ich tun werde, ist dann wieder hierher zu kommen und auch direkt vor der Fertigstellung hinzufügen werde ich auch noch eine 1.000.000.000 hinzufügen, die ich anrufen werde, gespielt und so. Und jetzt mit diesem, Ich werde sagen, dass, wenn nicht so gespielt und ich werde auch Track sagen, und da werde ich gehen, um die Beats und dort werde ich den aktuellen Beat passieren. Also der, den wir auslösen sollten, erinnert sich nicht minus eins, was der Wert ist, den wir die leeren Beats zugewiesen haben. Dann möchte ich einige Informationen protokollieren, die besagen, , äh, dass wir, äh,dass wir verpasst haben, was ich hier tun werde, ist und D Moordebug-Log sagen Und im typischen werde ich die Zeichenfolge für die Mitt-Methode verwenden, in der wir hier vorbei gehen. Äh, ein Schlüsselwort davon und ich werde sagen, vermisst, nur um zu sagen, welches Stück verpasst wurde. Und dort werde ich es passieren die Wanderung, die schlägt und Strom, so dass wir wissen, ob wir verpasst ah, links und rechts oder einen Knopf nach unten und so weiter. Und so wie das hier. Und dann will er nun auch sagen, dass gespielt gleich fällt wie diese Anklageschrift Teoh, um es so auszudrücken . Und jetzt, da ich diese gespielten 1.000.000.000-Informationen habe, werde ich es verwenden, um das Datum zu filtern, so dass ich sicherstellen, dass wir nicht zweimal im gleichen Takt spielen können . Und so, um dies zu tun, wird es einfach sagen, wenn gespielt so oder äh, abgeschlossen, dann möchte ich einfach zurückkehren und das Update schnell beenden. Inter. Jetzt, wo ich das getan habe, werde ich auch wieder in die Klinge gehen, äh, Methode hier. Und im Grunde werde ich sagen, dass, wenn für den Trick die Bigs und die Verwendung der Strömung, die es minus eins nennt, im Grunde haben wir vorzeitig gespielt. Wir spielten so, wie wir nicht spielen sollten. Also bin ich Teoh gegangen, ich will hier etwas suchen. Und ich werde auch hier anders sagen, wenn und da werde ich sagen, dass, wenn dies der Eingabe entspricht , dann spielen wir die richtige Kombination in Andernfalls bedeutet es, dass wir gespielt. Aber wir haben die falsche Kombination gespielt. Und so gehe ich einfach Teoh, nimm das. Uh, hier und ich gehe einfach Teoh kopieren Fügen Sie es so und so ein und ich gehe Teoh, benutze es hier und da. Ich gehe, Teoh übergeben Sie einfach die Eingabe so. Und ich werde sagen, dass wir auf das Sterben wirklich so gespielt haben und in diesem, arbeiteten zu sagen, richtig gespielt und es würde sagen, gelegt und wir werden die zweiten Argumente übergeben und wir werden sagen, erwartet das. Also werden wir sagen, dass, äh, welches gespielt wurde, in dem man erwartet wurde, und also werden wir Input übergeben und dann den Strom, den wir hier und da haben. Ich werde einfach Eingabe hier sonnen. Also im Grunde, wenn es minus eins war und wir gespielt haben, dann sagen wir einfach, dass wir vorzeitig klingen. Und dann haben wir die eingeloggt. Aber sonst ist es, wenn der Strom der Eingang ist, dann haben wir es richtig gespielt. Und dann zeigen wir an, welcher gespielt wurde, oder? Und dann, wenn wir, äh sonst, dann zeigen wir, welches gespielt wurde und welches dann erwartet wurde? Und so ist dies das, was wir brauchen für jetzt war für den Controller. Und dann machen wir später das Spiel mit dem Reisenden, so dass die Track-Ansicht zeigt uns zeigt der Spieler, ob er den richtigen Beat gespielt hat oder nicht. Also werde ich jetzt gehen, Teoh, testen Sie diese Regel schnell. Und der Redakteur und so dort. Wir können sehen, dass wir eine, äh, links haben , um zuerst zu spielen, damit ich nach oben planen kann, , und dann sehen wir, dass wir, uh, wir bekommen, dass die Nachricht hier drin ist. Ich habe offensichtlich eine Menge verpasst, einfach wegen der Track-Ansicht ist nicht mit der richtigen Geschwindigkeit zu spielen . Wenn du dich daran erinnerst. Nun, wir hatten die Streckenansicht, um hier mit beliebiger Geschwindigkeit zu spielen. Also der Glücksspiel-Controller und die Spuransicht sind eigentlich nicht ganz. Versenken Sie es. Und das ist es, woran wir im nächsten Video arbeiten werden. 16. Auflistung der TrackView der Sync'ing: Also in diesem Video werden wir anfangen, den Gameplay-Controller und den Stamm You zu verknüpfen. Und das erste, was ich will, dass Teoh hier tun, ist, den Glücksspiel-Controller zu vervollständigen und sicherzustellen, dass es stoppt, wenn es das Ende von der Strecke erreicht. Ich wollte Teoh nur oben. Also, was ich hier tun werde, ist bei einem und ich in einem Meritor, den ich für einen Mut verwenden werde, weil ich will, dass ich am Ende aufhören wollte, aber ich will Oh, ich wollte genug Zeit warten, damit der Stamm Sie völlig aus dem Bildschirm geht. Also, was ich hier tun werde, ist und sagen, dass ich wollte, dass Teoh nachgibt, und so werde ich es auch tun . Hier, ähm, einfach eine private Wartezeit vier Sekunden hinzufügen, die im großherzoglichen Warten und stoppen so und in wach, werde ich sagen, Warten und Stopp gleich neu Warten Sie für Sekunden in allen passieren hier die einfach die Bits pro Sekunde mal zwei, so dass es auf zwei Schläge wartet und ich einfach verschiedene Informationen verwenden könnte . Ich könnte zum Beispiel die Anzahl der Beats in der Patrouille verwenden , oder so etwas. Und so werde ich einfach, Ah, Mai hierher kommen und dann sagen, dass ich zurückgeben wollte, warte. Wir haben nicht so aufgehört und dann auch aktiviert werden, gleich fällt, so dass es sich ausschaltet, wenn es fertig ist, den Track zu spielen. Und jetzt, was ich hier tun werde, ist dann gesagt, dass, nachdem es hier abgeschlossen ist, dann werde ich sagen Gespeicherte Co-Routine in ihren allen Pass das Gewicht und stoppen, warten und stoppen Machen Sie es hier. Jetzt, da ich das habe, möchte ich in der Lage sein, die Track-Ansicht vollständig mit dem Gameplay-Controller zu binden. Und immer dann, wenn Sie zwei Komponenten in einer abhängigen Architektur haben, haben Sie eine Komponente, die von der anderen abhängig ist. Sie wollen keine gegenseitige Abhängigkeit haben, und es ist immer besser, wenn Sie nicht über eine kompetente, eine andere zuzuweisen oder eine andere zu erstellen . Und es ist immer besser, wenn man einfach sagt, dass es nach dem anderen sucht, und es wird schließlich seine Ereignisse und Dinge wie diese abonnieren. Also dafür, was ich tun werde, ist, dass sagen, dass der Spiel-Pulling-Controller höchstwahrscheinlich die einzige Komponente ist , die immer da sein wird. Dies ist derjenige, der auf den Track verweist, und das ist derjenige, der das meiste Verhalten des Gameplays diktiert. Das ist also derjenige, den wir die ganze Zeit haben wollen. Und was ich hier tun werde, ist dann gesagt, dass ich will, dass dies ein Singleton ist, und dieses Singleton ist ein weiteres Paradigma, das völlig kompatibel mit jedem anderen Designmuster ist . Eigentlich entworfene Muster sind genau wie Referenzen, und Sie können sie ändern und irgendwie so machen, wie Sie es wollen, genau wie Muster und genau wie feste Architektur, die Sie nicht ändern können. Also, was ich hier tun werde, ist und ein schnelles, ah, gutes Snippet verwenden ah, , das ich hier benutze und das mich verlieren wird zu sagen, dass ich einen Gameplay-Controller will , was die Instanz ist. Und wenn wir einen kurzen Blick darauf werfen, was es hier tut, ist, dass es auf einen statischen, äh, Verweis auf einen Gameplay-Controller verweist äh, , und wann immer wir darauf zugreifen, wann immer wir auf die Instanz zugreifen, dann ist es wird gehen. Und wenn es noch nicht existiert, wenn es nicht bereits zugewiesen ist, dann wird es gehen und nach einem in der Szene suchen. Wenn es keine findet, die hineingehen wird, erstellen Sie eine. Und so macht das Erstellen eines hier nicht so viel Sinn, weil es Informationen benötigt, wie zum Beispiel, welche Spur es spielen muss und so weiter. Also werde ich das einfach loswerden und einfach sagen, ähm, sie sind hier, dass ich will, dass Teoh das loswird und sie alle sagen, wenn die Instanz nein ist, dann will ich es darin finden und das war's. Und dann möchte ich es zurückgeben. Und das ist Ah, das ist wie einige sehr häufig besser. Ah, hier. Und was ich hier tun möchte, ist und sagen, dass ich möchte, dass die Instanz dies im Wachzustand gleich ist. Und das ist, was ich hier tun werde, was Sie haben und eine wichtige Sache ist, ah, wenn Sie ah tun, Single Dicht ist sicherzustellen, dass, wann immer Sie entladen, gesehen, zum Beispiel weil Sie eine andere Szene oder etwas laden, dann möchten Sie sicherstellen, dass, wenn Sie unabgelenkt tun und tatsächlich ich auf deaktiviert verwendet, Aber ich werde auf zerstören statt auf zerstört tun als Instanz gleich nein. Und dann werde ich einfach den Unterstrich verwenden, damit ich die SEC loswerden kann, ist, dass ich keine andere Komponente in der Lage sein soll, die Instanz auf die Glücksspielsteuerung der Spiel-Controller in der Szene einzurichten. Also lassen Sie uns einfach schnell wieder in den Editor gehen und sicherstellen, dass wir sind, dass alles reibungslos läuft . reibungslos Und jetzt will ich dann wieder in die Strecke gehen, du hier. Und anstatt einen Track-Viewer zuweisen zu müssen, um den Gameplay-Controller der Track-Ansicht zuzuweisen und zu sagen, Hey , Track View, dies ist der Gameplay-Controller und auf der anderen Seite würde ich wie ein Gimpel-Controller. Dies ist eine Spuransicht. Ich will diese Art von Bindungen nicht machen müssen. Ich wollte automatisch sein. Um dies zu tun, weiß ich, dass der Reisende nie ohne Glücksspiel-Controller existieren wird, was vielleicht nicht wahr ist. In der anderen Richtung haben wir vielleicht eine Spielsteuerung ohne Track-Ansicht gespielt, aber nicht umgekehrt Also, was ich hier tun werde, ist dann sagen, dass ich initialisieren möchte , wann immer ich hier in die Initialisierung gehen werde, Ich werde in den Anfang gehen. Und zum Beispiel, anstatt die Spuransicht mit einer eigenen Track-Eigenschaft zu initialisieren, werde ich gehen und sagen, Gameplay-Controller Punkt-Instanz Punktspur. Und so wird es gehen und die Instanz der Gameplay-Kontrolle finden und dann die Track-Eigenschaft finden . Und so die mich verlieren, um einfach loswerden diese manuelle Spur Referenz, die ich bisher hatte hier. Das ist ziemlich , nützlich,so zu tun, als ob ich nicht mit anderen Track-Informationen umgehen muss. Einer im Laufwerk, Sie eine im Gamecontroller und so weiter. Innerhalb der Methode ging ich, um die Größe von einer Gebotsansicht und die Größe aus dem Abstand zu referenzieren, weil ich weiß , dass die Beats im Stamm Sie mit einigen Abständen ausgelegt werden können. Also was? Ich werde zu ah, zu tun. Hier ist und einfach sagen, dass nach dieser Position hier, Ich werde einen Schwimmer hinzufügen, die ich gehen zu schlagen, Haben Sie Größe in einem anderen, dass ich gehen Abstände wie folgt. Und wann immer ich das initialisiert habe, dann werde ich sagen, dass größere Größe gleich ist und ich gehe einfach Teoh, benutze das leere und ich werde die direkten Informationen hier und die Höhe des Rechtecks von der leeren Transformation abrufen. Und dort werde ich sagen, dass Abstände gleich Komponente erhalten und sie passieren werden. Äh, hier, Vertikal nur raus. Doug. Abstände wie dieser. Und ich weiß, dass ich eine kleine Layoutgruppe abgewendet habe, weil ich vor dem vertikalen Layout-Griff der Komponente hinzugefügt habe . Und so nehme ich hier den Abstand. Ich gebe dem anderen den Abstand, den Hochwasserwert und die große Ansichtsgröße zu. Und so im Grunde, was ich hier tun muss, ist dann sagen, dass ich mit der Zeit Delta Zeit auch diese multiplizieren möchte Mein Ich werde dies tatsächlich mit Campli Controller multiplizieren. Instanz Dodd Sekunden pro Beat. Und ich möchte die Sekundengräber benutzen, weil ich den Beat, die Ansicht,die Größe und den Abstand zusammen verwenden werde Ansicht, , was die Menge an Übersetzung ist, die ich tun muss, wenn wir einen Schlag vorwärts bewegen. Und so ging ich, um dies mit der Anzahl der Sekunden pro Beat zu multiplizieren, damit wir diesen Biss mit der Delta-Zeit multiplizieren können . Und so sollten wir eine Übersetzung bekommen, die der richtigen Geschwindigkeit folgt . Und so werde ich einfach sagen, äh, Biddy Assize plus Abstand. Also, jetzt gehen wir zurück ins Theater und schauen uns die Traktorkomponente hier an und wir können sehen, dass die Tribune nur einen Track referenziert. Es wird automatisch den Gamecontroller finden und sich daran binden und seine Track-Eigenschaft finden . Und so jetzt, wenn wir das tun, sollten wir sehen, dass es wahrscheinlich dauert, und die Geschwindigkeit, die ich in der Lage sein sollte, viel mehr richtige Kombinationen zu bekommen, die vorher. Also jetzt, anstatt sich auf die Konsole zu verlassen, um zu sehen, ob wir richtig gespielt haben oder nicht, werden wir es tatsächlich so machen, dass die Track-Ansicht angezeigt und ändert die Anzeige für jeden Beat. Wann, wann immer wir sie richtig spielen oder nicht, und das ist, was wir im nächsten Video 17. Bildmaterial mit dem Gameplay hinzufügen: in diesem Video. Wir gehen jetzt Teoh einen Tag, die Ansicht mit Ereignissen aus dem Gameplay-Controller. Und ich werde weg vom Meer bleiben Sharp Veranstaltungen für diesen Schulungskurs, und ich werde darauf in einem späteren Kapitel ansprechen. Aber im Grunde, was wir hier tun wollen, ist, dass wir versuchen, die Ansicht von benachrichtigt zu werden, um Benachrichtigung vom Gameplay-Controller zu erhalten, wenn wir etwas gespielt haben, wann immer wir etwas verpasst haben und so dass es die aktuelle Sie aktualisieren und geben Feedback an den Spieler, ob sein, äh, verpasst oder gespielt wahrscheinlich oder einfach nur falsch gespielt hat. Aber was wir hier drinnen tun werden, ist zuerst, wir gehen zurück in die Spuransicht, und ich werde eine neue, äh in Ulme hinzufügen . Und so werde ich einen Nina Teoh hinzufügen. das werde ich eine Publikation machen, Ähm Hier, das werde ich eine Publikation machen, , dass ich Trigger anrufen werde. Ich werde das zum Auslöser machen, damit es von verschiedenen Typen sein kann. Es ist einfach vermisst oder richtig oder falsch. Also im Grunde, wir werden einige sehr grundlegende Informationen zu sagen haben. Wann immer mit etwas richtig oder falsch gespielt oder wann immer wir etwas verpasst haben und dann werde ich hier eine neue ah Methode hinzufügen, werde ich eine neue öffentliche Methode machen, damit der Game-Controller darauf zugreifen kann und es wird sein, ah, vermeiden Sie Methode. Und ich werde es Trigger-Beat-Ansicht so nennen, und es wird eine ganze Zahl für den Index nehmen, weil das ist, was der Game-Controller über, äh, alles, was er weiß, ist ah, der aktuelle Beat. Und was also? Wir wollen, dass Teoh das passiert, und wir wollen auch einen Auslöser passieren. Also werde ich einfach den Trigger-Typ hier so übergeben. Und da drin werde ich einen Schalter und einen Schalter machen, der auf dem Auslöser basiert. Denken Sie das und sagen, Fall Trigger verpasst. Und sie sind, was ich tun möchte, so für den Fall, dass rechte Peitschen verpasst auslösen und richtig auslösen und im Fall wieder brechen, falsch auslösen und das und wieder brechen. Nun, was ich tun muss, ist, die Bildkomponente zu referenzieren, von der ich weiß, dass es auf den Beat-Ansichten die Pre-Fabs gibt, die wir stattdessen im Stamm geschossen haben. Tja, was ich will, Teoh hier machen und hierher kommen. Und ich werde eine neue Liste aus dem Bildfach wie folgt hinzufügen, und ich werde diese Bit-Ansichten nennen. Und wenn ich zur Initialisierung hier komme, ist das, was ich einhalten werde, was ich einhalten werde, eine, äh, äh, Gebotsverwendung gleich einer neuen Liste von Bildern wie diesem. Und dort sehen Sie, dass ich bereits das Referenzzahninstanz erstellte Objekt habe, und ich erstelle eine Referenz, einen direkten Verweis auf die Transformationskomponente. Aber die Transformationskomponente hat bereits einen Nachfolger auf seiner sehr leicht zugänglich. Stattdessen, was ich hier tun werde, ist und sagen, dass dies ein Bild sein wird und dort werde ich sagen, Komponente bekommen und Bild wie dieses übergeben und sagen, dass ich jetzt diese Instanz erstellte Spielobjekt nehmen möchte , und dann möchte ich zu der Bildkomponente gelangen, die von dort darauf ist. Wenn ich sagen kann, ist Ansicht Punkt uh, transformieren Punkt Satz s erste Geschwister. Das ist sehr einfach. Und jetzt kann ich damit auch sagen, dass Biff Views diese Anzeige und dann kann ich die Ansicht übergeben, die jetzt vom Typ, äh, Bildkomponenten ist äh, . Und so baue ich dort diese Liste der Bildkomponente von dort aus, und so ist es sehr einfach für mich zu tun, um sie später zu referenzieren. Und was ich hier tun werde, ist, dass, wenn wir verpasst haben, dann will ich in die große riesige gehen und ich will den Index, den ich gegeben habe, vorbei , , und dann möchte ich die Farbkomponente ändern, die die color -Eigenschaft dieses Objekts. Und da werde ich nur einen Kragen, der grau ist. Sagen wir, wir haben sie grau gemacht, wenn wir sie vermissen, und dann werde ich das Gleiche tun. Wenn wir sie richtig kriegen, sage ich nur gelb. Und wenn wir , das falsche Stück spielen,benutzen wir einfach eine andere Ecke, die wir nicht benutzt haben, bis Forest , der ein Salyan ist. Und so mit all dem, dass die Spuransicht jetzt in der Lage ist, einzelne Bitansichten zu überschüssigen, die einfach nur Bildkomponenten sind , die Bildkomponenten, die auf den Pre-Fabs sind, und ändern Sie die Farben basierend auf einem Trigger-Typ , das ist ein Jahr, das wir hier hinzugefügt haben. Und so kann ich jetzt wieder in den Gameplay-Controller und in den Gameplay-Controller gehen. Was ich tun möchte, ist, einen kurzen Hinweis auf den Stamm Sie erstellen. Also werde ich hierher kommen, und ich werde eine neue, äh, zog Ihre Referenz so und ich werde diese Trey-Ansicht nennen, und dann werde ich in das Ziel gehen, hier und im Wachzustand. Was ich hier tun werde, ist, dass es eine Spuransicht gleich Objekttyp in der Hollinger Vergangenheit versuchen Ansicht ist. Also im Grunde sagt es, die erste Versuchsansicht zu finden, die in der Szene definiert ist und dass es und dann, was ich auch tun kann, ist ah dann sagen, wenn , äh, Track View hier, ich sage es nur, wenn nicht, try view, was im Grunde sagt, Wenn trav du nein bist, dann möchte ich eine Debug-Protokollwarnung ausgeben, damit , wir wissen,dass es keine Spuransicht in der Szene gibt, also werde ich einfach sagen, Äh, keine Frank Ansicht gefunden und die aktuelle Szene so. Alles klar, das ist Ah, das ist nur ein sicherer Weg, es in einem späteren Kapitel zu tun. Altach auf C scharfe Ereignisse und alle berühren alle Bindungen, die wir können, in denen wir tun können . Grundsätzlich möchten wir eigentlich Ereignisse verwenden, damit die Track-Ansicht den Spiel-Controller abonniert und der Glücksspiel-Controller Newton und nicht einmal über die Track-Ansicht wissen muss . Das ist also noch besser zu tun. Aber in einem richtigen Modell View-Controller gibt es es Es ist ah, üblich, dass die Kontrolle und Nachrichten über die Ansicht, weil es ihre alten eng zueinander ist. Und jetzt, wo ich das habe, werde ich dann das nächste Stück hier reinkommen, wo wir sehen, dass wir gerade das bisschen verpasst haben und sie auch eine Spur für dich sind, und dann werde ich einfach die Nachricht holen. Es gibt eine Methode, die ich hier Trigger bieten Sie und dann alle übergeben den aktuellen, was der aktuelle Beat ist, den wir spielen sollten und dann übergeben. Trev, du versuchst Triggernebel so zu sehen, und dann werde ich dasselbe tun, wenn wir hier auch die Beats spielen. Also offensichtlich, wenn wir vorzeitig spielen, dann gibt es da. Es gibt kein, es gibt nichts zu zeigen. Und dann möchten wir vielleicht, dass du etwas anderes zeigst. Aber das ist etwas, das ich werde junge tiefer in dem späteren Kapitel sprechen, um den anderen zu verwalten . Die visuellen Belohnungen und auch Audiobelohnungen, die Sie dem Player geben möchten, wenn der Player richtig abgespielt wird oder nicht. Und so drinnen. Ich werde einfach sagen, dass wir dort das richtige Stück gespielt haben, äh, äh,hier und da. Wir haben hier den falschen Beat gespielt. Und was hier passiert, ist, dass wir die Spur von Ihnen übertrieben haben, wenn wir initialisieren. Dann finden wir den ersten Reisenden, den wir in der Szene eingesperrt haben. Und dann, wenn wir spielen, gehen wir, wenn die große Ansicht auslösen. Und so werden die Trevi erhalten. Diese Nachricht wird diese Kohle zu dieser Methode erhalten und basierend auf der Art des Triggers, es wird die Farbe entsprechend aus dem aktuellen Takt ändern. Also lassen Sie uns das überprüfen. Und er hatte es funktioniert. Eines der Dinge, die ziemlich nett ist, dass wir dagegen tun können, ist, dass wir auch sagen dass, wenn wir vermissen, zum Beispiel, ich könnte eine d Moorpause hinzufügen, Also lassen Sie mich einfach tun dies. Und dann bedeutet das, dass, wenn wir diesen Debug-Umbruch treffen, der Editor pausieren wird, genau wie wenn ich hier auf den Pause-Button geklickt hätte. Aber es tut dies automatisch hier. Und was wir hier sehen können, ist, dass im Grunde die Triggerzone, die angezeigt wird, nur ah, ein bisschen ist. Es gibt nur ein bisschen einen Offset. Und wir haben es gerade so platziert, dass der Spieler erzählt, dass er spielen wollte. In der Tat hat er gerade seine gerade verpasst verloren. Und so ist das Ah, das ist der Fehler, den wir hatten. Also werden sie das nur um die Größe des Auslösers bewegen? Äh, huh. So wie das. Und so schätze ich, dass ich jetzt in der Lage sein sollte, äh,mit dem fehlenden irgendetwas zu äh, spielen. Also gehen wir hin. Und eigentlich, was wir gerade gesehen haben, ist ziemlich interessant, dass, wie Sie erkennen können, ich habe ein wenig darüber, dass ich es gespielt habe, und doch geht es, Ah, auf eine Pause. Und das ist ah, einfach, wenn wir Ah, es geht einfach darum. Dort kann man sehen, dass, wenn ich den Beat spiele, ich nicht die gespielte lebensfähig auf wahr gesetzt, was bewirkt, dass es tatsächlich gesagt hat, dass wir nicht gespielt haben, wenn wir das nächste Treffen erreichen. Und so was ich hier tun muss, ist dann sagen gespielt gleich wahr im Spiel, aber Methode. Also habe ich es getan. Ich habe das getan. Und jetzt, was ich auch tun werde, ist einfach all diese, ähm, die Bug-Protokolle hier loszuwerden ähm, , da ich sie vorerst nicht mehr brauche. Also werde ich das wirklich schrecklich bekommen und ich werde hier wieder in die Tablettansicht gehen. Ich werde dieses D-Buch hier loswerden und jetzt werde ich es noch einmal versuchen und dass wir sehen können, dass es richtig gespielt wird. Vermisst, versäumt. Lassen Sie uns versuchen, es falsch zu spielen. Ich gehe nur hoch, hoch, hoch, hoch, hoch. Also und ich mache gerade so, dass wir das sehen können, wenn ich nach oben reiche. Dann drehte sich die gelbe, was bedeutet, dass sie wahrscheinlich gespielt wurden, und andere Möglichkeiten, wie sie Zion drehen, was bedeutet, dass es falsch gespielt wurden, und wenn ich nur nichts als der Zug grau, was bedeutet, dass sie vermisst wurden. Also, das ist es für jetzt. Und im nächsten Video, Ich werde nur einen schnellen Abschluss auf DSM bis alles, was wir auf das Training berührt haben und ich werde auch auf zukünftige Ausbildung berühren kommt auf das gleiche Projekt, um es weiter zu nehmen . 18. Kurs Retrospektive: Also, um dies abzuschließen, lassen Sie uns überprüfen, was wir in diesen gelernt haben. Natürlich haben wir einen schnellen Überblick über die verschiedenen Modellansicht-Controller wie Entwurfsmuster. Dies ist der Modellansichtscontroller sowie die Modellansicht, das Ansichtsmodell und der Modellansicht-Moderator. Und dann kamen wir hinein und sahen, wie wir das in Einheit bringen. Wir sahen, dass die Modellklasse Onley die Daten speichert und dass es bemerkt wird, um es und motorisches Verhalten zu machen , dass es eine serialisieren Kräuterklasse sein könnte und dass die Ableitung von Skript-Kräuterobjekt-Angebote die Bequemlichkeit ist, Daten innerhalb der Editor und dass es, ah, viel einfacher ist, als Jason oder XML Zivilisation verwalten zu müssen. Wir haben die View-Klasse berührt und wir sahen, dass die wenigen Klasse nur die Daten anzeigt, also macht es Sinn, es zu einem motorischen Verhalten zu machen. Es könnte auch ein U. Y-Verhalten sein , und wir sahen, dass es aktualisiert wird, wenn sich die Daten ändern, oder es kann auch Ereignisse vom Controller empfangen . Dann berührten wir den Controller selbst. Wir sahen, dass nur die Daten manipulieren soll, die es die Eingabe verarbeiten kann, obwohl das in einem Multi-Plattform-Szenario. Es wird empfohlen, Eingaben vom Controller zu trennen und die Ansicht zu referenzieren , obwohl es vorzuziehen ist, dass die Ansicht ihre Ereignisse abonniert. Und das ist etwas, das wir in einem späteren Kapitel über Lean All wir sahen, dass Designmuster nur Vorschläge sind, nur religiöse Muster. Und trotzdem sahen wir, dass wir hier unser eigenes Muster erstellen konnten, wo das Modell die Ansicht nicht aktualisiert. Es ist die Kontrolle über diese Updates. Die Ansicht und die Ansicht nehmen einfach die Daten vom Controller und werden von Ereignissen aktualisiert , die vom Steuerelement gesendet werden, um weiter zu gehen. Sie können meinen Newsletter abonnieren und exklusive Angebote erhalten. Union auch beitreten Unity Workshops Group auf Facebook, und wenn Sie mir auf Twitter folgen wollen, ist es bei Unity Coach auf Facebook. Das Gleiche an Sie brauchen einen Trainer oder Facebook, der zuletzt kommt. Du brauchst einen Coach und in der Unity-Community, oder wie Antworten collab und Connect, wirst du mich mit AD finden. Du brauchst bis zum nächsten Mal einen Coach oder ein Freundeszimmer. Danke fürs Anschauen 19. Refactoring.: in diesem Video, Ich möchte bringen, wenn Sie zu den Skripten zu beheben, die wir es mit dem Ende dieses Kapitels beendet haben. Das erste, was ich darauf hinweisen wollte, wenn Sie Dan, mit dem endgültigen Projekt, haben Sie wahrscheinlich schon diese Korrekturen hier bemerkt. Aber denken Sie daran, dass ich hier in der auf Inspector gooey Methode A benutzte dieses Teoh, tatsächlich verhindern den Fehler, den wir bekommen haben, als wir eine neue Spur im Inspector erstellt haben. Und tatsächlich erkannte ich, dass die Initialisierung dieser Liste hier am Anfang diesen Fehler einfach viel einfacher loswird . Teoh, mach es so. Eine andere Sache, die ich will, dass Teoh darauf hinweist. Und das wird mir tatsächlich von einem der Studenten hier auf euch Dummies aufmerksam gemacht , dank John, der tatsächlich darauf hingewiesen hat, , dass Sekunden pro Gebot und Bits pro Sekunde oder tatsächlich getauscht wurden. Also, obwohl wir sie an den richtigen Stellen in den richtigen Stimmen verwendet haben, die sagen, dass es funktioniert, wahrscheinlich die Bedeutung, dass sie der Träger tatsächlich gefegt ist. Und wenn wir darüber nachdenken, wie Bits pro Sekunde ist eigentlich wie viele Schläge in einer Sekunde, also ist es nicht 60 geteilt durch die Anzahl der Bits pro Minute. Aber es ist die Anzahl der Bits pro Minute geteilt durch 60 und Voiceover sagt, dass Sekunden pro Gebot tatsächlich umgekehrt sind. Wenn es der Wert wäre, der tatsächlich umgekehrt wurde, würde ich einfach das Zeichen hier ändern, und das wäre ziemlich einfach. Die Sache ist, dass es nur der Name aus ist, der Lebensfähige, also ist alles in Ordnung. Aber der Name dieser Variablen und Zugriffsberechtigungen sind tatsächlich irreführend. Also wollen wir das umbenennen und so, um dies zu tun, was ich hier tun werde, ist eine der Funktionen zu verwenden, die ziemlich mächtig in der modernen entwickelt ist , die einen Reflektor genannt wird. Also kann ich mit der rechten Maustaste darauf klicken und sagen, umbenennen, wenn Sie dies auf etwas tun, das tatsächlich privat ist oder das innerhalb dieser Klasse . Also, zum Beispiel, wenn ich das auf, äh, der Instanz machen äh, würde, dann würde ich das bekommen. Ich würde eine einfache Umbenennung bekommen, weil dies nicht existiert und nicht existieren kann, weil es einfach privat ist, so dass es nirgendwo anders existieren kann. In einer anderen Klasse, und dann kann ich das einfach umbenennen und es wird alle Vorkommen vom Namen dieses Dings umbenennen . Aber da, was ein wenig anders ist, ist, dass dies wahrscheinlich woanders verwendet wird, und es ist tatsächlich. Wir wissen, dass es in der Spuransicht verwendet wird, wo wir es hier als Sekunden pro Gebot verwenden. Was wir hier tun können, ist, dass ich diese Datei hier schließen werde, und was wir hier tun können, ist, dass einfach das hervorheben und dann einfach umbenennen sagen. Und wenn ich das tue, dann, anstatt nur alle Organe umzubenennen, ist im Finale. Es wird diesen Dialog stützen, in dem ich den Namen ändern kann und sie sind, was ich hier tun werde , ist nicht, wenn ich den Namen für Bits pro Sekunde ändere, dass ich mit zwei Eigenschaften mit dem gleichen Namen enden würde , und dann konnte ich nicht mehr in die andere umbenannt. Also, was ich hier von jetzt an tun werde, ist einfach am Ende der Punktzahl zu diesem hier, und ich werde auch kopieren, und dann werde ich sagen, OK, jetzt kann ich das hier tun, ich werde weitermachen, umbenennen und dann werde ich Benennen Sie diese zwei Sekunden pro Beat so um. Und dann kann ich jetzt gehen und die andere umbenennen und sie als Beats für Sekunde umbenennen. Nun, so wie das. Und dann wird es das überall im Feuer umbenennen, aber eigentlich überall in den Lösungen, die wir wieder in der Spuransicht finden. Dann können wir das dort sehen, wo ich Sekunden pro Beat hatte. Ich habe jetzt stattdessen Bits pro Sekunde, und deshalb habe ich die Datei geschlossen, bevor ich es vorher tun würde, denn wenn ich es mit dem endgültigen Open gemacht hätte, hätte es es tatsächlich getan. Aber dann, sehr Ofen. Sie wollen, dass Thio Thio es nicht Teoh haben, um die Datei zu speichern, die es geändert wurde. Hätte ich es getan, wie ich es tatsächlich tun kann. Nur Teoh Demo den Zweck hier, wenn ich das hier so mache und ich das mit ein paar Unterstrichen dahinter umbenannt habe . Was Sie hier sehen können, ist, dass es diese Datei geändert hat, aber sie hat sie nicht gespeichert Wenn ich also nie wieder in die Einheit zurückgehe oder sehr oft Sie mit einem Fehler enden, weil Sie die Datei speichern, die Sie geändert haben. Aber Sie haben nicht alle anderen Brände gespeichert, die automatisch geändert werden. Also und auch wenn Nette Sache ist, dass Sie das tatsächlich in jeder Datei tun können. Also müssen Sie das hier nicht in dieser Strafe tun. Sie können es auch tun. Glaubst du, sie sind so da. Ich kann einfach gehen und sagen, umbenennen und dann die in Partituren entfernen und dann wird es umgekehrt machen . Das ist also, Ah, sehr mächtiges Feature, das ich hier in diesem Video zeigen wollte. Und so nochmals, dank John , der tatsächlich darauf hingewiesen hat, war es mein Fehler. Eso Es ist jetzt fixiert und ich werde auch die Akten des letzten Projekts und die Väter der anderen Kapitel dieser Ausbildung als auch abschwächen . So wie immer, Vielen Dank für Ihr Feedback. Und danke fürs Anschauen