Willkommen zurück, Meine Lieblingsspielentwickler.
In diesem Video werden wir unbesiegbar werden.
Wenn wir jetzt einmal erschossen werden, das zweite Mal,
sind wir unbesiegbar und Sie
merken, dass wir ein wenig geblitzt haben,
was sehr cool ist.
Jetzt werden wir auch unbesiegbar werden
, wenn wir den Torpedo machen.
Also kann uns niemand wehtun, während wir unseren Torpedo machen.
Offensichtlich sind wir nicht dort angekommen,
aber machen wir uns darüber keine Sorgen.
Lasst uns zunächst
unsere Unbesiegbarkeitsmechanik entwickeln.
Also lasst uns anfangen.
Ok.
Wenn wir nun angeschossen werden,
wenn wir zum Beispiel
zwischen den drei Skeletten hier gefangen sind,
könnte es für den Spieler, der unser Spiel spielt, nur ein bisschen
unfair
sein dass er einfach
sofort stirbt und nicht einmal merkt, was passiert ist.
Und eine andere Sache,
eine wirklich nette Sache, die ich als Spielmechaniker zu unserem Spiel hinzufügen möchte
als Spielmechaniker zu unserem Spiel hinzufügen
ist, dass wir unseren Spieler, wann immer wir schneidig sind
, nur ein bisschen
unbesiegbar für ein paar
Sekunden, vielleicht sogar Millisekunden.
Dafür werden wir diese Mechanik implementieren, dass
diese Mechanik implementieren, dass
unser Spieler für mindestens ein paar Sekunden unbesiegbar
ist.
Gehen wir also in unseren Spieler-Gesundheits-Handler.
Und hier drin erstelle ich zwei Variablen.
Das erste wird ein serialisiertes Feld sein
und es wird ein Float sein,
und es wird die Sensibilitätszeit sein.
Wie lange bleibt der Spieler unbesiegbar?
Es wird als Standard von 1 Sekunde hinzugefügt.
Und dann erstelle ich
einen privaten Bool und nenne ihn das ist unbesiegbar.
Wenn der Spieler also unbesiegbar ist,
gibt es ein paar Dinge, die passieren werden
und ein paar Dinge, die nicht passieren werden.
Und eines der Dinge, die nicht passieren werden, ist, dass
der Spieler keinen Schaden erleidet.
Also hier drin werden wir nachsehen,
bevor wir anfangen, den Spieler zu beschädigen.
Wenn der Spieler unbesiegbar ist,
werden wir tatsächlich
wissen, was ich tun wollte, ist sich zu verbeugen.
Also hier drin, lass mich das entfernen.
Und und eine Einladung an diese.
Was ich sagen wollte, wenn der Spieler nicht unbesiegbar ist,
also ist es nicht unsichtbar, bedeutet, dass wir
dahinter ein Ausrufezeichen hinzufügen,
und das wird das Ganze ändern.
Wenn er also nicht unbesiegbar ist,
ist unbesiegbar wahr,
was bedeutet, dass die gesamte Bedingung
aufgrund des Ausrufezeichens falsch ist, bedeutet dies,
dass wir nicht darauf zugreifen.
Das heißt, wann immer wir unbesiegbar sind,
ist unbesiegbar wahr.
Wir werden nicht verletzt.
So ausgezeichnet.
Lass uns weitermachen.
Als Nächstes wollen wir sicherstellen, dass
wir
nicht mehr unbesiegbar
nach einer gewissen Zeit nicht mehr unbesiegbar sind.
Dafür müssen wir eine Beschichtung erstellen.
Also werde ich es dir als Herausforderung ausstellen.
Drehe den Spieler also mit einer Beschichtung zurück.
Sie müssen eine Kernsache erstellen,
die den Spieler von seiner Unbesiegbarkeit zurückhält,
die Unbesiegbarkeitszeitvariable verwenden sollte
und Sie müssen die Beschichtung an der entsprechenden Stelle aufrufen
.
Also jetzt mit diesen Informationen des Videos
und gehe zur Herausforderung.
Okay, willkommen zurück.
Wie bist du damit zurecht gekommen?
Weißt du, was ich an den Herausforderungen liebe
, ist, dass es dich zur Rechenschaft zieht.
Wenn Sie also zu diesem Zeitpunkt nach all den Herausforderungen immer noch nicht wussten
, wie ein Gericht arbeitet,
müssen Sie irgendwann lernen, weil ich Sie weiterhin bitten werde
, etwas zu tun
, bis es in Ihnen verwurzelt ist.
Nehmen wir es uns also leicht an und
erstellen wir hier einen Augenenumerator.
Also glaube ich, dass es jetzt ziemlich einfach ist.
Der Spieler ist also unbesiegbar.
Oder kehren Sie zurück zu dem, was sollen wir diese Ebene nennen?
Nennen wir es einfach unbesiegbar.
Sie sind nicht unbesiegbar.
Okay, nennen wir es so.
Und hier werden wir ein neues Gewicht für den zweiten Platz zurückgeben
.
Ich meine, bis zu diesem Zeitpunkt
sollte es wie Niesen oder Atmen sein.
Also geben wir zurück neue Wartezeit
vier Sekunden, die Unbesiegbarkeitszeit.
Und nach dieser Unbesiegbarkeit ist die Zeit
unbesiegbar, wird wieder falsch sein.
Und ich möchte auch sicherstellen, dass das ist unbesiegbar, sobald wir
anfangen, auf false gesetzt ist.
Damit wir nicht unbesiegbar sind
, sobald wir damit beginnen, glaube ich, dass dies
alles ist, was wir tun müssen.
Also werde ich das speichern.
Ich gehe zurück in unser Spiel.
Und lass uns das Spiel laufen.
Und mal sehen, was passiert.
Also wenn ich, okay, also zuerst,
müssen wir vielleicht noch ein paar Sekunden hinzufügen.
Also Untergang und Sensibilitätszeit,
lasst uns zwei machen, und lass es uns noch einmal ausführen.
Das wird also der richtige Zeitpunkt sein.
Also werden wir einmal getroffen.
Da sind wir los. Jetzt kriegen wir es zweimal, wir sterben immer noch.
Warum ist das?
Mal sehen, was das Problem ist.
Lassen Sie uns dies öffentlich machen, damit wir klar sehen können
, ob wir tatsächlich ändern, was passiert.
Alles was wir hier nicht mit der Kälte angefangen haben.
Also werde ich sicherstellen, dass wir das tun.
Hier drin, wo sollen wir es 0 nennen?
Was ich also tun möchte, ist, wann immer wir getroffen werden,
wir müssen auch das ändern, was unbesiegbar zu wahr ist.
Es gibt also viele Schritte, die ich vergessen habe.
Und nachdem wir es bekommen haben,
beginne ich mit der Co-Routine.
Und das Coroutin wird die Schicht sein, nicht unbesiegbar.
Es gibt also viele Dinge.
Also lass mich dir sagen, was ich vergessen habe zu tun.
Und hier, sobald wir getroffen werden,
wollen wir das Unbesiegbare auf wahr setzen.
Und sobald wir unbesiegbar sind,
beginnen wir mit der Coroutine.
Und weil das Unbesiegbar stimmt,
wir nicht mehr beschädigt.
Diese Linie war also entscheidend.
Und ich weiß nicht einmal, wie ich
etwas so Wichtiges hätte vergessen können,
das ist die ganze Essenz
unseren Spieler unbesiegbar zu machen.
Also hoffe ich, dass du verstehst, was passiert.
Ich hoffe, du bist nicht zu sauer
auf die Fehler, die ich manchmal mache.
Und lass uns weitermachen und das Spiel laufen.
Also los geht's, wir werden einmal getroffen, wir kriegen es zweimal.
Da gehst du.
Du kannst sehen, dass die zweite Hüfte uns nicht getötet hat.
Warum? Weil wir die Unbesiegbarkeit Zeit hatten.
Wir können also genau hier sehen, dass es an war.
Testen wir das noch einmal, weil ich das Gefühl habe
, dass wir vielleicht noch einen Treffer hätten machen sollen.
Da sind wir also unbesiegbar und wir sind gestorben.
Ich habe immer noch das Gefühl, dass etwas nicht ganz nicht
stimmt und ich habe recht. Also 50.
wir also sicher, dass es funktioniert.
Stellen wir es auf vielleicht fünf Sekunden
und sehen, ob das länger dauert.
Weil ich hier sehen kann, dass sich das
nicht ändert 1234, okay,
also weiß ich, dass alles funktioniert,
aber aus irgendeinem Grund sehen wir diese Änderung nicht
genau hier.
Aber darüber machen Sie sich keine Sorgen.
Wir wissen, dass es funktioniert, denn wenn wir
die Zeit erhöhen, sind wir unbesiegbar.
Wir können etwas länger auf dem Gesicht stehen.
Okay, großartig. Das ist alles in Ordnung und Dandy.
Aber hier ist das Problem.
Wir haben keine Ahnung, dass wir
für eine gewisse Zeit unbesiegbar sind.
Was wir also tun werden, ist, dass wir versuchen werden
, dies zu visualisieren.
Tu das also.
Was ich glaube, dass ich
hier auf die Leiche zugreifen werde.
Sie können sehen, dass wir die Farben haben und wenn wir getroffen werden,
bringe ich den Spieler zum Blinzeln.
Also lasse ich ihn ein-, zweimal, dreimal blinzeln oder blinzeln,
bis die Zeit, die wir haben, vorbei ist.
Also lasst uns weitermachen und das machen.
Also gehe ich hier rein und bekomme
einen Hinweis auf das Sprite des Spielers.
Also serialisiertes Feld.
Und es wird der Sprite-Renderer sein.
Und es wird das Spieler-Sprite sein.
Da sind wir los. Und hier drin werden wir
einen Zähler erstellen.
Und es wird der Flasher sein.
Und hier drin werden wir zuerst feststellen,
wie viele
Blitze wir haben wollen.
Und dann erstellen wir eine for-Schleife.
Warte drauf.
Weißt du wovon ich rede?
Es wird das int gleich 0 haben,
während ich weniger ist als wie viele Blitze wollen wir?
Sagen wir fünf Blitze.
Und ich plus plus.
Okay.
Also bleib bei mir.
Ich verlasse dich richtig.
Ich füge hier zuerst ein bisschen
Abstand hinzu und dann gehe ich
auf die Sprite Punktfarbe des Players
zu, die einer neuen Farbe entspricht.
Öffne die Klammern oder wie auch immer sie heißen.
Und dann schreibe ich hier rein,
wir behalten das Gleiche.
Wir werden das behalten,
lassen Sie mich diese Zeile einfach zweimal duplizieren.
Wir werden das A behalten.
Dann haben wir die Ordinalzahl.
Wir beginnen mit Rot,
Rot, Grün und Blau.
Und schließlich werden wir den letzten haben
, der kein Komma nehmen sollte.
kann genau hier sehen, dass wir kein Komma haben und es wird
das sein, das ein.
Aber in unserem Fall wollen wir zuerst
das A reduzieren.
Also lasst es uns auf 0,1 setzen.
Danach werden wir wieder neue zurückgeben.
Und wir werden vier Sekunden warten.
Und so schnell werden wir blinzeln.
Also setze ich es auf dein 0.1.
Wenn wir keine 0 oder nur einen Punkt haben, bedeutet das,
dass wir 0,1 haben.
Es ist nur ein bisschen schneller, Dinge zu tun.
Und dann gehen wir zurück und kopieren
diese Zeile und legen sie hier rein.
Und statt 0,1
wollten wir den einen haben.
Und lassen Sie mich einfach eine Registerkarte für Implementierungszwecke hinzufügen
.
Also verstehe einfach alles.
Und dann werden wir wieder die
Gewichtsrendite für 1 erzielen. Zweitens.
Spar dir das auf.
Und jetzt müssen wir irgendwo mit der Coroutine anfangen.
Wenn wir direkt getroffen werden
nachdem wir die Unbesiegbarkeit auf wahr gesetzt haben,
werden wir die Co-Routine beginnen,
die auch V-Blinker mit den Klammern sein wird,
diese werden Klammern genannt, an die ich mich gerade erinnerte.
Vielleicht werden sie Fahrgemeinschaft und Klammern und Wege, wie wir
das retten, was hier passiert.
Zuallererst haben wir die Schleife.
Wir wissen bereits, wie die Schleife funktioniert. Wir fangen bei 0 an.
Wir machen es viermal,
fünfmal sind tatsächlich 4,
0, 1, 2, 3 und 4.
Also fünfmal erhöhen wir jedes Mal um eins
und wir werden durchlaufen.
Was machen wir hier drin?
Wir ändern die Farbe.
Wir behalten alles in Rot, Grün
und Blau gleich, außer dem Alpha.
Und hier drin machen wir das Gleiche.
Also der erste, den wir auf Alpha auf 0,1 reduzieren.
Und das zweite machen wir das Alpha 1.
Und was machen wir hier drin?
Nun, wir wissen bereits, wie die Rendite
Sie vier Sekunden warten, funktioniert.
Zuallererst haben wir das Alpha bei 0,1.
Wir warten 0,1 Sekunden.
Dann verwandeln wir es wieder in eins.
Wir warten 0,1 Sekunden und starten dann
wieder die Schleife und wir machen das weiter.
Also werden wir gehen, okay,
und wir machen das weiter und das wird
einen blinkenden Effekt erzeugen,
nicht glauben Sie mir, das ist das raus.
Also gehe ich hier wieder rein.
Ich führe das Spiel aus und lass uns sehen, was passiert.
Also nähere ich mich dem Feind.
Er erschießt mich und nichts passiert, weil wir natürlich
jedes Mal denselben Fehler machen müssen
, den wir brauchen, um das Spieler-Sprite hinzuzufügen.
Dann ziehen wir den Körper,
wir sparen all das.
Wir werden die Änderungen übernehmen und wir werden laufen.
Und jetzt sollten wir sehen, dass wir, los geht's.
Du siehst, dass wir anfangen zu blinken.
Wenn wir aufhören zu blinken, bedeutet das,
dass wir nicht mehr unbesiegbar sind.
Das einzige, was hier ist, der einzige Trick,
knifflig hier, ist, dass wir sicherstellen wollen
, dass die Unbesiegbarkeitszeit und das Spülen
übereinstimmen, damit wir nicht anfangen
blinken und dann aus irgendeinem Grund
hör auf zu blinken, aber wir sind immer noch
unbesiegbar oder umgekehrt blinken wir weiter,
aber wir sind nicht mehr unbesiegbar, also sterben wir.
Wir sind uns nicht sicher, was passiert.
Es wird also ein kleines
Timing-Problem geben, das Sie anpassen und sicherstellen müssen
, dass es funktioniert.
Aber damit werde
ich Ihnen eine zusätzliche Herausforderung stellen.
Wie cool ist das?
Ich bin mir 100% sicher , dass du das nicht kommen sehen hast
, weil ich den Spieler unbesiegbar machen möchte
, wenn er den Torpedo oder den Strich macht
oder wie auch immer du es nennst.
Also diese Informationen, pausieren Sie das Video jetzt
und machen Sie den Player auch
unbesiegbar, wenn er den Torpedo macht.
Oh, okay, willkommen zurück.
Was machen wir hier drin?
Offensichtlich haben wir den Flasher genau hier,
aber wir möchten sicherstellen, dass wir
ihn von einer anderen Methode, nämlich dem Player-Controller, aufrufen
.
Wenn wir sind, wo ist es,
wo wechselt es die Pistole? Der Spieler schneidig.
Also gehen wir hier rein,
wir wollen sicherstellen, dass wir das nennen
, wann immer wir schneidig sind,
wie werden wir das machen?
Nun, es ist ziemlich einfach.
Wir müssen eine Co-Routine beginnen.
Also werden wir hier zurückblicken.
Haben wir eine Coroutine?
Wir werden weitermachen und die Komponente, die Spielergesundheit, erhalten
.
Während es Layer-Handler.
Da sind wir los.
Und hier drin werden wir,
bevor wir die Komponente bekommen, eine Coroutine beginnen.
Und ich denke, denn das ist wie heißt?
Und sieh einfach auf Nein,
eigentlich tut mir leid.
Punktstart Coroutine.
Und hier greifen wir auf den Blinker zu.
Können wir wissen, dass wir es auf Enumerator öffentlich machen müssen.
Also Flasher, das erlaubt es mir nicht.
Okay, also denke ich, wir müssen es so machen.
Also fang an Coroutine.
Und los geht's.
Spar dir das auf.
Wie Sie sehen können,
war mir selbst ich nicht sicher, wie das funktionieren wird,
aber anscheinend müssen wir mit der Coroutine beginnen.
Wir greifen auf die Komponente zu,
wir erhalten den Spieler-Health Handler und den NBA-Player-Handler.
Wir kriegen den Blinker.
Also spar dir das auf.
Testen wir das mal.
Zurück in unserem Spiel.
Wir führen das Spiel aus.
Und jetzt, wenn wir den Strich machen, gehen wir los.
Du kannst sehen, dass wir blinken.
Wie cool ist das ein Phi Dash?
Wir sollten sehen, dass ich es nicht verstehe,
okay, also hat das nicht funktioniert.
Machen wir uns darüber keine Sorgen.
Es wird vielleicht schwer sein, die Zeit zu beenden
, in der wir mit dem Schneide unsichtbar sind und
die Feind-Shooter haben.
Sie sich darüber keine Sorgen, denn
im nächsten Video werden wir
einige Stachelfallen erstellen.
Und das ist eine großartige Möglichkeit, unsere Unbesiegbarkeit zu testen
, wenn wir schneidig sind.
Wenn wir also durch die Sprites gehen, sterben die Sprites.
Wenn wir durch die Sprites gehen Während wir schneidig sind,
werden wir nicht sterben, weil wir unbesiegbar sein werden.
Das heißt also.
Es gibt auch noch eine Sache, dass wir, obwohl wir hier
auf dem Player-Controller blinken,
nicht unbesiegbar sind.
Und den Spieler unbesiegbar zu machen war die Herausforderung,
und das habe ich gerade bemerkt, bevor wir alles ausgeschaltet haben.
Um die Verwirrung zu vermeiden,
werde ich zurück tun und wo sind wir,
der Spieler Health Handler.
Ich werde eine Methode erstellen, die
keine öffentliche Leere ist.
Machen Sie die Ebene vernünftig, was nicht unsichtbar war,
okay, machen Sie ihr erfindenes Symbol.
Und hier drin werde ich zuerst
die Unbesiegbarkeit einschalten.
So ist wie und unbesiegbar wird gleich wahr sein.
Dann starten wir die
Coroutine des Flash One.
Und schließlich werden wir auch mit der Beschichtung beginnen.
Bitte, lass mich anfangen, um die Marke zu umwerben
, wie sie hieß?
Spieler ist nicht unbesiegbar.
Jetzt haben wir eine Methode, die alles macht, eine Methode,
um sie alle zu regieren.
Also können wir diesen von hier entfernen.
Wir können den Blinker entfernen und das Wahre.
Und wir können eine Sache tun und das heißt „
Make Player unbesiegbar“,
speichern Sie das und beenden Sie dann den Spieler-Controller.
Wir müssen den Flasher nicht manuell anrufen.
Wir können einfach sagen, Get Component,
Layer Health Handler, Punkt, Make, Spieler unbesiegbar.
Da sind wir los.
Testen wir das noch einmal.
Zurück in unserem Spiel, führe das Spiel aus.
Sollten wir das tun.
Wir können nicht einmal schließen.
Wir wurden zweimal angeschossen und sind gestorben.
Was ist das Problem?
Haben wir es nur eine Sekunde geschafft?
Lass es uns durch R3 schaffen.
Drei Sekunden, führe das Spiel aus.
Schon wieder.
Wir werden einmal, zweimal, dreimal angeschossen.
Okay, also das funktioniert.
Und wenn wir dann den Strich machen, gehen wir los.
Wir sind schneidig.
Okay, wir haben es nicht richtig getestet.
Im nächsten Video werden wir das sicherstellen.
Es tut mir leid für die Länge des Videos.
Auch das ist etwas Gutes.
Ich glaube, wir haben gelernt,
eine Coroutine aus einem anderen Skript zu starten.
Und wir haben auch gelernt, eine Methode zu erstellen
und alles an einem einzigen Ort zu komprimieren.
Ich denke, es ist gut,
eine gute Angewohnheit für sie.
Also vielen Dank fürs Zuschauen.
Ich hoffe es gefällt Ihnen,
ich hoffe, Sie begehen Ihre Änderungen.
Und wir sehen uns im nächsten Video, in dem
wir Stacheln erstellen werden.
Wir hatten auch eine zusätzliche Herausforderung, die sehr gut ist.