Willkommen zurück meine Spieleentwickler zu einem brandneuen extrem langen Video.
Ich weiß, dass du das satt hast.
Aber wie immer lohnt es sich extrem, weil wir so viel lernen.
Zuallererst erschaffen wir einen Feind.
Wir fügen eine Reihe hinzu.
Wir fügen eine Möglichkeit hinzu, diesen Bereich zu zeichnen.
Und wir führen das Spiel auch aus. Wir können den Feind erschießen.
Offensichtlich stirbt er vorerst nicht,
aber wir können in die Reichweite kommen.
Du siehst genau hier, dass sich der Spieler im Chase-Bereich befindet.
Es wird jedes Mal verschickt.
Wenn wir aus dieser kleinen Blase herauskommen, dann siehst du,
dass der Spieler außerhalb der Reichweite ist.
Verschwenden wir also keine Zeit mehr.
Und lasst uns mit diesem langen Video anfangen.
Oh, also ist es Zeit für ein paar Feinde.
Lasst uns anfangen.
Das erste, was wir tun werden, ist, dass wir
rechten Maustaste klicken , um ein leeres Spielobjekt zu erstellen.
Stellen Sie sicher, dass seine Position zurückgesetzt wird.
Und die Rotation und Skala und so weiter.
Und wir nennen das vorerst einfach den Feind, bis wir entscheiden, welcher Feind benutzen möchte.
Das nächste, was wir tun müssen, ist, dass wir in die Sprites gehen müssen.
Wir klicken mit der rechten Maustaste, um hier einen Ordner für die Feinde zu erstellen.
Und das Innere der Feinde wird in die Ressourcen eindringen und
wir werden das Monster und die Kreaturen hineinziehen.
Und lass es uns einfach hier reinlegen.
Also warten wir, bis alles importiert wird. Wir öffnen das.
Und wie Sie sehen können, haben wir vier Arten von Feinden
, die ich von Open Game Arts heruntergeladen habe.
Natürlich kannst du wie immer
deine eigenen Feinde finden.
Dies sind diejenigen, die ich benutzt habe und sie werden im Link in den Ressourcen sein.
Und was soll ich wählen?
Ich glaube, ich werde jetzt vier wählen,
die, mal sehen welche.
habe ich wirklich nicht nachgedacht.
Die Feinde.
Lass uns einfach das Skelett wählen und sehr generisch sein.
Wie Sie sehen können, haben wir den Angriff drei Todesfälle und so weiter.
Also gehe ich einfach in den Leerlauf.
Ich werde es mehrere Sprite Editor anwenden lassen.
Und lasst uns weitermachen und es nicht automatisch, sondern nach einer Rastergröße aufschneiden
.
Und wenn du etwas verwirrt warst von dem, was ich letztes Mal gemacht habe,
überprüfe ich einfach die Länge des gesamten Sprites.
Es sind also 600 und ich teile es durch wie viele Skelette wir haben.
Wir haben also vier oder eine einzelne Reihe,
also geteilt durch vier.
Das heißt, es sind wie immer 150 mal 150.
Aus irgendeinem Grund bin ich überrascht.
Also gehen wir in den Spleiß, Scheibe.
Splice, denke, das ist Filmsplice, sicher, Slice.
Da sind wir los. Bewerben Sie sich
Jetzt haben wir unsere kleinen Skelette genau hier.
Ich ziehe es.
Und die Szene, whoa,
das ist ein riesiges Skelett, oder?
Das ist Ironie.
Wenn du es nicht abgeholt hast.
Wie auch immer, wir schaffen es 50. Da sind wir los.
Wir können ihn immer noch nicht sehen, weil wir uns bewerben müssen.
Lasst uns weitermachen und hier eine Ebene schaffen, die der Feind oder die Feinde sein wird.
Und ich setze die Kugeln vor dem
Feind und auch dem Spieler, um eine Verschwörung des Feindes zu machen.
Und lasst uns weitermachen und den Feind genau hier setzen.
Also los gehst du.
Es ist immer noch ein sehr kleiner Feind.
Lasst uns das aufheben. Machen wir ihn ein bisschen größer.
Also ein untätiger 50, machen wir sie 32.
Wende das an.
Vielleicht noch größer.
Lasst uns ihn 16 machen. Also 16.
Jep. Da sind wir los.
Okay.
Das ist zu groß.
Wenn D vielleicht 20.
Ja, ich denke, 20 sind gut genug.
Das hat diese beiden Punkte geändert. Mal sehen, ob das hilft.
Ja, da sind wir los. Er sieht viel besser aus,
immer noch ein bisschen körnig,
aber darüber macht er sich keine Sorgen.
Wir haben ihn umsonst.
Wie auch immer.
Mal sehen, das ist der Körper.
Das wäre die Leiche.
Und ich werde es dem gegnerischen Spielobjekt unterbringen.
Jetzt haben wir den Feind genau hier und den Körper.
Stellen wir ihn einfach auf 00 ein.
Die Position ist natürlich relativ
zu den gegnerischen Spielobjekten oder jetzt bewegen wir uns
mit dem Feind und Sie können sehen, dass er hinter dem Spieler hinter der Waffe gerendert wird
und er auch hinter den Kugeln gerendert werden sollte. Geh nach rechts.
Jetzt, da wir dies haben,
müssen wir als Nächstes offensichtlich ein Verhalten oder eine Möglichkeit tun
, das Verhalten unseres Feindes zu kontrollieren.
Also gehen wir in die Assets, die Skripte,
wir klicken hier mit der rechten Maustaste,
erstellen vielleicht einen neuen Ordner
und nennen wir ihn die Feinde.
Geben Sie ein.
Vielleicht erstelle hier auch einen für den Spieler,
der Spieler-Controller sein wird.
Und mal sehen, wir erstellen jetzt auch eine für die Kugeln und die Zeit.
Erstellen Sie also einen neuen Ordner für die Aufzählungszeichen.
Und wir werden diese in die Kugel bringen.
Warum?
Weil wir die Kugel, den
Player Bullet Controller und den Aufpralleffekt haben.
Also und innerhalb der Feinde klicken Sie mit der rechten Maustaste,
erstellen Sie ein neues C Sharp-Skript,
und wir nennen es den
And-EMI-Controller drücken Sie Enter.
Warte, bis das kompiliert wurde. Okay, großartig.
Und jetzt können wir im Feind eine Komponente hinzufügen,
die der feindliche Controller ist.
Und wir werden das Drehbuch öffnen.
Okay? Also etwas, das Ihnen vielleicht aufgefallen ist, dass alle Tabs verschwunden sind.
Das liegt nicht daran, dass ich sie geschlossen habe,
weil wir das Verzeichnis von ihnen geändert haben.
Also haben wir zum Beispiel den Player-Controller von den Ordnerskripten in die Ordner-Player-Skripte verschoben
.
Deshalb haben wir es nicht, aber keine Sorge,
es ist immer noch,
wenn wir doppelklicken, können wir es leicht öffnen.
Lasst uns weitermachen.
Was brauchen wir hier im NMI-Controller?
Während wir vor allem eine Variable brauchen,
die die Geschwindigkeit der Feinde im Auge behält.
Und wir werden eine Variable brauchen, die den starren Körper des Feindes repräsentiert.
Also mache ich genau das.
Das sind sehr einfache Dinge.
Keine Notwendigkeit für viele Erklärungen.
Dies ist ein serialisiertes Feld,
ein Schwimmer und die feindliche Geschwindigkeit.
Und eine weitere Variable, die ein privater starrer Körper 2D sein wird.
Und ich habe mich gerade daran erinnert.
Und EMI, starrer Körper.
Der Körper muss kein Kapital sein.
Spar dir das auf.
Und ich erinnere mich nur daran, dass wir offensichtlich vergessen haben
dem Feind, der hier ist, ein paar Dinge hinzuzufügen.
Wir werden eine Komponente hinzufügen, die ein Box Collider sein wird.
Und lass uns weitermachen und es schaffen.
Vielleicht ist es ohne den Schild normalerweise besser,
die Box-Collider etwas kleiner als den tatsächlichen Körper zu halten.
Dies wird dazu führen, dass der Spieler Ihres Spiels genauer werden wollte.
Und wir können übrigens auch den Schatten unter dem Feind hinzufügen
, was eine ziemlich gute Idee ist.
Ich füge eine weitere Komponente hinzu,
die der starre Körper 2D sein wird.
Offensichtlich werden wir die Schwerkraftskala 0 machen.
Spar dir das auf, und wir schließen beide,
beide.
Verschieben Sie das Skript unter die beiden Komponenten,
oder wir lassen es einfach dort.
Wie hoch ist die Geschwindigkeit des Feindes?
Wie hoch ist die Geschwindigkeit des Spielers zuerst, okay
, dann lass uns den Feind 5,5 davon beschleunigen.
Spar dir das auf. Okay, großartig.
Jetzt haben wir den Feind.
Wir haben einen starren Körper und einen Collider bei ihm
damit wir ihn erschießen und körperlich mit ihm interagieren können.
Was Sie jetzt tun möchten, ist, dass wir den Feind auf den Spieler zubewegen wollen,
aber nicht ständig,
nur wenn der Spieler nahe genug ist.
Wir brauchen also eine Variable für die Reichweite , in
der der Spieler befehlen wird, damit der Feind ihn nicht mehr jagen kann.
Und wir brauchen auch die Richtung, in die sich der Feind bewegen wird.
Als erstes werden wir also
ein serialisiertes Feld erstellen, das ein
Float mit dem Spieler- oder Spieler-Verfolgungsbereich sein wird,
nennen wir es den Spielerkettenbereich.
Also die Reichweite, die der Spieler sein sollte, um ihn zu jagen.
Und wir schaffen einen privaten Faktor drei.
Und dies wird die Richtung sein, um sich in die Richtung zu bewegen und zu speichern.
Okay, großartig.
Lasst uns wieder hier rein gehen.
Und was ist der Chase-Bereich? Und weißt du was?
Behalten wir es für später auf.
Und ich zeige dir eine sehr raffinierte Art, wie wir zeichnen können.
Wie werden wir wissen, was die Verfolgungsjagd reicht?
So kann ich zum Beispiel damit beginnen,
den Änderungsbereich fünf oder zehn oder 21 zu machen.
Aber was heißt das?
Was bedeutet es den Verfolgungsbereich hier drin.
Also müssen wir jedes Mal diese kleinen Boxen hier drin berechnen
, um festzustellen, wie weit oder nah deklariert ist.
Nun, natürlich nicht.
Was wir tun werden, ist, dass wir hier einen Kreis zeichnen
, der nur im Szenenmodus erscheint,
aber nicht innerhalb des Spielmodus.
Wie werden wir das machen?
Wenn wir zurückgehen und hier haben wir etwas namens Draw Gizmos.
Und das findest du in der Unity-Dokumentation.
Und hier geht's,
Sie können sehen, dass wir etwas unter dem Mono-Verhalten haben,
nämlich OnDraw Gizmo select.
Und Sie können direkt hier sehen implementieren das OnDraw wird ausgewählt, um Gizmo-Objekt zu
zeichnen.
Beachten Sie, was wir gesagt haben, wenn das Objekt ausgewählt ist und Sie direkt hier sehen können,
haben wir den Gizmos-Test und wie wir es verwenden können.
Also erstellen wir ein ungültiges OnDraw-Gizmo.
Und hier können wir die Gizmo-Farbe erstellen, damit wir auswählen, welche Farbe wir zeichnen möchten.
Und was wollen wir zeichnen,
welches ist die Sphäre.
So können wir auf die Troposphäre klicken und wir können sie genau hier sehen,
was die Öffentlichkeit Angst zieht,
eine solide Kugel mit Mitte und Radius zeichnet.
Lassen Sie uns das also umsetzen.
Und verwende es, um unseren eigenen Kreis oder eine eigene Kugel um den Feind zu zeichnen und seine Reichweite zu kennen.
Und wenn wir uns die Methode genau ansehen und hier sehen wir, dass das Angst hervorruft,
brauchen wir ein Zentrum und wir brauchen einen Radius.
Wie sollte der Radius sein?
Denken Sie darüber nach, während wir diese Methode erstellen.
Also hier drin werden wir auf Draw Gizmos ausgesucht sagen.
Und wir werden zuerst eine Farbe wählen.
Es wird also die Gizmos-Punktfarbe
sein und es wird gleich der Farbe sein, sagen wir rot.
Spar dir das auf.
Als nächstes werden wir auf den Gizmos Punkt Draw Wire, Kugel zugreifen.
Warum ist der Blick auf die Kugel, die eine Drahtgitterkugel mit einem Zentrum und dem Radius zeichnet.
Es ist also ein bisschen anders als die Kugel,
aber weil wir in 2D spielen,
müssen wir nicht die gesamte Kugel zeichnen,
wir brauchen nur den Draht um sie herum.
Und mal sehen, was das Zentrum sein sollte.
Das Zentrum sollte offensichtlich die Transformationspunktpositionen sein oder
Transport ist der Transport des Objekts, das über den feindlichen Controller verfügt.
Ich weiß, dass ich es eine Million Mal gesagt habe,
aber für diejenigen unter euch, die immer noch verwirrt sind, weiß ich,
dass ich ein bisschen verwirrt war, als ich vor ein paar Jahren, vor vielen Jahren damit angefangen habe
.
Und ich erinnere mich, woher kommt das?
Nun, es ist die Transformation des Objekts, auf dem der feindliche Controller steht,
was bedeutet, dass es dieser V-Feind ist.
Dies ist der Transformator, der hier drin spricht.
Wie hoch ist der Radius?
Nun, hast du darüber nachgedacht?
Wie groß sollte der Radius sein?
Offensichtlich ist es der Spieler-Chase-Bereich.
werden wir retten.
Wir werden zurück in Unity gehen.
Und nun, während der Kreis, den du vielleicht fragst, naja,
wenn du dich an ein paar Videos erinnerst, haben wir die Spielereien ausgeschaltet.
Vielleicht hast du es schon gesehen,
du hast es nicht bemerkt, aber wenn wir darauf klicken, los geht's.
Und warum haben wir es ausgeschaltet?
Weil wir diese Kamera und das lästige Symbol der Kamera hatten.
Was wir tun können, ist, dass wir die Spielereien öffnen können.
Sie können sehen, dass wir hier viele Dinge abwählen können,
aber eines der wichtigsten ist, dass wir diese Icons etwas kleiner machen können.
Also los gehst du.
Wir sehen die lästige Kamera nicht mehr los, richtig?
Sieh dir diesen großen, riesigen Kreis an.
Machen wir es ein bisschen kleiner.
Und Sie können sehen, dass es sich sofort ändert.
Ich schaffe es ja groß.
Ich setze den Spieler dort ein.
Und das nächste, was wir tun müssen, ist, dass wir die Entfernung zwischen dem Spieler und dem Feind berechnen und sehen müssen
, ob sie kleiner als die Reichweite ist.
Wenn es weniger ist, können wir anfangen, den Spieler zu jagen.
Wenn es nicht weniger als ist,
jagen wir den Spieler nicht.
Was ist der erste Schritt zu tun?
Nun, wir haben die Reichweite,
wir haben die Transformationsposition des Feindes.
Das nächste, was wir brauchen, ist ein Hinweis auf den Spieler.
Wie bekommen wir die Referenz des Spielers?
Nun, wir müssen zunächst eine Methode verstehen, die ich Ihnen zeigen werde,
nämlich die Objektpunktsuche Objekte des Typs.
Und was das bedeutet,
das Objekt t bedeutet, dass es davon abhängt, wonach das Objekt Sie suchen.
Wenn Sie also das Objekt finden,
wird d zu diesem Objekttyp.
Also das Objekt, der erste Akt des geladenen Objekts, das dem spezifischen Typ entspricht.
Es gibt also das erste geladene Objekt des Typs zurück oder Sie können ihm Ihren Typ geben.
Und wenn wir hier schauen,
können wir ein paar Beispiele sehen.
Nehmen wir an, wir wollen den Canvas-Renderer finden.
Wenn Sie nicht wissen, was der Canvas-Renderer ist,
sich keine Sorgen, wir werden uns später damit befassen.
Aber schauen Sie sich vorerst den Canvas-Renderer an.
Wir erstellen eine Canvas-Renderer-Pipe-Variable mit dem Namen Canvas,
und wir verwenden ein finites Objekt des Typs und wir erhalten den Canvas-Render.
Jetzt bekommen wir einen Hinweis darauf.
Und weil wir nur einen Spieler haben,
können wir das benutzen.
Wenn wir mehrere Spieler hätten,
hätten wir es nicht tun können, weil
wir offensichtlich nur den ersten Akt von einem finden.
Also schau diese Methode nach, finde
sie, studiere sie, verstehe sie.
Und dann musst du diese Herausforderung machen.
Du musst das Spielerobjekt finden.
Erstellen Sie also eine Variable vom Typ transformiert, um den Spieler darzustellen, den wir jagen möchten
, und verwenden Sie Objekte vom Typ 2 suchen, suchen Sie den Spieler.
Der Typ sollte der Player-Controller sein.
Warum? Weil wir einen bestimmten Spielertyp finden müssen.
Wie identifizieren wir den Spieler?
Er ist genau wie alle anderen Objekte.
Was macht ihn einzigartig?
Es ist nicht nur der Name, den Sie durch den Namen oder den Körper oder das On finden können.
Wir müssen etwas Bestimmtes verwenden.
Und das ist etwas Bestimmtes ist das Player-Controller-Skript.
Aus diesem Grund ist der Typ des Objekts, das Sie finden möchten, der Player-Controller.
Verwenden Sie schließlich die Punkttransformation für das Objekt, das Sie finden, und
weisen Sie es der Variablen zu, die wir erstellt haben, y dot transformation.
Sie sollten dies wissen, weil der Typ, den wir erstellen werden, die Transformation ist.
Warum ist es Transformation?
Nun, weil wir die Distanz bekommen wollen.
Wie bekommen wir die Distanz?
Nun, offensichtlich weil es eine Transformation ist.
Also pausiere das Video sofort.
Geh, mach die Herausforderung.
Okay, also zuerst
werden wir eine private Transformation erstellen und den Spieler, den er jagen soll.
Jetzt werden wir sagen, dass der
Spieler, den man jagen soll, gleich ist, Objekte des Typs zu finden.
Und der Typ, nach dem wir suchen, ist der Player-Controller.
Und wenn wir ihn finden, weil wir zwei Chase als Transformation erklärt haben,
werden wir einfach sofort von mir auf die Transformation zugreifen.
Ich hoffe also, dass Sie die Herausforderung bewältigt haben.
Ich hoffe, es war nicht allzu schwer.
Ich weiß, dass es hier ein paar Tricks gab,
obwohl es das erste Mal ist, dass Sie das Objekt des Typs finden,
bin ich mir sicher, dass Sie zumindest in der Lage waren
, diesen Teil zu machen, wenn Sie das nicht hätten herausfinden können,
keine Sorge darüber war rechtzeitig, wird alles verstehen.
Aber jetzt besteht der nächste Schritt darin, die Entfernung zu berechnen.
Also werde ich zuerst eine if-Aussage erstellen.
Und dann schreibe ich Vektor 3 Punkt.
Und Sie können sehen, dass wir hier eine Methode haben, die die Entfernung ist und
die Entfernung zwischen a und B zurückgibt
Also werden wir das öffnen.
Was ist das A?
Es wird die Transformationspunkt-Position sein. Und was ist das B?
Es wird der Spieler sein, der die Punktposition verfolgt.
Da gehst du.
Und was ist die Bedingung, wenn der Abstand zwischen der transformierten Position,
die der Feind und der Spieler ist, zu jagen,
der der Spieler ist und weniger als die Verfolgungsreichweite des V-Spielers ist.
Dann werden wir unseren Feind bewegen.
Aber das ist für ein anderes Video.
Im Moment verwende ich einfach das Debug-Punktprotokoll.
Und ich sage, dass der Spieler im Chase-Bereich ist.
Und eine andere Aussage, die wir sagen werden, dass diese Zeile dupliziert wird, verschiebe sie nach unten.
Und es wird sagen, dass
Spieler außerhalb von Chase außerhalb der Verfolgungsjagd liegen.
Spar das wieder in unserem Spiel auf.
Lass uns wissen, was ich einfach nur machen will.
Ich mache das nur vorerst öffentlich,
nur damit wir sehen können, was passiert.
Sie werden also feststellen, dass wir am Feind gerade
einen Spieler verfolgen müssen, aber es gibt nichts.
Wir werden nichts hinzufügen.
Wir werden das Spiel einfach laufen. Da gehst du.
Sie können sehen, dass jetzt der Untergangsspieler, wenn ich darauf klicke, es
die Referenz und jetzt das Skelett gibt,
unser Feind hat einen Hinweis auf den Spieler.
Ich kann ihn sogar erschießen.
Also gehe ich in die Konsole.
Was ist das falsch?
Doppelklicken wir.
Okay, also dieser und der Spieler ist außerhalb der Verfolgungsjagd.
Lassen Sie mich das Spielfenster neben die Szene stellen
, damit wir den Kreis hier klar sehen können.
Wenn ich also nahe genug komme,
dann kannst du sehen, dass der Spieler jetzt im Chase-Bereich ist.
Wenn ich ausgehe, ist der Spieler außerhalb der Reichweite.
Wenn ich als NJ seltsam spiele,
los geht's, alles funktioniert einwandfrei.
Ich hoffe es gefällt dir.
Und das nächste Video wird unseren Feind tatsächlich bewegen,
nicht nur etwas in den Debug drucken, in das Protokoll.
Lassen Sie mich dieses Debug-Punkt-Protokoll entfernen.
Spar dir das auf.
Lassen Sie mich das noch einmal privat machen, weil wir es nicht sehen müssen.
Ich wollte es nur demonstrieren.
Vergiss nicht, alle deine Dateien zu inszenieren.
Und bevor ich gehe,
was wollte ich euch auch allen erzählen.
Ich hoffe es gefällt dir.
Wir sehen uns das nächste Mal.