‫Willkommen zurück.
‫In diesem Video werden wir unserer Schüssel Funktionen hinzufügen, damit sie sich endlich von links nach
‫rechts bewegen und von den Raketen abprallen kann, was natürlich unsere beabsichtigte Funktionalität ist.
‫Und dann müssen wir natürlich unsere Aufzeichnungen verschieben.
‫Das werden wir später in einem der ersten Videos tun.
‫Und dann sind wir fast fertig mit dem Spiel.
‫Beginnen wir also damit, ein neues Skript für unseren Ball zu erstellen, das ich nennen werde.
‫Ballbewegung und wie Sie sehen, erstellen Sie eine Anzeige, erstellen Sie ein neues Skript, und wir können das mit Visual
‫Studio öffnen.
‫Gut.
‫In Visual Studio haben wir die Start- und die Update-Methode.
‫Wir werden die Update-Methode nicht brauchen, also lassen Sie uns das los.
‫Wir brauchen jedoch eine Methode, die anzeigt, wie schnell sich der Ball bewegen kann, und das sollte ein öffentlicher Wert sein,
‫damit wir ihn innerhalb der Einheit ändern können.
‫Die Geschwindigkeit der öffentlichen Float-Bewegung sollte normalerweise Floats und Unity sein, da Sie Ihre Geschwindigkeit meistens für die Physik verwenden möchten und
‫die Physik mit Float arbeitet. Dann brauchen wir einen Wert, der uns sagt,
‫wie viel schneller der Ball ist kann pro Treffer gehen.
‫Für jeden Treffer, den es mit einer Schallplatte trifft, sollte es also etwas schneller gehen, damit das
‫Spiel nach und nach schwieriger wird.
‫Und das erreichen wir, indem wir eine weitere wertvolle Variable für den Float erstellen, die als zusätzliche Geschwindigkeit pro Treffer bezeichnet
‫wird.
‫Bei jedem Treffer sollte es also ein wenig nach oben gehen.
‫Dann brauchen wir eine maximale Geschwindigkeit, damit der Ball nicht an einer Stelle superschnell geht und nicht mehr zu fangen
‫ist.
‫Natürlich könntest du sagen, OK, das will ich nicht, aber wir wollen hier eine Obergrenze setzen,
‫also erstellen wir eine Obergrenze, die eine maximale Extra-Geschwindigkeit ist, damit es eine maximale Geschwindigkeit im Allgemeinen gibt und wir
‫Hilfe brauchen Variable, die ich Hit Counter nenne, und die zählt, wie oft der Datensatz getroffen wurde oder ein Datensatz getroffen
‫wurde.
‫Im Moment wollen wir unseren Ball bewegen.
‫Lassen Sie uns also eine Methode entwickeln, um unseren Ball in die öffentliche Leere zu bewegen, den Ball zu bewegen.
‫So werde ich es nennen.
‫Und es braucht einen Richtungsvektor.
‫Also rufe ich einfach ein Reh um Richtung.
‫Sie sind nicht.
‫Diese Richtung sollte eine normalisierte Richtung sein.
‫Diese Move-Ball-Methode kann also von außen aufgerufen werden.
‫Sie kann innerhalb einer anderen Methode aufgerufen werden, beispielsweise kann sie von einer anderen Klasse oder von einem anderen Skript
‫aufgerufen werden, da sie öffentlich ist.
‫Und was wir tun wollen, ist zuallererst die Richtung, die uns gegeben wurde, zu normalisieren, weil es ein sehr
‫seltsamer Wert werden könnte.
‫Aber wir wollen, dass es normalisiert wird.
‫Wir sagen also, dass die Richtung die alte Richtung ist, jedoch als normalisierter Wert.
‫Es gibt diesen Vektor also mit einer Größe von eins zurück.
‫Das machen wir hier also.
‫Jetzt können wir vorangehen und eine Geschwindigkeit erstellen, die der Geschwindigkeit unseres Balls entspricht.
‫Ich erinnere mich jetzt, was es war.
‫Als erstes hatten wir die Bewegungsgeschwindigkeit.
‫Also diese Bewegungsgeschwindigkeit.
‫Und dann müssen wir die zusätzliche Geschwindigkeit pro Treffer hinzufügen und müssen daher wissen, wie viele Treffer wir hatten.
‫Das bedeutet also, dass wir weitermachen und diesen Dart-Hit-Counter sagen.
‫Also, wie viele Treffer hatten wir je mit dieser zusätzlichen Geschwindigkeit pro Treffer multipliziert?
‫Auf diese Weise erhöhen wir die Bewegung des Balls kontinuierlich.
‫Um diese Geschwindigkeit auf unseren Ball anzuwenden, müssen wir unserem Ball Kraft hinzufügen und in diesem Fall dem
‫starren Körper, da der starre Körper der physikalische Aspekt unseres Balls ist.
‫Das bedeutet, dass wir eine Starrkörper-Studie benötigen, die ich Starrkörper nenne.
‫Zu tief ist dieses Dartspielobjekt gleich, das Komponenten bekommt und der Name der Komponenten sollte starrer
‫Körper 2D sein.
‫Wir nehmen also die Starrkörper-2d-Komponente dieses Spielobjekts also des Spielobjekts, das das Ballbewegungsskript trägt, das
‫vorerst nur unser Ball sein wird.
‫Wenn wir mehrere Kugeln hinzufügen möchten, könnten wir dies tun, und
‫allen müsste eine 2D-Festkörperkomponente zugewiesen werden.
‫Da wir nun den starren 2D-Körper kennen, können wir ihn beeinflussen.
‫Also ändern wir seine Geschwindigkeit, seine Richtung multipliziert mit der Geschwindigkeit.
‫Das bedeutet, dass jede Richtung, die unserer beweglichen Methode zugewiesen wurde, mit der Geschwindigkeit multipliziert wird, die die
‫Bewegungsgeschwindigkeit ist, plus die zusätzliche Geschwindigkeit pro Treffer multipliziert mit der Anzahl der Treffer.
‫Damit sich unser Ball jetzt bewegen kann, müssen wir move ball aufrufen.
‫Der beste Weg, dies zu tun, besteht darin, es innerhalb einer Kernroutine aufzurufen.
‫Also um eine coole Routine zu starten.
‫Und das bedeutet, dass wir die Update-Methode nicht verwenden, was sehr ineffizient wäre, da wir die Methode
‫ständig aufrufen und die Geschwindigkeit sehr schnell ändern würden und so weiter.
‫Und der beste Weg, dies zu tun, besteht darin, eine I-Enumeratormethode zu erstellen.
‫Ihre Methode, die zurückgibt, und ich Enumerator, damit wir sie für einen gemeinsam geschriebenen Aufruf verwenden können, zwingt
‫alles andere dazu, darauf zu warten, bevor neue Aktionen ausgeführt werden.
‫Auf diese Weise können Sie steuern, dass eine Aktion auf eine andere wartet.
‫Anstatt parallel zu laufen, werden wir interessantere Möglichkeiten finden, coole Routinen und weitere Tutorials zu
‫starten.
‫Aber jetzt verwenden wir das einfach, um unseren Ball zu bewegen.
‫Was wir also zuerst brauchen, ist eine neue Methode, die öffentlich ist und zurückkehrt.
‫Und ich Enumerator, der, wie Sie sehen können, eine einfache Iteration unserer nicht generischen Sammlung unterstützt.
‫So wollen wir diesen einen Startball nennen.
‫Das bedeutet, dass diese Methode immer dann aufgerufen wird, wenn wir mit der Ballbewegung beginnen.
‫Und wir brauchen hier einen Booleschen Wert, der heißt ist Startspieler eins gleich.
‫Wahr.
‫Das heißt, wir brauchen eine Variable, die unser Startspieler ist, und wenn kein Wert angegeben wird, ist es
‫einfach wahr.
‫Das bedeutet, dass unser Spieler eins der Startspieler ist.
‫Das bedeutet, dass der Ball von links nach rechts geht.
‫Alles klar, und dieser sollte Startball heißen und wir bekommen immer noch das Rot auf der Linie, das heißt, wir haben
‫hier noch einen Fehler.
‫Das liegt daran, dass wir etwas nicht zurückgeben.
‫Alcopops geben keinen Wert zurück, also geben wir einige Werte zurück. Was wir also brauchen, ist zunächst,
‫dass wir unseren Personalbestand zurücksetzen müssen.
‫Also setzen wir das hier auf Null und geben dann ein neues Warten für Sekunden zurück.
‫Das heißt, wir machen unser Spiel.
‫Warten Sie zwei Sekunden.
‫Das heißt, wann immer wir das Spiel starten oder wenn wir starten, warten wir zwei Sekunden, nachdem wir den
‫Kopfzähler auf Null gesetzt haben, und beginnen dann mit der Bewegung.
‫Das heißt, wir überprüfen dies, wenn der erste Spieler startet oder Spieler zu Beginn.
‫Ist Spieler also ein Startspieler?
‫Wenn das der Fall ist, fahren Sie fort, beginnen Sie, den Ball zu bewegen.
‫Also nennen wir diese Methode hier und geben ihr einen Vektor des neuen Vektors zwei mit dem Wert minus eins und null.
‫Das heißt, der Ball bewegt sich nach links und ansonsten sollte sich der Ball nach rechts bewegen.
‫Dieser Ball, zu dem Sie jetzt vektorisieren, sollte sich nach rechts bewegen.
‫Also eins und null.
‫Eins ist also der X-Wert und Null, warum der Wert, wie Sie sehen können, Float Y ist.
‫Gut.
‫Nun, da wir das haben, müssen wir nur noch die Aufrufroutine starten.
‫Beginnen Sie also mit der Routine.
‫Und hier drin nennen wir unseren diesen Dartstartball.
‫Alles klar, jetzt speichern wir das.
‫Wir werden dem Spiel später einige weitere Funktionen hinzufügen müssen.
‫Aber jetzt testen wir das in der Einheit.
‫Was ich jetzt brauche, ist die Masse unseres Balls zu ändern.
‫Es sollte superleicht sein.
‫Also nehme ich einfach 0. 01 und
‫für die Schwerkraftskala gehe ich einfach auf Null.
‫Wir brauchen überhaupt keine Schwerkraft für unseren Ball.
‫Wie Sie hier sehen können, ist die Bewegungsgeschwindigkeit null, die zusätzliche Geschwindigkeit pro Kopf ist null und unsere
‫maximale zusätzliche Geschwindigkeit ist ebenfalls null.
‫Und das wollen wir nicht.
‫Natürlich wollen wir, dass sich unser Ball bewegt.
‫Und ein guter Startwert ist 400.
‫Eine gute zusätzliche Geschwindigkeit pro Kopf ist 50 und die maximale Geschwindigkeit sollte 1000 betragen.
‫Das sind also nur Werte, die mir nach dem Testen eingefallen sind.
‫Und mal sehen was passiert.
‫Nach zwei Sekunden beginnt sich ein Ball nach links zu bewegen, weil sich sein Spieler einmal dreht und dann hin und her
‫geht.
‫Wie Sie sehen, ist die Geschwindigkeit sehr gleich.
‫Es ändert sich also nicht wirklich.
‫Es ist immer die gleiche Geschwindigkeit, obwohl wir diese zusätzliche Geschwindigkeit pro Trefferwert hinzugefügt haben.
‫Lassen Sie uns also weitermachen und die zusätzliche Geschwindigkeit pro Treffer mit der Trefferzahl erhöhen.
‫Wir müssen also eine Methode hinzufügen, die unseren Personalbestand um eins erhöht.
‫Und
‫ich werde diesen einen öffentlichen Leeren-Erhöhungs-Trefferzähler nennen.
‫Das wird also den Trefferzähler um eins erhöhen.
‫Es heißt also, wenn sie den Trefferzähler multipliziert mit diesem starten, ist die zusätzliche Geschwindigkeit kleiner, dann diese maximale zusätzliche Geschwindigkeit,
‫dann mach bitte weiter und erhöhe den Kopfzähler, denn sonst hätten wir eine Geschwindigkeit von wohl an
‫einer Stelle eine unbegrenzte Geschwindigkeit.
‫Es ging also rauf, hoch, hoch und hoch und weiter hoch.
‫Gut.
‫Dass diese Methode jetzt überhaupt nicht aufgerufen wird und in unserem Ballbewegungsskript nicht aufgerufen wird.
‫Wir werden es jedoch im Drehbuch für unsere Aufzeichnungen nennen.
‫Das werden wir in einem der nächsten Videos tun.
‫Aber bisher haben Sie gesehen, wie Sie Ihrem Ball Bewegung verleihen können.
‫Und damit werden wir in den nächsten Videos fortfahren.
‫Wir sehen uns also im nächsten Video.
‫Bevor wir das tun, müssen wir natürlich aufräumen.
‫Ziehen wir also diese Ballbewegung in Skripte und speichern wir unsere Szene und sehen uns im nächsten Video.