Hey, willkommen zurück, meine Spieleentwickler.
In diesem Video haben wir uns nicht viel verändert, aber was wir getan haben,
ist, dass wir gerade
angefangen haben, ein richtiges Waffensystem einzurichten.
Wir haben den Schießmechaniker vom Untergangsspieler auf die eigentliche Waffe verschoben
,
die die Sharp-Konsole ist.
Wie Sie sehen können, gibt es hier nichts Neues.
Wir haben gerade ein paar Änderungen vorgenommen.
In diesem Video dreht sich alles darum,
nennen wir es ein Upgrade
Ihres Projekts, damit Sie an einen bestimmten Punkt kommen.
Sie haben alle grundlegenden Mechaniken, die Sie wollen,
aber jetzt ist es an der Zeit, sie viel effizienter zu gestalten.
Verschwenden wir also ohne weiteres
keine Zeit mehr.
Und lasst uns die Projektnote nochmal machen.
0 Fall.
Es ist also an der Zeit, ein fortschrittlicheres
und professionelleres Schießsystem zu entwickeln.
Das erste, was wir tun werden , ist, dass
wir alles, was mit dem Schießen vom Player-Controller zu tun hat, in ein separates Skript verschieben
alles, was mit dem Schießen vom Player-Controller zu tun
Schießen vom Player-Controller
in ein separates Skript
, das ich gerade erstellen werde.
Wenn ich in die Drehbücher gehe
und lass es uns vielleicht ein bisschen größer machen.
So können wir sie mindestens und zwei Reihen sehen.
Diese, okay, los geht's.
Ich gehe gleich hier rein.
Ich erstelle einen Ordner, der als Waffe bezeichnet wird
, oder
nennen wir ihn das Waffensystem.
Habe Enter.
Und ich werde hier ein Skript erstellen
, das das Waffensystem sein wird
.
Drücken Sie Enter und warten Sie, bis es kompiliert ist.
Und da sind wir los.
Und jetzt einen Tag. Danke.
Es war nur ein Drehbuch.
Wie auch immer, ich werde das Feuer zu einem Kind der Schrotflinte machen
,
und es wird uns nicht erlauben, das Fertighaus zu öffnen.
Los geht's, mach es zu einem Kind, heb dir das auf.
Geh zurück in unser Spiel. Da sind wir los.
Jetzt haben wir, und manchmal, wenn
Sie die Prefabs hinzufügen möchten,
machen Sie sich die Dinge zum Kind und machen Eltern.
Manchmal müssen Sie den zusätzlichen Schritt benötigen
, um das gesamte Prefab tatsächlich zu ändern.
Und das nächste, was wir tun werden,
ist, dass wir dieses Waffensystem zur eigentlichen Schrotflinte hinzufügen
werden.
Jetzt wird die Schrotflinte alle Schießereien erledigen.
Lassen Sie uns zunächst das Waffensystem öffnen.
Und wenn ich in den Layer-Controller schaue, wo ist er?
Klicken wir hier rein.
Während der Spieler-Controller aber okay ist.
Also los geht's. Wie Sie sehen können,
haben wir gerade so viele Skripte.
Aber wie auch immer, was wir tun wollen, ist, dass wir uns bewegen wollen
, und dies sollte eine separate Methode sein.
Was wir tun wollen, ist, dass wir den gesamten Spielerschießmechaniker vom Spieler-Controller in das Waffensystem bewegen
den gesamten Spielerschießmechaniker
wollen.
Ich habe das vielleicht schon mal erwähnt.
Wir wollen nicht, dass der Spieler alles erledigt.
Zum Beispiel wollen wir nicht, dass der Spieler damit
umgeht, wie Kugeln fliegen,
und wir wollen nicht, dass der Spieler damit umgeht, wie Waffen funktionieren.
Mit dem Gesagten
werde ich Ihnen eine Herausforderung stellen.
Und Ihre Herausforderung wird darin bestehen, das Feuer auf das richtige Skript zu verschieben
.
Also ein paar der Feuermethode vom
Spieler-Controller bis zum Waffensystem-Skript.
Stellen Sie sicher, dass die beiden alle richtigen Variablen damit kopieren
und alles in Einheit setzen und testen Sie es aus, stellen Sie sicher,
dass es ordnungsgemäß funktioniert.
Bei dieser Herausforderung geht es also nur
darum, wie Sie Ihr Skript aktualisieren,
wie Sie Ihr Projekt aktualisieren und gewinnen.
Manchmal beginnen Sie mit Ihrem Projekt.
Sie haben nicht den gesamten großen Plan dafür,
also müssen Sie Anpassungen vornehmen.
Dies wird nur eine Übung sein
wie man Dinge aus einem Skript,
dem nächsten, um es besser zu machen,
ich mache es vor dir,
also mach dir keine Sorgen darüber.
Wir sorgen dafür, dass alles richtig funktioniert.
Aber im Moment pausiere das Video und erledige die Herausforderung.
Oh, okay, willkommen zurück.
Also was werden wir hier drin machen?
Wir werden das alles auswählen.
Ich werde so abschneiden, Control X. Ich werde
es hier hineinlegen oder wissen was,
lass uns das Update behalten und anfangen.
Wir könnten sie brauchen. Ich
füge hier alles ein, damit du sehen kannst
, dass wir eine Menge haben, die wir erledigen müssen.
Also hier drin brauchen wir ein paar Variablen,
brauchen wir ein paar
die es sind, lass mich nach oben gehen.
Zuallererst werde ich das
kommentieren, außer das.
Dann checke ich hier ein, was brauchen wir?
Wir brauchen den Swap und automatisieren die Kugel den fernen Punkt.
Okay.
Sehen wir uns also als automatische Zeit der Waffe zwischen Schüssen,
gekonterten Schüssen, Feuerpunkt an. Da geht er hin.
Das sind es.
Variablen und ich füge sie hier ein.
Spar dir das auf.
Mal sehen, was wir sonst noch haben?
Haben wir hier einen Fehler?
Nein, ich glaube nicht, dass das die ganze Mechanik war.
Also wieder hier drin, was haben wir sonst noch?
0. Wenn der Spieler also sprengen kann,
ist das Dashing nun offensichtlich Teil der
Spielermechanik des
Spielers, der springt.
Was wir also brauchen, ist eine Möglichkeit für
uns, einen Verweis auf den Strich zu bekommen.
Ist der Spieler also schneidig oder nicht?
Was können wir tun?
Wenn wir hier nach unten scrollen,
können wir eine Methode erstellen.
Und wenn ich hier oben schaue,
kannst du den Strich als privat ansehen.
Und was wir tun können, ist, dass wir hier eine Methode erstellen können.
Und das sind Dinge, die wir immer mehr verwenden werden
, wenn wir diese Art von Methode ausführen.
Es ist also ein öffentlicher Bool und ist Layer-schneidig.
Also hier drin, alles, was du tun wirst,
ist zurückzukehren, kann stürzen.
Und ich füge ein Ausrufezeichen
weil du denk daran, wie die Bindestriche funktionieren.
Und weil wir nur eine Sache zurückgeben,
werden wir es so schreiben.
Offensichtlich ist dies nicht etwas
, das wie ein Standard ist.
Dies ist eher wie Praktiken.
Habe also eine Art
Variable in einem anderen Skript
, auf das du zugreifen möchtest.
Wie macht man das?
Nun, entweder macht man die Variable öffentlich,
man macht sie jedem zugänglich.
Aber das Problem bei der Veröffentlichung
ist, dass Sie sich ändern können.
Wenn ich das also öffentlich mache,
kann ich es dann von einem anderen Skript ändern,
was eine sehr schlechte Idee ist.
Vertrauen Sie mir, Sie möchten niemals in der Lage sein, Variablen in verschiedenen Skripten aus verschiedenen Skripten zu ändern
.
Sie möchten also nicht in der Lage sein
, den Spieler versehentlich vom
UI-Manager
zu entfernen, es passiert manchmal.
Ein besserer Weg ist es also, einfach überprüfen zu können
, ob wir schneidig sind, damit wir das Schneide bekommen können,
aber wir können nicht ändern, ob der Spieler schneidig ist.
Dies ist also eine zusätzliche Sicherheitsebene und
deshalb verwenden wir immer serialisierte Felder.
Wir hätten sie alle öffentlich
und es wären dieselben Funktionen gewesen.
Wir hätten sie im Inspektor sehen können und so weiter.
es jedoch zu einem serialisierten Feld machen, können wir
nicht von verschiedenen Skripten aus auf diese Variablen zugreifen,
und dies wird später Dividenden auszahlen, während Sie auf
Ihrer Spieleentwicklungsreise gehen.
sicher, dass Sie
nicht nur in der Spieleentwicklung,
wann immer es um die Programmierung geht,
keine verschiedenen Klassen, die Variablen und andere verschiedene Klassen ändern möchten
.
Wie auch immer, ich bin mir selbst voraus.
Was machen wir hier drin?
Wir können entweder das Spielerobjekt finden
oder wir können eine Komponente im Elternteil erhalten.
Und wir können, lasst uns das für eine Sekunde entfernen.
Wir können auf den Spieler-Controller und den Elternteil zugreifen,
und wir können fortfahren und überprüfen.
Ist der Spieler schneidig oder was,
was ist dieser Spieler schneidig.
Was ist diese Ebene schneidig, bewegt sich.
Es gibt schneidige 0,
also können wir das auch zurückgeben.
Diese Methode wird also nicht mehr benötigt.
Und das war wirklich nicht etwas, das mir aufgefallen ist.
Aber wie auch immer, die Ebene ist schneidig.
Zumindest hatten wir die Gelegenheit.
Prüfen wir einfach, ob
die aktuelle Bewegungsgeschwindigkeit der Geschwindigkeit entspricht.
Okay, also kehren wir wahr zurück. Und da sind wir los.
Wenn wir schneidig sind,
können wir nicht schießen
und nennen dies nicht den Spieler schießen.
Lasst uns zu den abfeuernden Kugeln wechseln.
Da sind wir los. Das ergibt im Moment also sinnvoller.
Und was sollten wir sonst noch tun?
Nun, offensichtlich müssen wir
es hier im Update anrufen, um sicherzustellen,
dass wir schießen können.
Also rufe ich einfach die Methode zum
Abfeuern von Kugeln auf.
Und jetzt müssen wir zurück in Unity gehen
und alles einrichten.
Also öffne ich Unity.
Sie werden sehen, dass sich das Waffensystem geändert hat.
Und das war, das ist so peinlich.
Ich habe nicht einmal bemerkt, dass es nur da war und
ich habe völlig vergessen, dass wir dieses schneidige gezeigt hatten.
Aber wie auch immer, wenigstens lernt man
etwas anderes.
Oder wir haben diesen kleinen Monolog darüber, warum
wir keinen Zugriff auf die Variablen wollen.
Jetzt keine Sorgen. Electron
natürlich werden wir viele dieser Methoden implementieren
, wenn wir vorankommen
und unseren Code ein bisschen professioneller gestalten.
Also damit, wer Dinge erledigt?
Lassen Sie uns zuerst auf den 70 entfernten Punkt der Schrotflinte gehen
.
Wir werden sicherstellen
, dass diese Waffe kein Romantiker ist, und wir werden
die Zeit zwischen den Schüssen um 1 Sekunde, 1, nicht 21 machen.
Wir brauchen eine Kugel, also gehen wir in die Prefabs,
kaputte Kugeln und die Layer-Kugeln.
Spar dir das auf.
Gehen wir in den Doom Player und wenden alle Änderungen an.
Und jetzt gehe ich zu Was haben wir sonst noch?
Lass uns das Spiel starten und sehen, was passiert.
Der Spieler, der Spieler bewegt sich also auf dem Weg,
aber so bewegt sich der Spieler herum und wenn wir sollten,
los geht's, können wir schießen.
Und wenn ich die Maustaste gedrückt halte,
schießt es aus irgendeinem Grund nicht.
123.
Oh, es ist nicht automatisch.
Okay.
Aber das Problem ist so okay.
Obwohl ich die Maustaste gedrückt halte, ist es nicht automatisch,
aber die Schrotflinte feuert immer noch viel.
Und das wollen wir beheben, weil wir
jetzt von einem fortgeschrittenen Schießmechaniker sprechen.
Es ist nicht der übliche Schießmechaniker.
Wir müssen sicherstellen, dass unsere Dreharbeiten konsistent sind.
Also die Schrotflinte, wenn wir gedrückt halten,
schießt sie einen Knopf,
aber wenn wir weiter drücken, sollte die Schrotflinte beim Schießen nicht
so viel schießen.
Also mit dem aus dem Weg,
mit diesem ganzen Abschnitt, Change, alles skripten.
Ich hoffe es gefällt dir und wir sehen uns im nächsten Video.
Stellen Sie sicher, dass Sie Ihre Änderungen immer festschreiben.
Und ich werde diesen Commit-Schießmechaniker
aus Ebene zwei bewegen
, der eigentlichen Waffe.
Los geht's, übernehmen die Änderungen
und wir sehen uns im nächsten Video.