Willkommen zurück, meine Spieleentwickler.
In diesem Video werden Sie sehen, dass wir viele Fehler haben, wenn wir das Spiel ausführen
.
Wir reparieren nicht alle,
aber wir haben die meisten von ihnen repariert.
Also werde ich die Schrotflinte abholen,
ein paar Münzen aufheben,
von den Stacheln getroffen werden,
durch die Tür gehen,
durch dieses Portal gehen.
Und da gehst du.
Du kannst sehen, dass ich auf der anderen Seite bin meine Schrotflinte,
war meine Pistole mit meiner Gesundheit,
aber sie ist nicht sichtbar
weil wir diese Dinge nicht optimiert haben.
Aber wenn wir den Spieler nach unten scrollen,
werden Sie feststellen, dass wir 500 hatten.
Wir schneiden es an den Stacheln und es ist 490,
obwohl wir nichts getan haben.
Verschwenden wir also keine Zeit mehr und lasst uns anfangen.
Die Dinge, die wir in diesem Video lernen, sind sehr wichtig,
ein bisschen umständlich, aber sehr wichtig.
Lasst uns also stampfen.
O k.
Derzeit können wir also von Level zu Level wechseln.
Wir haben Optionen, bei denen wir
eine der Zufallsstufen wählen, die wir haben.
Offensichtlich gibt es ein paar
Dinge, die wir mit dem Aussehen der Tür und dem Verschwinden und so weiter optimieren müssen
mit dem Aussehen der Tür und dem Verschwinden und so weiter optimieren
.
Ich habe das Gefühl, dass es immer noch ein bisschen Optimierungen gibt,
aber es gibt ein noch größeres Problem.
Und das ist, sobald wir die Münzen und die Waffe abgeholt haben
und von diesen Fahrrädern oder so getroffen werden.
Lass mich es dir zeigen.
Wenn wir die Schrotflinte abholen,
holen Sie sich etwas Geld
lassen Sie sich von den Stacheln treffen.
Da sind wir los. So können wir sehen, dass unser Leben für 9500 ist,
wir gehen auf eine Zahlenebene.
Vielleicht wird das so sein, und Sie können jetzt sehen,
während der Spieler, wenn ich
D1-Spieler ansehe, losgelöst ist.
Er ist nicht da. Sie können also sehen
, dass sein Leben wieder bei 50 ist.
Wenn ich versucht habe, die Schrotflinte zu wählen,
kann ich das nicht. Und da gehst du.
Sie können sehen, dass die Münzen 0 sind
und das ist etwas, das wir ändern möchten
, um sicherzustellen, dass unser Spieler tatsächlich
alles bei sich behält, während er das Level durchläuft.
Also lasst uns weitermachen und das einfach machen.
Also öffne ich
meine Skripte hier und gehe zum
Player-Controller und scrolle nach oben.
Und was wir wollen, ist natürlich, dass wir unsere Waffen von Level zu Level und die Gesundheit des Spielers halten
unsere Waffen von Level zu Level
wollen.
Um das zu behalten,
müssen wir sicherstellen, dass wir den Spieler nicht zerstören.
Wir können es auf einem anderen Objekt oder irgendwo im Projekt speichern
.
Aber offensichtlich gibt es das Problem darin,
eine neue Szene zu laden
, die alles zurücksetzt.
Was ich also machen werde, ist hier drin, dass ich einen öffentlichen statischen Player-Controller erstellen werde
.
Und es wird die Instanz sein.
Und in dem Fall werde ich
einen privaten erstellen oder wissen was,
schreiben wir einfach wach.
Und hier drin werde ich sagen, dass
die Instanz dem entspricht.
Und dann werde ich hier drin nicht auf Last zerstören.
Und es wird das sein.
Wenn ich das also speichere und den Mauszeiger auf „Nicht zerstöre Last“ fahre,
kannst du sehen, dass das Zielobjekt beim Laden einer neuen Szene nicht zerstört
wird.
Und genau das wollen wir.
Was wird jetzt passieren?
Das Objekt oder der Spieler und unser Fall,
wir behalten alles, was er
bei sich hatte, von Szene zu Szene.
Es wird nicht zerstört,
es wird nicht wieder instanziiert.
Aber es gibt das Problem, dass
der Start nicht als Gap bezeichnet wird.
Also werden wir die Hauptkamera nicht einstellen.
Wir werden den Spieler-Animator behalten,
aber die Hauptkamera wird sich ändern.
Und Sie werden sehen, dass dies zu vielen Fehlern führen wird
, die wir beheben werden, wenn wir weitermachen.
Aber im Moment, verstehe die Belastung nicht
zerstören und was sie tut.
Jetzt gehe ich hier wieder rein.
Und wenn man sich den Raum anschaut,
wo ist es, den Raum
, das Portal, habe ich das Portal geändert,
das ist, um auf Stufe vier zu gelangen.
Also können wir zu den Feigen gehen.
Und lass mich einfach zu den Szenen gehen, weil ich etwas ausprobiert habe
und den Dome-Spieler hier drin ausgeschaltet habe
. Also los geht's.
Das hat ihn eingeschaltet.
Lasst uns das aufheben.
Lasst uns zurückwarten, bis das jetzt jeden Tag geladen wird,
speichern Sie das wieder dort, wo wir dienen.
Der Schädel ist da, wo wir Kellys haben.
Ja, wir waren ein Skelett.
Also spar dir das auf.
Und Sie werden jetzt in der Hierarchie bemerken,
und Einheit, das neue Update, tut mir leid, es ist schrecklich.
In der Hierarchie wirst du also feststellen, dass wir es nicht
zerstören und es hat das Untergangsspiel oder darunter.
Also hebe ich die Schrotflinte auf, werde
die Bitcoins werden von den Stacheln getroffen,
öffne die Tür, bewege mich auf Level 4.
Und da sind wir los.
Und du kannst sehen, dass ich jetzt hier bin,
aber das Problem ist,
du einen Spieler unten sehen kannst und ich hier oben schichere.
Jetzt haben wir zwei Spieler.
Einer von ihnen hat eine Schrotflinte, der andere nicht.
Und Sie können sehen, dass wir eine Menge Fehler und Nachteile haben.
Also öffne ich die Konsole.
Ich unterbreche das Spiel.
Und zuallererst haben wir den Doom Player.
Und hier ist das ein Debug, den ich gezeigt habe.
Lass mich das löschen.
Du wirst nur ein bisschen sehen, was ich meine.
Ich lösche das.
Als Nächstes.
Wir werden den, diesen Pfeil genau hier haben
,
was okay ist, also sind das überhaupt die Probleme.
Wir reparieren das im späteren Video.
Dann haben wir endlich
das Objekt vom Typ Kamera zerstört worden.
Sie versuchen immer noch darauf zuzugreifen.
Also doppelklicke ich hier rein
und es ist die Hauptkamera,
und es ist genau das, worüber ich dir erzählt habe.
Jetzt, da wir wissen, dass unser Spieler wechselt,
und wir können genau hier in der Szene sehen,
wenn ich auf den Doom Player klicke ,
der nicht zerstören ist,
müssen wir Spieler machen, also müssen wir es tun
repariere das.
Aber einer von ihnen hat immer noch die Schrotflinte.
Technisch gesehen wird er
sich mit dieser Schrotflinte bewegen können.
Und ich schaue auf den Grabspieler,
scrolle nach unten zu seiner Gesundheit und du kannst sehen, dass der,
seine derzeitige Gesundheit auch einen Übergang hat.
Leider gibt es immer noch
das Problem der Bitcoins,
aber wir werden das Schritt für Schritt beheben.
Beginnen wir zunächst mit der
Verwaltung der Double-Layer-Standards.
Das ist also etwas, das wir ansprechen müssen.
Und wie werden wir das anpassen?
Nun, es gibt einen sehr raffinierten Trick, den wir verwenden können ,
der als Singleton-Muster bezeichnet wird.
Lassen Sie mich Ihnen zeigen, wie Sie Code verwenden
, was das ist, und dann werden wir es erklären.
Zunächst einmal, hier auf wach,
anstatt die Instanz sofort zu setzen,
werde ich sagen, dass wenn wir keine Instanz haben,
also ist die Instanz
Amine, wenn wir bereits eine Instanz haben,
also ist es anders als null,
und die Instanz ist anders als diese.
Was ich dann mache, ist, dass ich dieses Spielobjekt zerstören werde
.
Was mache ich genau hier drin?
Ich werde nachsehen, sobald wir warten.
Ist die Instanz anders als null.
Das heißt, wenn die Instanz nicht null ist,
zerstöre ich das Spielobjekt.
Aber es gibt noch eine andere Sache
wenn die Instanz anders ist.
Also was ich hier mache,
ich das Spiel beginne, überprüfe ich,
ob wir entweder bereits eine Instanz haben
oder die Instanz diesem Spielobjekt entspricht,
ich werde dieses Spielobjekt zerstören.
Und dies wird sicherstellen, dass wir
zunächst keine zweite Instanz dieses Spielobjekts erstellen
.
Und zweitens duplizieren wir das Objekt,
das sich bereits hier befindet, nicht.
Wenn wir also in eine neue Szene gehen
und feststellen, dass wir ein Spielobjekt haben,
wird es sofort zerstört.
Aber sonst, falls wir keine Instanz haben,
beginnen wir das Spiel erneut,
oder wenn wir eine neue Szene starten und es keine Instanz gibt
, die diesem entspricht,
dann werde ich diese Instanz als gleich sagen das.
Dies wird nur eine neue Instanz erstellen.
Und dies wird sicherstellen, dass wir keine zwei Instanzen haben
oder dass bereits eine verfügbar ist.
Also werde ich das speichern und demonstriere, wie das funktioniert und mich
anschnallen wird
, weil wir viele Fehler haben werden.
Und ich habe das getestet, um sicherzustellen,
dass ich alles richtig verwalten kann.
Also hebe ich die Münzen auf,
ich werde für 90 getroffen,
öffne die Tür, und ich treffe das Portal, gehe
davon weg. Und da sind wir los.
Sie können also jetzt sehen,
dass ich keinen Teamplayer habe.
Der zweite Spieler wurde zerstört.
Das liegt daran, dass es überprüft hat und es wach ist.
Gibt es eine Instanz?
Ist die Instanz anders als null?
Ja, das war es.
Und ist die Instanz gleich dem?
Ja, das war es. Also werden wir weitermachen und zerstören.
Also hier drin wirst du sehen, dass wir nur 12 Arbeitgeber haben
, der eine Schrotflinte hat.
Er kann schießen.
Er kann nicht zeigen und er kann seine Waffe nicht ändern,
aber er hat die Schrotflinte.
Er animiert,
alles funktioniert und Sie werden feststellen, dass
er sich in der gleichen Position
in der vorherigen Szene.
Und das liegt daran, dass er das tatsächlich bei sich behalten wird
, während er sich bewegt.
Sie werden also feststellen, dass ich beim Betreten des Portals dann weggezogen bin,
weil ich nicht
in diesem Portal bleiben wollte.
mit diesen Informationen
Lassen Sie uns mit diesen Informationen schließlich sehen, welche Fehler wir hier haben.
Also werde ich innehalten, weil es viel gibt.
Zuallererst werden Sie das Problem mit der Kamera sehen,
das wir in wenigen Schritten beheben werden.
Sie werden sehen, dass wir ein Problem
mit den feigen Feinden haben.
Sie versuchen, das Objekt zu finden, das der Spieler ist,
aber sie können es einfach nicht.
Nicht nur das, es sagt uns, dass
die Objekttransformation zerstört wurde,
sondern Sie versuchen immer noch, darauf zuzugreifen.
Was meinen sie damit?
Nun, sobald sie auf diese Welt kamen,
sahen sie den kleinen Untergangsspieler, der anfangs hier war.
Und als dann die Szene begann,
wurde er zerstört und sie versuchten immer noch darauf zuzugreifen.
Und wenn wir hier hineinklicken,
werden Sie feststellen, dass es genau hier auf der Spieler-Verfolgungsjagd ist.
Das ganze Problem liegt also beim Spieler Chase.
Offensichtlich werden wir das auch beheben,
die Kamera wird repariert.
Und schließlich ist dieses eine Problem auch hier und
das Spielerspielobjekt aktiv und Hierarchie.
All das wird also behoben sein und nur ein bisschen.
Also werde ich das aufheben und lasst uns
die Probleme nacheinander lösen.
Also hör auf damit, öffne das, das Spiel beginnt.
Also öffne die Skripte.
Und was sollen wir tun?
Zunächst denke ich zuerst, lasst uns
das Problem der Hauptkamera lösen.
Wenn wir also zum Player-Controller gehen, wo wir die Hauptkamera benutzen
. Doppelklicken wir
auf die Hauptkamera und scrollen nach unten, um zu sehen,
wo wir sie verwenden.
Wir benutzen es.
Los geht's, beim Zeigen der Waffe.
Also hier drin bin ich einfach mal zu überprüfen, ob
die Hauptkamera gleich null ist.
Das heißt, wir haben keine Kamera.
Ich werde sagen, dass die Hauptkamera gleich der Kamerapunkt-Hauptkamera ist
.
Und das wird erst passieren, wenn wir
überprüfen, ob die Kamera null ist.
Das heißt, wir haben keine Referenz.
Wenn ja, stellen wir die Hauptkamera ein.
Schon wieder. Wenn nicht, werden wir einfach
regelmäßig weitermachen, wobei die Waffe höchstens regelmäßig gerichtet wird.
Also zurück in unserem Spiel wird laufen.
Das Spiel wird dieses Spiel aufnehmen und öffnen. Sonst noch was?
Wir werden das durchmachen.
Und auf der anderen Seite
werden wir in der Szene sehen.
Da sind wir los. Sie können sehen, dass ich darauf hinweisen kann,
aber offensichtlich ist es,
die Kamera in der Spielwelt
nicht auf den Spieler konzentriert.
Und das ist etwas, das wir
offensichtlich biegen müssen.
Also lasst uns anfangen zu reparieren.
Ich gehe in meine Drehbücher.
Und hier drin werden wir das nennen,
wo sollen wir das nennen?
Mal sehen, wo haben wir die Shape-Kamera hingestellt?
Können wir es wissen?
Wir wissen nicht was?
Gehen wir einfach in
die Skripte und legen es in die Manager ein.
Manager, Manager, Manager.
Es gibt keine Manager.
Okay.
Also Manager aus irgendeinem Grund, unsere Kameras.
Da sind wir los. Also und die Kameras,
ich werde eine Kamerasteuerung oder einen Camera Camp Controller erstellen
.
Drücken Sie Enter und warten Sie, bis es kompiliert ist.
Doppelklicken Sie hier rein und
ich mache ein paar Dinge.
Was also? Ich mache immer ein paar Dinge.
Was sind die Dinge, die wir tun werden?
Zunächst möchten wir hier immer das
Spielerziel automatisch finden.
Früher haben wir also früher gemacht, wenn wir hier und ins virtuelle Camp in die Kamera gingen
,
sagten wir der Follow-Spieler.
Und das Problem ist, wenn wir in eine neue Welt gehen,
lass mich dir ausführlich zeigen,
dir vorher zeigen sollen.
Wenn ich zum Beispiel hier den Spieler habe,
hier den Spieler habe
klicke ich auf ihn, er ist in der Hierarchie.
Ich habe die Tür geöffnet,
ich rufe auf eine andere Ebene.
Sie werden jetzt bemerken, wenn ich die Kameras wieder öffne,
die genau dieselbe virtuelle Kamera sind,
können Sie sehen, dass das Follow fehlt,
also gibt es keinen Player.
Warum? Weil wir den Spieler schon einmal eingestellt haben,
aber jetzt wurde er zerstört.
Er wird vermisst, also müssen wir sie wieder finden.
Also hier drin werde ich das öffnen und
eine Variable erstellen, die der Spieler ist, den man jagen muss, was offensichtlich,
mal sehen, die Transformation oder kein Atlas sein wird, die ihn einfach zur
Layer-Controller-Ebene machen
wird zum Anschauen.
Und er wird gleich sein, um ein Objekt des Typs zu finden.
Der Spieler, oh, nein,
nein, nein, nicht hier.
Kosten sinken und beginnen.
Wir werden sagen, dass die zu betrachtende Ebene
gleich ist, Objekte des Typs zu finden,
und es wird der Spieler-Controller sein.
Jetzt haben wir einen Verweis auf
den Player-Controller, der
auch eine virtuelle Kamera erstellt.
Also, also Kinomaschine,
virtuelle Kamera erben, müssen wir
verdoppeln und C mit Cin, einer Maschine.
Los geht's. Spar das.
Also Kinomaschine,
virtuelle Kamera der Kinomaschine, danke.
Es wird das Verb sein.
Virtuelle Kamera.
Und wir werden es hier einstellen, sobald wir anfangen.
Es wird also gleich sein, um Komponente zu bekommen.
Und wo sind wir Ingenieur?
Wo werden wir den Kamera-Controller anschließen?
Vielleicht möchten wir es in der Vorlesung anhängen.
Wir werden uns an die virtuellen Kameras
damit wir hier sofort
auf dieselbe virtuelle Kamera zugreifen können.
Also hol dir Komponente.
Und es wird die virtuelle Kamera der Kinomaschine sein.
Da sind wir los. Und was machen wir hier drin?
Nun, wir werden die virtuelle Kamera oben so einstellen
, dass sie der Ebene entspricht, um
die Punkttransformation zu betrachten.
Das wird also am Anfang sein,
aber ein Update, wir müssen eine While-Schleife erstellen.
Also haben wir schon While-Loops abgedeckt.
Und es wird prüfen, ob der Spieler
ansieht, während er gleich Null ist.
Das heißt, wir haben noch keinen Spieler gefunden.
Wir werden weiter nach dem Spieler suchen, den wir uns ansehen können.
Finde den Spieler-Controller weiter
bis wir ihn endlich gefunden haben.
Sobald wir sie gefunden haben,
wenn wir eine virtuelle Kamera haben.
Dies ist also nur ein zusätzlicher Schritt, um Fehler zu vermeiden.
Die virtuelle Kamera folgt nicht.
Wird dem Spieler gleich sein.
Das werden wir speichern. Und schauen wir uns noch einmal an, was wir getan haben.
Also haben wir zuerst den Player-Controller erstellt
, der eine Variable ist,
die wir uns ansehen werden
,
was eine Variable des Player-Controllers ist
, eine virtuelle Kamera.
Die sind alle privat.
Wir können den Privaten nennen.
Ich hatte einfach keine Zeit.
Weißt du was, lasst uns einfach sicherstellen
, dass wir hier keine Verwirrungen haben.
So privat, privat, weil wir
sie im Inspektor nicht brauchen werden.
Wir können M setzen, wenn wir wollen.
Das müssen wir nicht. Dann fange an.
Wir werden den Spieler-Controller finden.
Das ist nur für den Fall.
Wir fangen an und wir haben den Spieler in der Szene, dann finden wir die Kamera,
dann stellen wir die
Follow-Cam so ein, dass sie der Spieler ist, den man sich ansehen kann.
Habe nur einen Spieler in einer Szene,
denn wir haben das schon hier sichergestellt.
Und das Singleton-Muster.
Da sind wir los.
Dies wird als Singleton-Muster bezeichnet, wenn man bedenkt,
Sie immer dann denken, dass Sie sehr klug sind, wenn Sie es jemandem sagen
.
Vertrau mir, obwohl es Singleton ist
, bedeutet ein einzelnes Objekt.
Also nur für den Fall, dass sie dich fragen, was ist ein Singleton-Muster?
Wie auch immer, der virtuelle Kamerapunkt folgt,
wir folgen dem einzigen Player, den wir finden, und
dann ein Update, nur für den Fall, sagen wir, der Spieler, der nicht zerstört wird
sagen wir, der Spieler, der nicht
, wird normalerweise vor allen anderen geladen objekte.
Nur für den Fall, dass wir das Spiel beginnen,
finden wir den Spieler nicht sofort, den er vermisst hat.
Wir können ihn nicht wie folgt lösen.
Folgen Sie dann einem Update, das wir weiter durchlaufen werden
bis wir feststellen, dass der Player überprüfen würde
ob wir eine virtuelle Kamera haben.
Dies ist nur ein zusätzlicher Schritt.
Ich glaube nicht, dass wir das auch brauchen werden,
nicht einmal, weil wir das Skript an die virtuelle Kamera anhängen werden
,
aber nur für den Fall, dass es keine virtuelle Kamera gibt,
werden wir den Zustand überprüfen und dann wir
wird den virtuellen Kamerapunkt folgen setzen,
speichern Sie ihn hier wieder.
Lass uns weitermachen.
Und so schütteln und schütteln die Kameras
schütteln und schütteln
den Kamera-Controller durch die virtuelle Kamera.
Und aus irgendeinem Grund sehe ich, dass dies kein Prefab ist.
Ist das auf Prefab das.
Also wenn die Prefabs University,
während die Waffen Sie schlecht sind, um Objekte hier zu nivellieren.
Nee.
Okay. Ich kann also sehen, dass ich
die Kameras aus irgendeinem Grund nicht bevorzugt habe, von dem ich dachte.
Aber wie auch immer, das ist einfach lieber die Lager und hier.
Und Sie können sehen, dass
die virtuelle Kamera den Camp-Controller haben wird.
Also spar dir das auf.
Lass mich auf die andere Ebene gehen.
Ich werde das nicht auf allen Ebenen machen.
Ich werde es einfach mit denen machen, die wir testen,
alles repariert haben und es wird wahrscheinlich dasselbe sein.
Also Kameras und hier werde ich es löschen.
Und ich gehe zurück zu den Prefabs und stelle
sicher, dass ich die Kameras hier in der Hierarchie hinzufüge.
Spar dir das alles auf.
Öffne das, okay, scheint
alles gut zu sein. Zurück in den Szenen.
Zurück im Schädel ist das zu speichern, führe das Spiel aus.
Geh zur Tür, öffne sie
gehe zum nächsten Level.
Und wir sollten sehen, da sind wir los.
Also haben wir den Player wieder gefunden und jetzt
funktionieren die Kameras einwandfrei.
Großartig.
Wenn wir jetzt in die Konsole zurückblicken, haben wir immer noch das Problem,
dass der
Spieler gejagt wird und keinen Spaß macht.
Und weil ich sehe, dass
dieses Video schon lange genug läuft,
werde ich genau hier positionieren und dann werden wir
im nächsten Video weitermachen.
Also hoffe ich, dass es dir gefallen hat.
Das ist ein bisschen langweilig, ich weiß,
aber zumindest hast du gelernt, was ein Singleton-Muster ist.
Du hast verstanden, warum die Kamera nicht läuft.
Ich versuche so viel wie möglich zu erklären
, obwohl es sehr langweilig ist.
Aber ich möchte, dass du verstehst, wie sich alles anfühlt.
Zuerst war ich auch verwirrt,
aber als ich alles durchmachte,
verstand ich die Dinge und
wollte sie an dich weitergeben.
Also, wenn das aus dem Weg ist,
danke fürs Zuschauen und wir sehen uns im nächsten.