Willkommen zurück, Meine Lieblingsspielentwickler.
In diesem Video werden wir tatsächlich
Nahkampf angreifen.
So wie wir dies tun werden, ist
dass wir eine Methode für den Angriff erstellen.
Und hier werden wir einen Überlappungskreis um einen bestimmten Punkt erstellen
.
Wir werden sicherstellen, dass wir dieses Verteidigungssystem jedes Mal anrufen
, wenn wir ein Schwert schwingen.
Sie mich Ihnen also ohne weiteres zeigen,
Lassen Sie mich Ihnen also ohne weiteres zeigen, was wir hier gemacht haben.
Also steht der Feind auf.
Er macht einmal Schaden zweimal, dreimal, und Sie bemerken,
dass er uns nur schadet, wenn wir
tatsächlich mit dem Schwert auf den Kopf geschlagen werden.
Verschwenden wir also keine Zeit mehr.
Und lass uns anfangen.
O k.
Also lasst uns jetzt den malaiischen Angriff erstellen.
Offensichtlich
schwingt der Boss gerade im Gange,
tut mir leid, das Schwert.
Er schwingt es herum, aber er
eigentlich keinen Schaden.
Also werden wir einen tatsächlichen Schaden anrichten.
Also werde ich dir zuerst
erklären, wie man einen Angriff macht.
Offensichtlich gibt es viele,
viele Möglichkeiten, Nahkampfangriffe zu erzeugen,
aber auf diese Weise werden wir
aber auf diese Weise werden wir sie implementieren.
Tut mir Leid dafür.
Und so werden wir am meisten daraus lernen.
Das erste, was wir tun werden, ist, dass wir dem Spieler von einer bestimmten Position aus einen Schadenskreis erzeugen
.
Jedes Mal, wenn sich die Spielersortierung
in dieser Position in der Animation befindet,
erstellen wir genau hier einen Kreis
oder einen überlappenden Kreis,
dem Sie später wissen werden, dass wir prüfen werden
ob der Spieler darin ist der Radius des Kreises
wird er beschädigt.
Wenn er es nicht ist, wenn er rechtzeitig davonkommt,
wirst du nicht beschädigt.
Wir werden also sicherstellen, dass wir einen sogenannten physikalischen 2D-Überlappungskreis verwenden
, wenn der Puls angreift.
Denken Sie also an die Physik bis zum Überlappungskreis.
Und lasst uns weitermachen und ein paar Variablen erstellen
, um genau das zu tun.
Wir werden
diesen Angriff direkt hier vom Skript aus erledigen.
Also lasst uns weitermachen und loslegen.
Das erste, was wir tun werden,
ist ein serialisiertes Feld zu erstellen.
Und lasst uns weitermachen und diesen
privat machen, weil wir bereits wissen, was es tut.
Also hat der Schaden Betrag
und es wird als Zahlungsausfall gleich 20 sein.
Dann müssen wir eine Transformation erstellen
, die den Angriffspunkt darstellt.
Also Angriffspunkt.
Und warum haben wir einen Angriffspunkt?
Denn wenn ich dich hier zurückbringe,
wirst du sehen, dass wir eine bestimmte Mitte haben
und dies wird der Angriffspunkt sein
, um den wir unseren Kreis aufbauen und nach dem Spieler suchen werden
.
Also werden wir offensichtlich
einfach das Erstellen dieses Spielobjekts umleiten.
Aber bevor wir das tun,
wird offensichtlich auch etwas namens Radius brauchen,
nämlich der Angriffsradius.
Also nicht zu verwechseln mit der Angriffsreichweite und.
Die Angriffsreichweite ist also
die Reichweite, in der wir angreifen werden.
Der Angriffsradius ist der Radius , in
dem der Spieler beschädigt wird, wenn er dort bleibt.
Und dann werden wir endlich ein serialisiertes Feld vom Typ Ebenenmaske erstellen
.
Und es wird heißen, was
ist Spieler und warum nennen wir es so?
Nun, ich, seit ich mit Unity angefangen habe,
alle Foren, YouTube-Videos,
andere Kurse und generell die Unity-Community immer das verursacht,
was Player ist, wann
wir eine Art Ebene festlegen wollen.
Also, und nicht nur der Spieler,
manchmal heißt es „Boden“.
Also bin ich daran gewöhnt.
Man kann es nennen, wie immer Sie wollen,
aber das ist der allgemeine Konsens darüber.
Und bevor wir weitermachen,
brauchen wir eine Möglichkeit, diesen Radius tatsächlich zu erkennen.
Also verwenden wir die ausgewählten void onDraw-Gizmos.
Wir haben das schon gemacht.
Nichts allzu ausgefallenes hier drin.
Also Gizmos Farbe, Farbe Rot.
Und schließen wir das einfach ab. Drücken Sie Enter.
Und hier gehen wir zu
den Gizmos Draw Wire, Sphäre.
Wir sind Sphäre und es wird auf dem
Punkt der Angriffspunktposition sein.
Und es wird der Angriffsradius als Radius sein.
Also los geht's, Die Andro-Kugel,
wie Sie sehen können, ein Zentrum und ein Radius.
Wir gaben ihnen gerade die
Angriffsposition, den Angriffsradius.
Also zurück in unserem Spiel.
Und müssen wir warten, bis etwas kompiliert wird?
Wisse, dass das schnell war.
Also klicke ich mit der rechten Maustaste und erstelle
ein leeres Spielobjekt als Kind des Chefs.
Und wir nennen es den Angriffspunkt.
Und auf diesen Kelly-Boss hier unten
werde ich den Angriffspunkt hinzufügen.
Was ist der Spieler?
Es ist der Spieler und der Angriffsradius.
Ich gehe einfach in die Szene, um zu sehen,
was los ist. Und da sind wir los.
Offensichtlich liegt das, wie wir es immer tun,
an Ihnen.
Wo willst du deine Animation einstellen oder,
tut mir leid, ich habe an die Animation gedacht.
Wo willst du den Angriffspunkt festlegen
und wie groß willst du ihn schaffen?
Also scrolle ich nach unten und sehe den Angriff.
Also bei dem Angriff gehen wir los.
Dies ist der Punkt, an dem wir angreifen werden,
also genau hier.
Und ab diesem Punkt können wir bestimmen,
wie viel wir den Radius bewegen wollen.
Und beachten Sie, dass, weil
die OnDraw-Gizmos auf dem Buscontroller sind,
das bedeutet, dass wir
hier nur ein wenig ansteigen, machen Sie es einfach auch.
Ich denke, zwei sind eine angemessene Zahl,
aber ich werde es drei machen.
Also nur zu Testzwecken.
Also werde ich es ein bisschen bewegen Skelly.
Und wenn wir dann einen weiteren Angriff hier sehen,
haben wir es nicht getan, los geht's.
Wenn der Spieler irgendwo in diesem Radius steht,
wird er gehabt.
Also lasst uns das ohne weiteres
speichern und lasst uns eine Herausforderung ausstellen
denn dieses Mal wirst du den Angriff machen.
Zuallererst müssen Sie eine Methode erstellen,
und der Chef-Controller macht sie öffentlich.
Warum? Weil wir es woanders brauchen.
Dann werden wir nach dem Überlappungskreis bei den Unity-Hunden suchen
.
Das wird dein Job sein.
Du musst sehen, wie alles funktioniert.
Und du musst prüfen, ob sich
der Spieler im Angriffsradius befindet.
Wenn ja, werden wir Schaden anrichten.
Rufen Sie diese Methode mit einer Ereignisanimation auf.
Also wenn das aus dem Weg ist,
denk dran, lass mich dir einfach etwas zeigen.
Es nennt sich die Physik zum Überlappungskreis.
Und jetzt pausiere das Video und mach den Shalon.
Oh, okay, willkommen zurück.
Also hier drin werde ich zuerst weitermachen
und eine öffentliche Leere schaffen.
Und ich nenne es die Angriffsschicht.
Großartig.
Was machen wir hier drin?
Zuallererst müssen wir verstehen,
wie der 2D-Überlappungskreis der Physik funktioniert.
Sagen wir also, ich bin ein ahnungsloser Spieleentwickler.
Ich habe keine Ahnung, wie die Physik zum Überlappungskreis funktioniert.
Zuerst checke ich einfach hier ein.
Also die Deklaration, eine öffentliche Statik,
keine Notwendigkeit, sich um die Statik zu sorgen.
Wir können es ohne das Statische schaffen.
Ich scrolle hier runter.
Ich sehe, dass es sich um einen Collider-2D-Überlappungskreis handelt.
Wir haben einen Punkt, wir haben einen Radius, eine Ebenenmaske,
ich meine Tiefe und eine maximale Tiefe.
Das ist also für die Z-Koordinaten
, wenn wir in 3D arbeiten
, nehme ich an, oder vielleicht enthält etwas Objekt O, Objekte,
die sich im Z befinden
.
Das werden wir nicht brauchen.
Wenn wir nach unten scrollen, können wir sehen, dass wir hier tatsächlich
auch Ergebnisse erzielen können.
Und wir können auch Kontaktfotos verwenden
, die in einem der Videos über Kontaktfilter erfahren werden,
wir erhalten ein Array,
aber lassen Sie uns auch nach unten scrollen.
Okay, also das war's, das ist alles was wir brauchen.
Wir können auch Listen zurückgeben.
Das ist es, was wir brauchen und dies gibt einen Collider zurück, der
2D-Collider, der den Kreis überlappt, prüft
ob ein Collider in den kreisförmigen Bereich fällt.
Der Kreis definiert Koordinaten usw. neu.
Und hier drin können Sie tiefer in die Z-Koordinaten eingehen
.
Aber wie auch immer, das brauchen wir Physik,
den Überlappungskreis zurück in unserem Spiel.
Was wollen wir hier drin machen?
Zuallererst müssen wir den Spieler holen
, den wir angreifen.
Also erstelle ich einen Collider 2D.
Und es wird der Spieler sein, der angreift.
Und ich werde sagen, dass er dem 2D-Punkt-Überlappungskreis der Physik entspricht
.
Und ich werde sagen, was haben wir hier drin?
Zuallererst haben wir den Punkt.
Was ist der Sinn? Offensichtlich ist es
der Angriffspunkt, diese Position.
Dann brauchen wir den Radius.
Es ist also der Angriffsradius.
Und dann brauchen wir das was ist Player, weil
wir nur den Spieler treffen wollen.
Dann werden wir hier prüfen, ob der Spieler
Layer, Layer angreifen soll.
Also, okay, also Spieler zum Angriff ist anders als null.
Warum sagen wir also, dass er anders ist als null?
Wenn wir hier reinschauen, speichern wir uns das.
Das ist zuerst,
drucke den Spieler aus, um anzugreifen.
Also spar dir das auf.
Und lasst uns gehen und wiedererlangen,
und fügen wir es dem Ereignissystem hinzu.
Also wo wollen wir, dass das heißt?
Wenn ich hier in den Angriff gehe,
schwinge ich das Schwert und gerade während er schwingt und verkauft,
werde ich die Funktion anwenden.
Und welche Funktion sollten wir anwenden?
Auf dieser Ebene.
Und dann wieder, wenn wir hier runtergehen,
werden wir eine andere Option hinzufügen,
tut mir leid, ich meine, ein anderes Ereignis.
Und wir werden den Spieler angreifen.
Also spar dir das auf, führe das Spiel aus.
Und mal sehen, was wir mit Null meinen.
Also lass ihn uns angreifen.
Also los geht's, Doom Player, machen Layer.
Da sind wir los. Wenn wir schwingen, gehen wir los.
Wir können sehen, dass wir hier eine Null haben
, als wir draußen waren.
Also weil wir weitermachen werden, weil wir den
Spieler dazu bringen werden, anzugreifen, die eine Komponente durch den Spielergesundheitshandler erhält
.
Und wie war die Methode als dort?
Ich glaube, es war Schaden
den Spieler und die Höhe des Schadens,
der Schadensbetrag, den wir hier verursacht haben.
Es scheint also, dass ich hoffe, dass Sie verstehen, was wir nicht getan haben.
Wenn wir nicht haben oder
nicht nach dem Spieler suchen, ist der Null.
Wir werden also auf den Spieler-Health Handler zugreifen,
der nicht existiert,
was zu einem Fehler führt.
Wir haben also diesen zusätzlichen Sicherheitsschritt.
Wir prüfen, ob der anzugriffende Spieler anders ist als null.
Wenn ja, greifen wir an oder beschädigen tatsächlich.
Wenn nicht, bedeutet das, dass er sich außerhalb des Radius befindet.
Das heißt, wir tun es nicht.
Kim und ich werden das nur zu Testzwecken hier behalten
.
Also lasst uns das alles retten.
Und lasst uns zurück in unser Spiel und hier gehen und lasst uns rennen und sehen,
was passieren wird.
Der Spieler kommt also nahe, er kämpft
und wie Sie sehen können,
erleidet er jedes Mal Schaden.
Also werde ich den Dünenspieler maximaler Hilfe ein bisschen größer machen
. Maximale Gesundheit.
Machen wir es 500 für die Testzwecke, führe das Spiel aus.
Wie cool ist das, dass wir das Leben jedes Mal ändern können
, wenn wir wollen,
weil wir das Spiel erstellt haben.
Also los geht's, 202020.
Da sind wir los. Du siehst, dass wir getroffen werden.
Wir verstehen es.
Wir werden jedes Mal getroffen.
Wir entfernen oder reduzieren unser Leben um 20.
Und du denkst vielleicht,
warum werden wir nicht auf den Schwung getroffen?
Nun, lass mich es dir zeigen.
Also habe ich versucht, getroffen zu werden.
Zweitens. Werde getroffen.
Okay, das hat also nicht gut funktioniert, weil wir
in ein paar Sekunden etwas unbesiegbar sind.
Also kannst du sehen,
lass mich das einfach versuchen.
Ich weiß, dass es nicht funktioniert.
Also lass mich sehen, ob ich die Sensibilitätszeit auf 0 entfernen kann.
Und so werden wir nicht unbesiegbar.
Sie werden feststellen, dass wir
dem Weg nach oben und auf dem Weg nach unten, auf dem Weg nach oben und auf dem Weg nach unten getroffen
werden.
Und wie Sie sehen können, haben wir unserem Spieler deshalb
ein wenig Unbesiegbarkeit hinzugefügt
da es nicht viel Spaß macht
jedes Mal beschädigt zu werden.
Und wenn wir immer wieder beschädigt werden, wird der Spieler irgendwann
sterben, um seinen Wunden zu erliegen.
Sie können also genau hier sehen, dass wir
aufgrund des On-State Enter ein paar Fehler haben.
Wir versuchen den Spieler zu finden,
aber es gibt keine Ebene.
Jetzt könnten wir das entweder behalten.
Offensichtlich sollten wir das nicht behalten
, weil dies ein Fehler ist.
Dies kann zu Problemen führen,
kann dazu führen, dass einige Leitungen nicht berücksichtigt werden.
Ein Vacua hier drin ist also, einfach zu
überprüfen, ob er verfügbar ist und so weiter und so fort.
Aber machen wir uns darüber keine Sorgen.
Machen wir uns Sorgen um die Kernmechanik,
die kleinen Details, die wir später bearbeiten können.
Mit dem Gesagten hoffe ich, dass es Ihnen gefällt.
Ich hoffe, du begehst deine Änderungen
jedem einzelnen Video.
Ich hoffe, du hast mir eine Bewertung hinterlassen
weil es mir sehr hilft.
Und wird das aus dem Weg gehen?
Im nächsten Video werden wir unseren Chef in die zweite Stufe bringen
, zweite oder zwei,
die wütende Phase.