Meisterkurs in C# Programing & Unity 2D-Spiele-Entwicklung | Michael Murr | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Meisterkurs in C# Programing & Unity 2D-Spiele-Entwicklung

teacher avatar Michael Murr, Software Engineer | Coding Instructor | Game Dev

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Warum du diesen Kurs ansiehst.

      4:05

    • 2.

      So verwendest du diesen Kurs

      14:35

    • 3.

      Unity und visuelles Studio herunterladen

      7:09

    • 4.

      Einheit und visuelles Studio 101

      10:50

    • 5.

      Versionskontrolle 101

      18:37

    • 6.

      Hades Game-Design

      6:54

    • 7.

      Teil 2: So gestaltest du unsere Welt – -

      21:18

    • 8.

      Den Spieler erstellen

      16:03

    • 9.

      Bewegen von Eingaben (Varianten)

      21:31

    • 10.

      Spielerpositionen ändern

      11:28

    • 11.

      Hindernisse treffen

      15:04

    • 12.

      Gun Aiming (Screen

      13:18

    • 13.

      Die richtige Richtung (Aussagekräfte)

      10:43

    • 14.

      Animationen in Einheit

      24:28

    • 15.

      Verbessern von Spieleranimationen

      18:29

    • 16.

      Geschwindigkeit der Spieler 00

      5:57

    • 17.

      Teil 3: Einstellung von Shooting – Kugeln

      16:46

    • 18.

      Bulletin (Prefabs und instantiation)

      14:39

    • 19.

      Zünde

      9:01

    • 20.

      Bullets gegeneinander

      9:36

    • 21.

      Bullet Impact-Effekt

      16:56

    • 22.

      Spuren zu Bullen hinzufügen

      12:44

    • 23.

      Teil 4: Feinde - Feinde - Ein Feinde einrichten

      20:24

    • 24.

      Die Seite auf den Spieler bewegen

      11:42

    • 25.

      Feinde animieren

      12:59

    • 26.

      Beschädigung von Feinde (Methoden)

      17:06

    • 27.

      Blood

      9:55

    • 28.

      Feinde Blood (Arrays)

      22:03

    • 29.

      Angriff von Feinde (coroutines)

      11:06

    • 30.

      Richtige Making

      12:05

    • 31.

      Feinde Shooting

      10:45

    • 32.

      Spieldesign

      6:24

    • 33.

      Abschnitt 5: Räume – Einführung in die Tilgung

      15:06

    • 34.

      Tilemap

      9:59

    • 35.

      Einen größeren Raum erstellen (Cinemachine)

      13:20

    • 36.

      Abschließende Türen (foreach

      19:52

    • 37.

      Alle Feinde aufholen

      15:41

    • 38.

      Türen zum Öffnen 00

      14:04

    • 39.

      Teil 6: Level – Scene

      16:45

    • 40.

      Level

      10:32

    • 41.

      Übergang noch kühler machen

      11:47

    • 42.

      Ein- und Fading (Leinwand)

      20:02

    • 43.

      Abschnitt 7: Destructible Umgebung – -

      14:19

    • 44.

      Die Torpedo animieren

      14:33

    • 45.

      Breakable Objekte

      17:09

    • 46.

      Broken Stücke

      9:55

    • 47.

      Spreading (Lerp)

      11:50

    • 48.

      Teile langsam zerstören

      10:50

    • 49.

      Teil 8: Erweiterte Shooting – Erstellung eines Aufnahmesystems

      11:53

    • 50.

      Fire

      6:25

    • 51.

      Verschiedene Waffen

      11:54

    • 52.

      Wechsel zwischen Waffen

      13:35

    • 53.

      Waffen Anzeige von UI

      22:22

    • 54.

      Camera erstellen

      14:21

    • 55.

      Abschnitt 9: Gesundheitssystem – Einrichte des Player

      7:09

    • 56.

      Health UI

      13:49

    • 57.

      UI mit Scripts aktualisieren

      10:05

    • 58.

      Einen Death erstellen

      13:16

    • 59.

      Adding Unbekannte Adding

      19:11

    • 60.

      Spiken auf dem Boden hinzufügen

      12:07

    • 61.

      Teil 10: Pickups – die Gesundheit aufholen

      13:20

    • 62.

      Random

      19:56

    • 63.

      Waffen aufnehmen

      18:53

    • 64.

      Hinzufügen von Picked

      13:50

    • 65.

      Eine Brust, die du öffne

      16:28

    • 66.

      Was du auftauchen

      6:49

    • 67.

      Teil 11: Musik und SFX – Lass uns über Musik sprechen.

      16:36

    • 68.

      SFX in Einheit

      12:58

    • 69.

      Audio-Mixer verwenden

      14:47

    • 70.

      Teil 12: Mehrere Enemy – verschiedene Arten von Feinde (Spieldesign)

      10:17

    • 71.

      Der Cowardly

      11:55

    • 72.

      Der Wanderer

      16:15

    • 73.

      Die Patroller

      14:35

    • 74.

      Teil 13: Shop und Geldsystem – Geld erstellen

      9:44

    • 75.

      Picking sammeln

      10:10

    • 76.

      UI auf unserer Leinwand anzeigen

      7:29

    • 77.

      So Earn du die Bitcoin.

      5:37

    • 78.

      Shop

      12:35

    • 79.

      Kaufen aus dem Shop

      15:20

    • 80.

      Ein Gesundheitsverbesserung erhalten

      9:58

    • 81.

      Shopping für Waffen

      18:41

    • 82.

      Abschnitt 14: Creating – Bildmaterial einrichten

      18:44

    • 83.

      Victory

      11:18

    • 84.

      Stufe neu

      8:12

    • 85.

      Einrichten von Pausen

      8:50

    • 86.

      Die Spiel tatsächlich

      6:42

    • 87.

      Teil 15: Boss Battes (Fortgeschrittene C# StateMachine) – Einführung in die Sate

      15:50

    • 88.

      Chef einrichten

      16:18

    • 89.

      Bessere Boss Bewegung

      11:50

    • 90.

      Einrichtung von Boss

      14:35

    • 91.

      Boss in der zweiten Phase

      9:00

    • 92.

      Hinzufügen von Boss

      13:34

    • 93.

      Chef Health

      21:22

    • 94.

      Die Fähigkeit zum Fotografieren hinzufügen

      30:22

    • 95.

      Bonus 16: Raumerstellung (Erweiterte C# Object – Die Räume einrichten

      8:05

    • 96.

      Enemy

      14:09

    • 97.

      Verschneite Arten von Feinde

      17:16

    • 98.

      Fertigstellung der Wellen

      11:55

    • 99.

      Auswahl eines Raums

      20:02

    • 100.

      Gehe auf die nächste Stufe

      14:40

    • 101.

      Nächste Stufe Der richtige Weg

      15:10

    • 102.

      Singleton-Muster

      19:56

    • 103.

      Endgültige Tweaking

      22:03

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

1.985

Teilnehmer:innen

3

Projekte

Über diesen Kurs

Dieser Kurs besteht mit den neuesten Inhalten und den neuesten Techniken in der modernen Game 2022)

Die beste Möglichkeit, alles zu lernen, ist die Möglichkeit, das alles auf sehr unterhaltsame Weise zu machen, und hier ist dieser Kurs zu kommen. Wenn du lernen möchtest, wie alle diese unglaublichen Spiele im Bereich der Zeit erstellst, kannst du die ersten place an dich selbst anfangen. Wir haben sichergestellt, dass dieser Kurs dir alles macht, was du für dich von einem Anfänger:innen brauchst (auch mit that

Ich habe das Hauptprojekt in diesem Kurs ausgewählt, um eine 2D-Roguelike zu sein, denn es ist nicht nur eine riesige Bibliothek mit to die wir implementieren und lernen können. sondern auch, weil es sehr einfach (besonders wenn du Anfänger) ist, um deine delve zu eintauchen und zu beginnen.

Alles in diesem Kurs wurde sorgfältig gebe, überprüft und crafted, um dir die beste Erfahrung zu bieten und dein Lernen so sehr wie möglich zu maximieren. So wirst du nicht nur viel Zeit lernen, dir auch die MEISTE BANG für dein BUCK erhalten.

Teil 1: Einführung

Erste beginnt, die Unity und Visuelles Studio herunterzuladen. Installing sie und versichere sie, dass sie funktionieren. Wir werden dann unseren ersten Code in C# erstellen und uns an die Unity-Benutzeroberfläche interessieren. Zum Schluss werden uns über die Spieldesign unseres Spiels sprechen und was man braucht, um ein Spiel von Grund auf zu erstellen.

Teil 2: Die Seite

In diesem Abschnitt beginnen wir, zu lernen, welche sprite sind und wie du sie einrichtest. Wir lernen die sorting in Unity. Wir werden uns in colliders und RigidBodies und den Spielobjekten hinzufügen und sehen, wie es von Physik beeinflussen lässt. Wir werden lernen, wie man unsere Sprit animiert. Wir werden sogar verstehen, welche blending uns sehr helfen

Teil 3: Shooting

In diesem Abschnitt erstellen wir deine players dann in der Richtung creating mit einer Zähler, um eine automatische bullets, zu erzeugen und die Auswirkungen. Auch der Kurs all das lernst du über Prefabs und instantiation wie man die Welt unseres Spiels manipuliert, um es viel besser aussehen zu lassen

Teil 4: Feinde einrichten

Dieser Abschnitt wurde der letzte Abschnitt fertiggestellt. Wir erstellen unsere shooting aber jetzt brauchst du etwas, um es wirklich zu fotografieren. Wir werden unsere Feinde einrichten und sie in den Spieler einziehen. Wir werden uns die Animieren tiefer auf Animationen einfügen, indem wir den Feind, die Verwendungsmethoden, Arrays und etwas als Coroutine hinzufügen, die uns tief in C# einbringen

Abschnitt 5: Räume erstellen

Bis zu diesem Punkt verwendest du ein vorgefertiges Bild, um die Karte zu darstellen. Diese Tage sind vorbei und wir sind an der Zeit, deine eigene Karte zu erstellen. Wir werden die tilemaps in Einheit vorgestellt, dazu verschiedene Kollidieren und den Mechanik in Unity kennenlernen, die nur wenige wissen, was die Cinemachine ist. Wir werden auch unseren guten Teil von C# haben, wenn wir für jeden Schleifen, und Listen erlernen.

Abschnitt 6:

In diesem Abschnitt lernst du den scene in Unity, der uns in unserem Spiel und den Übergang zwischen ihnen mehrere Ebenen erstellen wird. Außerdem lernst du eine sehr schwierige Möglichkeit, zu sicherstellen, dass wir immer die richtige Position ankommen, wenn wir durch unsere Welten beherrschen

Abschnitt 7: Vernichtbare Umgebung

Dies ist eine der schönsten fun in dem Kurs. Jede roguelike und auch wir werden auch unsere haben. Wir werden einen a aber nicht nur die uns unauffälligen und ein wenig schnell zerstören, dass du auch alle "destruktion" "destructible" in unserem Weg zerstörst.

Abschnitt 8: Erweiterte Aufnahme (Waffensystem)

Was ist besser als die Waffen zum Shooting haben? Viele von ihnen und können die Wahl zwischen ihnen on dann werden wir unserem Spiel mehrere Waffen hinzugeben. Jede mit ihrem eigenen Foto-Stil, Geschwindigkeit und Beschäftung. Mit verschiedenen bullets und der Abfeuerung für jeden Fall. Nicht nur das, werden wir auch unsere Kamera aufsehen, wenn wir aufnehmen und unser Spiel mehr Gewicht verleihen.

Abschnitt 9: Gesundheitssystem

In diesem Abschnitt werden wir ein player hinzufügen. Wir visualisieren es auch in der Form eines Gesundheits, den wir auf einer Leinwand sehen können. Wir lernen uns, wie wir diese Gesundheitsleiste durch Schrift aktualisieren und jeden Fall einen coolen death hinzufügen können, wenn unser Spieler einen Tode leidet. Zum Ende werden uns die Spiken in den Boden hinzugeben, wenn der Spieler auf den Grund hat, die sie nicht zu tun haben, und dich ein wenig von der Gesundheit verlieren

Teil 10: Pickups

In diesem Abschnitt beurteilen wir die Pickups. Wir werden Waffen von der Oberfläche abholen. Münzen, die wir in der Lage sind, Geld in Läne, shops, die wir einmal mehr tun können, und wir werden auch eine Brust hinzufügen, die uns öffnen und von uns auslassen und von uns ausmachen kann. Ein zufälliger Waffen, hier werden unsere C# anfangen, um die Fruchtbarkeit zu erzielen.

Teil 11: Musik und SFX

Zeit, um in diesem Spiel ein Leben zu atmet, das Soundeffekte und Musik einbringt. Jetzt geht unser Spiel von statische bis dynamische Version. Wir werden Hintergrundmusik und SFX. Auf jeden Niveaus und jede Interaktion jeweils

Teil 12: Mehrere Enemy (einige sollten Angriffen haben)

Was macht mehr Spaß, wenn du ein Feind, der dich töten kannst? Mit 4 verschiedenen Feinden die dich töten kann. Wir haben den Wanderer, den Patroller, den wanderer, und den angry the Dieser Abschnitt wird die Grundlage unserer Feind-KI und die Türen und den Weg zur Einführung unseres Chef in den nächsten Abschnitt

Abschnitt 13: Shop & Geldsystem

Jetzt, da wir Gegenstände aufnehmen, möchten wir sie ausverkaufen. Wer liebt kein Geld? Wir werden ein Geldsystem, das die a für die Grundlage einer Wirtschaft erstellt. Wir erstellen einen Shop mit einem shop und werden mit ihm ein Geld, das wir kaufen müssen, und die Produkte, die wir verkaufen müssen.

Abschnitt 14: Menüs erstellen

Jedes Spiel muss ein Hauptmenü, das du hast. Aber es braucht auch ein dynamisches Hauptmenü, das es nicht an ein dynamisches Hauptmenü. Wir erstellen ein einfaches Menü mit einem Hintergrund. Aber der letzte Teil ist die Möglichkeit, den Spielern nicht von seinem letzten Speichern zu hindern, oder ein neues Spiel zu beginnen. Außerdem werden wir auch einen Victory hinzufügen, um die Stufe nach dem Tod und der Pause/der Fortsetzung, der der Victory nachzu machen, und eine Pause/Resume

Teil 15: Boss Battes (Fortgeschrittene Unity

Es ist an der Zeit für den wirklich lustigen Teil hier Wir werden einen Boss-Kampf erstellen. Aber nicht nur eine boss dieser fight, wird eine Statusmaschine verwenden. Das ist auch gleichzeitig Animation geeignet. Wir werden es versuchten, den Chef von Staat zu übersetzen, und in jeder Art wird er eine andere Reihe von Angriffen haben.

Bonus 16: Raumerstellung (Erweiterte C# (Advanced

Wir kommen in unserem endgültigen Bereich, in dem wir mehrere Räume erstellen werden, mit denen es Spaß macht, die sich auf die Spielmechanik verwischen. Wir werden auch ein zufälliger a Wir werden Türen verschaffen, die uns verschaffen, und das ist nur dann die Feinde auf unserem gewünschten Niveau zerstören. Und wir werden eine Option haben, zwischen zwei Niveaus zu wählen, nach der wir alle ein, die hier sind.

Was du in diesem Kurs lernst:

  1. Benutze Visuelles Studio mit Unity

  2. Wie du eine gute Game einlegst.

  3. Unity Engine ist auf einfache und umfassende Weise

  4. Die Grundlagen der C# auf die lustigsten Möglichkeiten, indem du ein Spiel erstellst.

  5. Verwendung von player um das Verhalten unseres Spiels zu kontrollieren

  6. Füge verschiedene Komponenten zu Spielobjekten hinzu

  7. Füge die Spielobjekte mit Schwerkraft und anderen Kräften hinzu

  8. Spielobjekte in unserem Spiel interagieren

  9. Füge die Sprit hinzu und schneide sie

  10. Schaffen von Tile

  11. Wie du mit unseren create

  12. Werde ein ninja und lernst, wie du jedes Problem bei der Spielentwicklung und der Programmierung durchgehst.

  13. Animationen erstellen

Triff deine:n Kursleiter:in

Teacher Profile Image

Michael Murr

Software Engineer | Coding Instructor | Game Dev

Kursleiter:in

Hi there, my name is Michael Murr. I'm a software engineer from one of the most highly esteemed universities in the Middle East and the founder of 2M Dev. 

I started coding when I was about 11 years old, when my dad taught me my first lines of HTML, and I have never looked back.

I am a software engineer with more than 10 years of experience. I am the founder of 2M GameDev, a leading game development software company in the Middle East.

Over the years, I've helped hundreds of students create real-world games, learn how to code, and set their lives up for opportunities in many fields that require a software programming skillset. And I will help you do the same.Vollständiges Profil ansehen

Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Warum du diesen Kurs ansiehst.: Also fragst du dich wahrscheinlich hier, wie werden meine Lieblingsspiele erstellt? Woher weiß der Feind wo ich bin und folgt mir? Wie sollen sie Dateien projizieren? Wie funktionieren Boards? Kann ich meine eigenen Levels erstellen? Wie nehme ich Muster auf? Wie schieße ich auf diese Waffen ab? Die Antworten auf all diese Fragen werden deutlich sobald Sie ein paar grundlegende Konzepte verstanden haben, wie Sie einen starren Körper zu Spielobjekten hinzufügen ihn bewegen können. Fügen Sie Animationen hinzu, um Sprite in einer Welt zu tauschen , die wir mit einem Kachelset erstellt haben, damit sie mit der Welt und mehr von Szene zur nächsten interagieren können. Oh, und fügen Sie diesen Objekten auch Verhaltensweisen hinzu, indem Code mit über 30 Skripten und Tausenden von Codezeilen verwenden, werden Sie zu einer Master C-Sharp-Programmierung. Mein Name ist Michael Moore, Gründer von WM Game Dev, und mein Ziel ist es, dich zum besten Spieleentwickler und so unterhaltsamsten Weg zu machen . Ich habe eine Strategie entwickelt , die Tausenden von aufstrebenden Spieleentwicklern geholfen hat , ihre Ziele zu erreichen, die realen Spiele zu entwickeln. Und ich möchte das Gleiche für dich tun. Was ich gelernt habe ist, dass es sehr schwierig sein kann zu wissen, wo ich anfangen soll und welche Schritte du unternehmen musst, um vom Anfänger bis zum Fortgeschritten zu gehen, nicht nur in der Spieleentwicklung, sondern auch in der Programmierung und lernen, wie man kodiert. Und hier kommt die neue aktualisierte Strategie ins Spiel. Ich nenne es die zyklische Pyramide, in der wir damit beginnen, die Grundlagen der Unity-Engine, der C-Sharp-Programmierung und des Spieldesigns mithilfe von Folien und Einheitendokumentation zu erlernen die Grundlagen der Unity-Engine, der C-Sharp-Programmierung , wir dann sofort verwenden was wir gelernt haben, um unser Spiel zu verbessern. Aber während wir unser Projekt durchlaufen, kehren wir auf dieselben Konzepte zurück und nutzen diese und komplexere und unterhaltsamere Wege. Schließlich haben wir die letzten beiden Abschnitte , in die wir tiefer gehen als jeder andere Kurs. Erstens in die fortgeschrittene Einheit, wo wir eine Staatsmaschine für unsere Bosskämpfe entwerfen. Und zweitens, fortgeschrittene C-Sharp waren Woche, in der wir eine konsistente Gameplay-Loop auf Stufe 2 gegeben haben . Sie haben auch die Möglichkeit, die Muskeln Ihrer Spieleentwickler zu Muskeln Ihrer Spieleentwickler denn mit jedem Video gibt es eine kleine Herausforderung, die Sie abschließen müssen. Und selbst wenn Sie nicht herausfinden können, wie Sie die Herausforderung bewältigen können, keine Sorge, ich werde Ihnen helfen, nachdem Sie versuchen , die Herausforderung mit Ihnen abzuschließen. Und das Erstaunlichste ist, dass wir all dies mit der neuesten Version von Unity tun , mit den neuesten Techniken und Inhalten und moderner Spieleentwicklung. Viele Studenten, genau wie Sie, die das Haus nicht für Waren kannten und das Y begrenzt die Ergebnisse, um äußerst hilfreich zu sein. Aber über 10 Tausend Studenten, Hunderte von Bewertungen, eine Zahl, die wahrscheinlich gewachsen ist , wenn Sie dieses Video ansehen , und eine riesige wachsende aktive Community auf der Partitur. Und ich kann mit absoluter Zuversicht sagen, die Ergebnisse es jedem Anfänger mit 0 Programmiererfahrung leicht machen , einzusteigen und zu lernen, wie man unglaubliche Gewinne erzielt. Was sollten Sie also bis zum Ende der Ergebnisse erwarten ? Sie werden ein Meister-Problemlöser. Sie werden die Grundlagen des Codierens verstehen und lernen, wie Spiele programmiert werden, genau wie die, die Sie gerade auf dem Bildschirm sehen. Alles in unserem Gewinn wird konfigurierbar sein. So kannst du optimieren, herumspielen und dem Spiel ein individuelles und besonderes Gefühl geben . Sie setzen also Ihre eigene Kreativität hinein und machen sie sich wirklich zu eigen. Ich freue mich sehr darauf anzufangen und hoffe, dass du es auch bist. Dies ist der perfekte Zeitpunkt, um zu lernen, wie man programmiert. Also tauche mit mir ein und ich helfe dir bei jedem einzelnen Schritt deiner Spieleentwicklungsreise. 2. So verwendest du diesen Kurs: Willkommen zurück, Meine Lieblingsspielentwickler. Und dieses Video eigentlich nicht in diesem Video. Ich habe dieses Video erstellt, damit wir das Lernpotenzial aus diesem Kurs maximieren können. Ich möchte Sie also, ich möchte Sie durch ein paar Schritte führen , die wir nutzen können, um gesamte Lernenergie aus dem Kurs, den Sie gerade belegen, vollständig auszudrücken aus dem Kurs, den Sie , weil Sie schon verbringst du deine Zeit schon hier. Warum also nicht maximieren? Das erste , was wir verstehen werden, ist, wie die Fragen und Antworten funktionieren. Während du dir die Videos ansiehst, schaust du sie dir an. Vielleicht kommt etwas auf, das nicht vollständig verstehen sollte. Was Sie also tun können, ist, dass Sie hier in die Diskussionen einsteigen können . Und Sie können sehen, dass Sie mehrere Optionen haben. Sie können entweder eine Konversation beginnen, eine Frage stellen oder einfach ein Projekt teilen. Also hier drin kannst du mir jede Frage stellen, die du willst. Keine Frage ist von Limit. Aber es gibt einen kleinen Schritt, den Sie tun müssen, bevor Sie mir eine Frage stellen. Und das heißt, machen Sie weiter und recherchieren Sie selbst. Warum bitte ich dich darum? Nun, denn manchmal, wenn Sie auf ein Problem stoßen und selbst nach einer Lösung suchen, und dann finden Sie sie entweder oder nicht. Wenn du zurückkommst und mir die Frage stellst, ist es viel einfacher zu verstehen. Warum ist das so? Da Sie bereits ein paar Vorschläge durchgegangen sind, vielleicht keiner von ihnen geeignet. Aber während Sie die Lösung für Ihr Problem finden, haben Sie viel Wissen gewonnen. Wenn Sie zu mir kommen, wenn Sie Michael fragen und wir gemeinsam nach der Lösung suchen, werden Sie verstehen, wie alles klickt und später, wann Sie vielleicht auf das gleiche Problem stoßen oder vielleicht Sie sehen dieses Problem für einen anderen Schüler. Du kannst ihnen helfen und es ist viel einfacher. Und schließlich, wann immer Sie eine Lösung für Ihre Frage finden, Ihre Frage und fügen Sie ein Salz-Präfix hinzu, da andere Schüler möglicherweise das gleiche Problem haben und eine Lösung finden für ihr Problem, wenn sie das gelöste Präfix dahinter sehen . Und schließlich, bevor ich gehe, willst du nur eine Sache sagen, dass von Limit keine Rede ist. Es gibt keine dummen Fragen, es gibt keine dummen Fragen. Es gibt nur nicht professionelle Spieleentwickler. Niemand wurde als Profi geboren. Wir müssen alle durch Versuch und Irrtum lernen. Du würdest nicht glauben, wie Zitat ohne Zitat meine Fragen gemacht wurden, weil ich nicht als Fachmann in Einheit geboren wurde , mir jahrelange Praxis, Versuch und Irrtum oder Fragen stellte, Dinge googelt habe. Das ist also ein Prozess. Keine Sorge, keine Angst, seien Sie nicht unsicher über einige der Fragen, die Sie vielleicht stellen möchten. Sei mutig genug, um nach einer Lösung zu suchen. Wenn Sie keinen finden, sich darüber keine Sorgen. Hinterlasst einfach eine Frage. Ich antworte immer, immer allen meinen Schülern und wir tauchen immer so tief wie nötig um eine Lösung für jedes Problem zu finden. Und jetzt sprechen wir über den Discord-Server. Und hier können Sie tiefer in die Community einsteigen , die wir hier auf WMD Game Dev erstellt haben. Sie können also entweder auf den Link in der Beschreibung dieses Videos gehen oder mein Profil besuchen und den Link irgendwo dort finden. Und ich empfehle Ihnen, sich der Zwietracht anzuschließen. Warum? Denn die meiste Zeit kann es ein paar Stunden dauern , um zu antworten, je nachdem, woher du kommst. Vielleicht leben wir also in verschiedenen Zeitzonen. Wenn du mir die Frage stellst, ist es vielleicht Mitternacht und du brauchst schnell eine Lösung. Ich schlafe vielleicht, ich komme vielleicht nicht zu meinem Computer. Es ist also sehr vorteilhaft für Sie, dem Discord-Channel beizutreten , den wir erstellt haben. Und lass mich dir einfach den Punktekanal hier zeigen. Dies ist der Beginn unseres Discord-Kanals. Sie können sehen, dass wir die allgemeine Community haben. Wir haben den C-Sharp Chat, wir haben den Game Design Chat, wir haben die Show dein Spiel. Wir haben die allgemeinen Fragen zur Spieleentwicklung. Und Sie können sehen, dass wir hier immer noch nichts haben , weil es ziemlich neu ist, da ich das aufnehme. Aber später, wenn du hier reingehst, wirst du feststellen, dass es eine riesige Gemeinschaft von Leuten gibt , die darauf warten, dir zu helfen, und vielleicht Leute, die darauf warten, Hilfe von dir zu bekommen. Und es ist sehr vorteilhaft zu versuchen, die Frage anderer Leute zu lösen. Du würdest nicht glauben, wie viel ich gelernt habe, wenn ich nur anderen Menschen geholfen habe. Und Sie können hier sehen, dass wir mehrere Kurse haben. Dies sind alle Kurse, die Double M Gamma Game Down hat oder die ich erstellt habe. Und wir können auch sehen, dass wir Memes teilen können und hier haben wir allgemeine Spieldiskussionen, AAA-Spiele, ich weiß nicht, was Sie spielen möchten. Wir können sie hier und den sozialen Kanal oder die Kategorie besprechen und so weiter und so weiter. Daher empfehle ich Ihnen, unserem Discord-Server beizutreten. Es macht sehr viel Spaß. Wir werden dort viel Spaß haben. Und das war's. Das ist alles, was ich über Discord Server sagen wollte. Lassen Sie uns nun zu den Challenge-Folien übergehen. Was also unsere Herausforderung darstellt. Wenn Sie sich durch jedes Video bewegen, werden Sie feststellen, dass ich Ihnen irgendwann sagen werde, dass Sie das Video anhalten und die Herausforderung beginnen sollen. Wenn Sie diese Folie sehen, warten Sie darauf, dass ich alle Punkte beendet und dann müssen Sie das Video anhalten. Warum betone ich das Wort? Müssen Sie innehalten? Weil es viel besser ist, zu lernen, indem ich nicht nur viele Kurse anschaue, von denen ich gelernt habe, die ich persönlich dort gemacht habe, wo ich mich in der Abteilung für das tun fehlte. Also. Du machst dich einfach um und schaust jemandem wieder beim Erstellen zu. Okay. Das ist sehr gut. Und jetzt ist es vorbei. Okay? Und dann beendest du den Kurs. Und nach ein paar Wochen merkt man, dass man eigentlich nicht weiß, wie man irgendetwas macht. Die Challenge-Folien, die ich erstellt habe, sind also äußerst wichtig, da Sie an dieser Stelle anfangen, anstatt zuzuschauen. Und selbst wenn Sie nicht herausfinden können, wie Sie die Herausforderung bewältigen können, machen sich darüber keine Sorgen. Ich werde Ihnen helfen, nachdem Sie versucht haben , die Herausforderung mit Ihnen zu meistern. Du wirst also nie allein gelassen. Und eine Ergänzung dazu, genau wie beim Betrachten Antworten auf Ihre Fragen, bevor Sie im Q und a von Antworten auf Ihre Fragen, bevor Sie im Q und a stellen, stoßen Sie bei einer Herausforderung auf mehrere Variablen , die Sie möglicherweise habe vorher nicht nachgedacht. Und wenn du siehst, wie ich die Herausforderung abschließe, wirst du sie viel besser in deinem Kopf haben, wenn du auf das gleiche Problem gestoßen bist, wenn du anfängst du auf das gleiche Problem gestoßen bist , deine eigenen Spiele zu erstellen. Okay, lasst uns also zur Kursstruktur übergehen und einfach über jeden Abschnitt sprechen. Und kurz, nur um Ihnen eine Vorwarnung darüber zu geben, was wir tun werden. Zunächst einmal haben wir den ersten Abschnitt , den Sie gerade sehen. Wir haben die Verwendung der Ergebnisse, wie man Unity und Visual Studio herunterlädt und einrichtet. Und dann sprechen wir einfach über das Spieldesign und die Inspiration unseres Spiels und wohin wir es bekommen werden . Wir werden auch nur eine kurze Einführung in Unity und Visual Studio haben , nur damit Sie diese unangenehme erste Phase aus dem Weg bekommen . Dann werden wir unsere Welt aufbauen. Das ist genau so, wie es heißt, wir werden die Welt aufbauen, die wir haben. Wir verwenden ein bisschen Sprites mit dem Setup, dem Spieler usw. und so weiter. Dann werden wir die Schießmechanik einrichten , weil wir offensichtlich Waffen und den Zeitbot-Eindringling haben werden. Also brauchen wir irgendeine Art von Waffen. Und das Wichtigste wann immer Sie wieder anfangen, ist die Einrichtung der Kernmechanik. Und das werden wir tun, indem wir die Dreharbeiten einrichten. Wir werden die Feinde einrichten. Offensichtlich brauchen wir Feinde. Dies wird die erste Phase unseres feindlichen Setups sein. Dann werden wir eine abwechslungsreichere, sagen wir mal, mehr Abwechslung bei den Feinden haben. Aber im Moment reicht das aus, um jemanden zu haben, der das erschießt. Wir werden Räume mit Kachelkarten erstellen. Hier werden wir lernen, wie man die Sprites aufschneidet. werden wir bereits erfahren, aber wir werden lernen, wie man Gallensäuren aus den aufgeschnittenen Sprites herstellt. Und dann werden wir das Niveau des Fließens haben. Dies ist der Zeitpunkt, an dem wir anfangen, von einer Ebene zur nächsten zu wechseln, denn offensichtlich ist dies ein Schurkenspiel. Also werden wir diesen Levelfluss erzeugen. Lasst uns weitermachen. Wir haben Abschnitt 7, der die ablenkbare Umgebung ist. Wir wollen Kisten haben , die wir zerstören und Münzen von ihnen bekommen können , und eigentlich keine Kisten, ich denke, es werden Vasen oder so sein. Wir werden Münzen von ihnen bekommen und wir werden Hilfe von ihnen bekommen. Wir werden fortgeschrittene Schießereien haben. Hier werden wir also ein Waffensystem schaffen. Als wir also die Schießmechanik entwickelt haben, haben wir vielleicht nur eine Pistole oder eine Schrotflinte oder so. Dann haben wir in diesem eine Schrotflinte, Gewehr, eine Pistole und all das gute Zeug. Dann werden wir das Gesundheitssystem haben denn an diesem Punkt sterben wir immer noch nicht und töten den Feind immer noch nicht , er explodiert einfach. In diesem Abschnitt werden wir also tatsächlich ein Gesundheitssystem hinzufügen , in dem unsere Gesundheit langsam abfließt , ebenso wie die Feinde. Wir haben die Pickups. Offensichtlich können wir Gesundheitspickup-Waffen aufheben und aufheben, was sonst noch Münzen sein könnten. Wir werden die Musik - und Soundeffekte haben, denn welches Spiel hat keine Musik- und Soundeffekte, wird mehrere gegnerische Typen haben. Das habe ich dir schon mal gesagt. Wir haben bereits eine Art von Feind, aber wir werden verschiedene KIs schaffen, vier verschiedene Möglichkeiten, wie die Feinde arbeiten werden. Wir werden in Abschnitt 13 das Shop-On- und Geldsystem haben , wie Sie vielleicht im nächsten Video oder in den nächsten Videos sehen werden . Unsere Inspiration stammt von einem Spiel, das Hades heißt. Und da haben wir ein Geschäft und alle, fast alle Spiele haben ein Geschäft und ein Geldsystem. Und hier werden wir unser eigenes und den Shop vorstellen. Sie können Gesundheit durch Upgrades kaufen und Waffen kaufen. Etwas anderes, wir werden sehen, wir werden Menüs erstellen. Offensichtlich hat jedes einzelne Spiel ein Menü, daher haben wir auch ein Menü. Und dann haben wir den Abschnitt 15 , der fortgeschrittene Einheit ist, und dort werden wir den Bosskampf schaffen. Bis zu diesem Punkt haben wir die Feinde, wir haben das Waffensystem, wir haben alles eingerichtet. Jetzt ist es Zeit für einen echten Bosskampf. Und ich denke, jedes gute Spiel hat seine eigenen Bosskämpfe. Die Mechanik wird sich von den regulären Feinden unterscheiden, und sie wird sich durch ein System unterscheiden , das die Staatsmaschine ist, die der fortgeschrittene Einheitsteil des Kurses ist. Stellen Sie also sicher, dass Sie zum Abschnitt gelangen. Schließlich haben wir den Bonusbereich, der den Abschnitt 16 ist, der die Raumgeneration ist. Wie Sie im Spiel sehen werden, dass wir nur auf dem spielen werden, eigentlich ein Schurkenspiel. Es gibt immer die Raumgeneration. Wir werden also, sagen wir, fünf oder sechs Modelle für Räume haben . Und wenn du dann alle Feinde und alle Wellen in jedem Raum tötest , gehst du zum nächsten Raum und der nächste Begriff wird zufällig sein. Und Sie haben auch die Wahl zwischen zwei Zimmern. So können Sie wählen zwischen dem Boss Battle Room und einem Raum voller Skelette oder dem Boss Battle Room und einem Raum voller Stacheln. Und dann vielleicht ein Raum voller Stacheln. Und ich weiß nicht, vielleicht der Laden oder so. Dies wird also die fortschrittliche C-scharfe und objektorientierte Programmierung da es viel Arbeit erfordern wird , um diese randomisierte Raumauswahl zu haben . Und es wird sehr viel Spaß machen. Wir werden viel lernen. Bevor ich dich verlasse, gebe ich dir nur ein paar ermutigende Worte. Aber wenn Sie es nennen wollen, das kann diese Ermutigung nennen, gehen Sie diese Reise durch, werden Sie sich vielen Herausforderungen stellen. Stellen Sie also sicher, dass Sie sie immer durchsetzen , wenn Sie auf ein Problem stoßen Ich empfehle Ihnen, zuerst Ihre eigenen Recherchen durchzuführen. Gehen Sie also durch, stellen Sie die Frage bei Google, zur Kasse, einige Videos auf YouTube, und wenn Sie sich dann extrem auf Lager befinden, gehen Sie in die Fragen und Antworten, suchen Sie nach Ihren Fragen, schauen Sie nach Ihren Fragen für eine Antwort. Und du kannst mich auch sofort fragen, ich bin immer da, ich beantworte immer jede Frage. Und damit wird dies eine erstaunliche Reise sein, ich weiß nicht, wie viele Stunden oder für Sie, wie viele Wochen es dauern wird, bis Sie den Kurs beenden können, oder vielleicht Tage , an denen Sie Tage dauern werden. Was ich empfehle ist, dass Sie zu den letzten beiden Abschnitten kommen , denn dieser ganze Kurs ist, besonders wenn Sie ein Anfänger sind. Der Diskurs beginnt also auf einem sehr Anfängerniveau, wir bewegen uns auf ein mittleres Niveau. Und wie Sie gerade sehen, und die letzten beiden Abschnitte, gehen wir auf das fortgeschrittene Niveau. Und sobald Sie die letzten fünf oder sechs Abschnitte erreicht haben, werden Sie so viele Fähigkeiten haben, so viele Tools in Ihrem Arsenal, dass die erweiterten Abschnitte ziemlich einfach sein werden. Ich denke hoffentlich habe ich dir alles beigebracht, richtig? wir also Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Fahren Sie fort. 3. Unity und visuelles Studio herunterladen: Willkommen zurück, meine Spieleentwickler. In diesem Video werden wir Unity herunterladen und gut ins Stocken geraten und die Visual Studio-Tools , die wir für die Ergebnisse benötigen, damit integrieren . Also lasst uns anfangen. Als erstes müssen Sie zu Google gehen und dann gehen, tippen Sie einfach hier ein, laden Sie Unity herunter. So einfach ist das. Wenn Sie eintippen, erhalten Sie viele Vorschläge. Stellen Sie also sicher, dass Sie den mit Unity 3D.com finden und natürlich die Einheit erhalten, und klicken Sie auf den Download Unity , der diese Seite direkt hier öffnet. Hier müssen Sie also Unity Hub herunterladen , wenn Sie Unity noch nie benutzt haben. Was ist Unity Hub? Unity Hub ist wie ein Ort , an dem wir alle unsere Versionen von Unity und auch alle Projekte, die wir machen, behalten unsere Versionen von Unity und werden. Jetzt vor Unity Hub wird unser Projekt überall auf unserem Computer sein, irgendwo in verschiedenen Verzeichnissen und so weiter. Der Unity Hub macht es also wirklich viel einfacher, Ihr Projekt zu durchlaufen und eine wirklich gute Organisation zu haben . Stellen Sie also sicher, dass Sie Unity basierend auf dem Betriebssystem herunterladen , das Sie haben. Wenn Sie also das macOS haben, müssen Sie sicherstellen, dass Sie Unity 40 macOS herunterladen . Und wenn Sie ein Windows 7 haben, laden Sie es für Windows 7 herunter. Klicken Sie also einfach auf Unity Hub herunterladen. Und wenn Sie mit dem Herunterladen fertig sind, sollte Q diesen Installationsordner genau hier haben. Wenn du darauf doppelklickst, wird es gefragt, willst du das? Ja. Sie fahren also fort, klicken Sie auf Zustimmen und wählen das Ziel aus, an dem Sie Ihren Unity Hub platzieren möchten. Und dann startest du mit der Installation. Da ich Unity Hub bereits installiert habe, werde ich ihn nicht erneut installieren. Stellen Sie also sicher, dass Sie alles installieren und wir sehen uns in ein bisschen. Oh, okay, willkommen zurück. Wenn Sie also Unity Hub richtig installiert haben, sollten Sie genau hier eine Nachricht oder ein Fenster erhalten , das ungefähr so aussieht. Jetzt haben wir noch keine Projekte, aber hier werden unsere Projekte alle präsent sein und wir können nach Belieben darauf zugreifen. Bevor Sie fortfahren, muss Unity nun sicherstellen , dass Sie ein Konto haben. Also das ist mein Konto genau hier. Ich habe mein Google Gmail verwendet, um ein Konto bei Unity zu erstellen. Sie können entweder ein neues Konto erstellen oder auch Ihr Google Mail oder Facebook verwenden. Ich bin mir nicht sicher, ob sie das zulassen. Und sobald Sie ein Konto bei Unity erstellt haben, können Sie direkt hier zu den Installationen gehen. Und hier laden wir verschiedene Versionen von Unity herunter . Jetzt verwende ich für diesen Kurs die neueste Version von Unity, die wir derzeit haben. Wenn Sie nun eine neue Version von Unity oder irgendeine Art von Unity installieren möchten , gehen Sie einfach hier in die Anzeige. Klicken Sie auf „Hinzufügen“. Und hier können Sie sehen, dass wir verschiedene Arten von Einheit haben , die wir installieren können. Jetzt haben wir zunächst die empfohlenen Releases. Dies sind diejenigen , die bereits getestet und gründlich getestet wurden und einwandfrei funktionieren. Sie können aber auch nach den offiziellen Releases suchen. Jetzt werden wir diese Version genau hier verwenden. Und das ist eine sehr gute Version. Sie können es installieren. Und Sie haben auch die Vorabveröffentlichung ist jetzt Pressemitteilungen funktionieren genauso wie die offizielle Veröffentlichung und die empfohlenen Veröffentlichungen, aber sie sind manchmal ein bisschen fehlerhaft und Sie können auf ein paar stoßen Bugs bei den offiziellen Releases. Möglicherweise kann es auch Probleme beim Abhören geben, aber sie sind nicht so offensichtlich wie in den vorherigen Versionen. Möglicherweise stoßen Sie auf kein Problem, aber ich würde empfehlen , die offizielle Version zu verwenden , da sie neuer als die empfohlenen Versionen und weniger sperrig sind neuer als die empfohlenen Versionen und als die Vorveröffentlichungen. Laden Sie also die neueste Version , die Sie auf Ihrem Computer haben. Oder momentan kommst du vielleicht aus der Zukunft und hast eine neuere Version als ich. Laden Sie also die neueste Version herunter. Und keine Sorge, dieser Kurs funktioniert oder das Projekt , das wir erstellen werden, wird an jeder Version von Unity und der Zukunft arbeiten. Jetzt klicken wir hier auf Weiter. Und dies ist ein sehr wichtiger Teil Herunterladen und Installieren von Unity jetzt. Und hier haben wir Module, und diese Module sind wie Add-Ons zu unserer Einheit , die es uns ermöglichen, Spiele auf verschiedenen Plattformen zu erstellen. So können Sie beispielsweise hier sehen, dass wir jetzt Module für verschiedene Plattformen laden können . Wenn Sie beispielsweise ein Spiel auf Android erstellen möchten , können Sie das Modul für Android verwenden. Oder wenn Sie ein Spiel für iOS oder Icons erstellen möchten und so weiter. Möglicherweise möchten Sie auch Spiele für Linux oder Mac OS erstellen oder was. Je nach dem, was Sie erstellen möchten, können Sie eines dieser Modellmodule auswählen oder einfach später warten, Sie können diese jederzeit herunterladen. Sie haben auch die Dokumentationen , die ich Ihnen empfehle herunterzuladen. Diese Dokumentationen sind die Unity-Dokumentation und sie sind sehr wichtig. Vielleicht willst du manchmal bestimmte Dinge nachschlagen. Und endlich hast du das Language Pack. Und wenn Sie Chinese oder Koreaner sind, bin ich mir nicht sicher, was das sind, ehrlich gesagt habe ich keine Ahnung. Vielleicht kannst du eines dieser Language Packs benutzen. Aber das Wichtigste, und Sie müssen sicherstellen, dass Sie die Microsoft Visual Studio Community 2019 oder neuer mit Ihrer Einheit installiert haben die Microsoft Visual Studio Community . Weil wir Visual Studio verwenden werden , um alles, alles und alle Verhaltensweisen der Objekte zu codieren , alles und alle Verhaltensweisen der , die wir Immunität erzeugen. Nun, das ist alles, was du tun musst. Klicken Sie einfach auf Weiter und Sie beginnen mit der Installation Ihrer Unity. Damit ist es also Zeit für deine erste Herausforderung. Und Ihre Herausforderung besteht darin, Unity und Visual Studio herunterzuladen. Laden Sie also Unity Hub herunter, genau wie ich es Ihnen gezeigt habe, stellen Sie sicher, dass Sie die Mac-Version herunterladen, wenn Sie einen Mac haben . Wenn Sie ein Windows haben, laden Sie die Windows-Version herunter. Dann müssen Sie das neueste Release herunterladen. Und schließlich stellen Sie sicher, dass Sie auch Visual Studio mit Unity herunterladen. Pausieren Sie also das Video jetzt und laden Sie Unity mit Visual Studio herunter. Und im nächsten Video werden wir einfach die Schnittstelle von Unity und Visual Studio durchgehen, die Sie gerade gesehen haben, dass wir unsere anfänglichen Ängste überwinden können. Also sehe ich dich im nächsten. 4. Einheit und visuelles Studio 101: Hallo und willkommen zurück, meine Spieleentwickler. In diesem Video erklären wir einfach , was Unity ist, was Visual Studio ist wie sie miteinander kommunizieren. Und wir werden ein wenig über die Benutzeroberfläche dieser beiden erstaunlichen Tools erklären . Also zuallererst, was ist Einheit? Lass mich meinen Laser anziehen. Also Laser bitte. Okay. Unity ist also ein plattformübergreifender Game Engine-Entwickler von Unity Technologies. Was meine ich mit plattformübergreifend? Plattformübergreifend bedeutet , dass es auf verschiedenen Arten von Plattformen verwendet werden kann . Zum Beispiel werden Unity, Windows und Mac OS Unity verwenden , um unsere Spiele zu entwickeln. Und wir werden diese Unity-Engine natürlich genau hier benutzen . Bevor wir fortfahren, möchte ich Ihnen einfach die Schnittstelle der Einheit zeigen und wir werden mit der Erklärung von Visual Studio fortfahren, und das ist Einheit. Herzlichen Glückwunsch, du hast es so weit geschafft. Zuallererst haben wir unsere Toolbar genau hier über alles. Und diese Symbolleiste bietet Zugriff auf die wichtigsten Arbeitsfunktionen. Auf der linken Seite haben wir die grundlegenden Tools zur Manipulation der Szenenansicht und der darin enthaltenen Spielobjekte. In der Mitte haben wir genau hier die Spiel- und Pause- und Schrittsteuerung, die es uns ermöglicht, unser Spiel zu spielen, unser Spiel anzuhalten. Und dann können wir auch einen Schritt für Frame hinzufügen. Mit den Schaltflächen auf der rechten Seite erhalten Sie Zugriff auf Unity, Collaborate und die Cloud, die nicht verwendet wird, und auf die Konten. Wir haben auch die Ebenen genau hier, die wir in diesem Kurs viel für unser Projekt verwenden werden . Und wir haben endlich das Layout und die Bi-Layer. Das ist unser Layout genau hier. So können wir das Layout ändern, zum Beispiel die beiden um drei oder die vier geteilt. Oder wir können grundsätzlich den Standard verwenden und das werden wir verwenden. Wenn Sie also nicht die gleiche Schnittstelle wie ich oder verschiedene Arten von Layouts haben. Klicken Sie einfach hier an, gehen Sie zur Standardeinstellung und wir haben beide dieselbe Schnittstelle. Als Nächstes möchte ich das Hierarchiefenster hier sprechen . Wenn wir also genau hier darauf klicken, können wir sehen, dass wir eine Hauptkamera haben und dies ist unsere Szenenansicht. Wir kommen zu unserer Szenenansicht und wir haben das gerichtete Licht genau hier. Aber diese Hierarchie, Hierarchie hier repräsentiert jedes Spielobjekt in unserer Szene. Jedes Element in der Szene ein Eintrag in der Hierarchie. Die beiden Fenster sind also inhärent miteinander verknüpft. Die Hierarchie zeigt die Struktur, wie Spielobjekte aneinander anhängen. Und Sie werden genauer sehen was ich mit einander verbunden meine. Als Nächstes haben wir die Szenenansicht genau hier. Und wenn wir mit der rechten Maustaste klicken, können wir uns tatsächlich mit den WASD-Tasten hier bewegen . Und Sie können sehen, dass wir uns auf unserer Welt bewegen können. Und hier drin werden wir unsere Spiele aufbauen. Wir haben auch ein anderes Fenster hier, das das Spiel ist, und das ist unsere Spielansicht. So sehen wir unser Spiel aus der Perspektive der Kamera, wird alles verändern. Und hier werden wir uns später mit unserer Spielerstellung am meisten konzentrieren . Als Nächstes haben wir das Inspektorfenster auf der rechten Seite und lassen mich zurück zu Szenen gehen. In einem Inspektor-Fenster dürfen Sie also alle Eigenschaften des aktuell ausgewählten Spielobjekts anzeigen und bearbeiten . Wie Sie jetzt sehen können, haben wir das gerichtete Licht ausgewählt. Wir können die Intensität erhöhen und verringern. Wir können die Farbe ändern, wir können mit allem herumspielen. Und wir haben auch die Hauptkamera genau hier. Wir können auch verschiedene Eigenschaften ändern und mit ihnen herumspielen . Und der Inspektor genau hier. Und diese technischen Worte sind sehr wichtig , weil ich sie während des gesamten Kurses verwenden werde. Denken Sie also an einen Hierarchieinspektor, die Szenenansicht, das Sichtspiel. Und schließlich haben wir das Projektfenster genau hier. Und hier zeigen wir die Bibliotheken und Assets unseres Spiels an. Wenn Sie also auf Assets klicken, haben wir derzeit nichts anderes als die Szenen. Und wenn wir auf Szenen doppelklicken, haben wir die Beispielszene genau hier, die wir doppelklicken und eingeben können, die wir speichern können. Wir haben also nichts außer unseren Szenen. Sprechen wir als Nächstes über Visual Studio und was es ist. 0. Okay, was ist Visual Studio? Visual Studio ist also eigentlich Microsoft Visual Studio und es ist eine IDE. Was ist ein Ausweis? Es ist eine integrierte Entwicklungsumgebung. Und das bedeutet , dass es wie eine Umgebung ist , in der wir integrierten Code in Unity entwickeln können. Dies ist also eine sehr komplizierte Erklärung, aber hier werden wir unseren gesamten Code schreiben. Und VS wird uns helfen, den Code zu schreiben. Benutzen Sie diese Option, um Spielobjekte in Unity mithilfe von Skripten Was unsere Skripte, so verwenden wir Unity mit Visual Studio. Wir möchten also, dass Unity mit Visual Studio kommuniziert. In Unit werden Sie Spielobjekte erstellen. So hat zum Beispiel das Auto, das wir bewegen wollen ohne den Spieler , den wir bewegen wollen, nicht bekommen. Die vielleicht Gegenstände, die vielleicht irgendeine Art herunterfallen , die Waffen die Monster erschießen , die uns angreifen. Wir setzen diese, all diese Objekte in Unity. Aber wann immer wir sie manipulieren wollen , werden wir Visual Studio verwenden. Aber Unity und Visual Studio arbeiten nicht automatisch zusammen. Die Art und Weise, wie wir sie zusammenarbeiten lassen, ist durch diese Skripte, die Punkt-CSV-Dateien sind. Und hier schreiben wir alle unsere Codes in die Punkt-CSS-Dateien in Visual Studio und dort, und aus diesen Skripten werden wir das Verhalten der Objekte manipulieren , die wir in Unity haben. Lassen Sie mich Ihnen also einfach zeigen, wie Visual Studio aussieht. Das ist also Visual Studio. Lassen Sie mich einfach ein bisschen hineinzoomen. Und hier können Sie sehen, dass wir zuerst diese drei Zeilen haben, die etwas verwenden, etwas verwenden und Unity's Engine verwenden. Jetzt werden diese Namespaces genannt. Und was das sind, handelt sich um eine Sammlung oder eine Codebibliothek , die es uns ermöglichen, bestimmte Dinge in unserem Spiel zu verwenden. Die Unity-Engine ermöglicht es uns zum Beispiel , verschiedene Aspekte der Einheit zu nutzen. Zum Beispiel die Physik in Unity. Es ermöglicht uns, ohne dies auf verschiedene Details in Unity zuzugreifen . Wenn wir diese Zeile beispielsweise hier entfernen, können wir kein Mono-Verhalten mehr verwenden. Und weil wir kein 10-Verhalten verwenden, das wir in einer Sekunde erreichen werden. Wir können start und update nicht mehr verwenden. Also schalten wir das wieder ein und wir können Mono-Verhalten verwenden. Bevor wir dazu kommen, sprechen wir zuerst darüber, was die Öffentlichkeit bedeutet. Öffentlich bedeutet, dass es für jeden geeignet ist. Es gibt zwei Arten. Es gibt öffentlich und es gibt private. Darauf kommen wir auch. Später. Wir haben die Klasse und wir haben den Klassennamen, und das ist eigentlich der Name unseres Skripts. Und wir werden lernen, dass wir immer sicherstellen müssen, dass wir unsere Klasse beim ersten Mal richtig benennen, da dies für uns viele Probleme bereiten wird. So erstellen wir eine Klasse und all dieser Code wird automatisch geschrieben , damit Sie sich keine Sorgen machen müssen. Diese beiden Punkte hier bedeuten, dass wir vererbt werden und Mono-Verhalten erben. Was ist das Verhalten von Monte 10, nun, wir verwenden Verhaltensweisen, die bereits in Unity integriert sind, die es uns ermöglichen, die verschiedenen Spielobjekte zu steuern. Und aufgrund des Geldverhaltens können wir zwei Methoden oder Funktionen verwenden, die natürlich später wie Start und Update einsteigen werden . Und tatsächlich sieht man hier drin, dass wir diese grüne Linie haben. Und diese grüne Linie bedeutet , dass dies ein Kommentar ist. Und wann immer Sie einen Kommentar erstellen möchten, legen Sie einfach diese beiden hinteren Schrägstriche dahinter. Und wenn wir zwei Backslashes hinter einen Code setzen, bedeutet dies, dass dies ein Kommentar ist und nicht in Mantel ausgeführt wird . Großartig, also was ist Anfang? Start wird vor dem ersten Frame-Update aufgerufen. Wenn also jemals das Spielobjekt gestartet wird, an das dieses Skript angehängt ist, wird der Code innerhalb dieser Startmethode ausgeführt. Und ähnlich wie Start Update wird einmal pro Frame aufgerufen. Also jedes Bild, das unser Spiel durchläuft. Diese Methode, Update wird als alles, was darin enthalten wird ausgeführt, um es einfacher auszudrücken, Start ist der Ort, an dem wir unsere Anfangsbedingungen setzen. So zum Beispiel das Gewicht des Autos, die Geschwindigkeit unseres Spielers, das Klima vielleicht. Und dann bringen wir unser Auto mit dem Update in Bewegung. Wir bringen unseren Spieler zum Springen, und wir bringen den Klimawandel zum Beispiel dazu, dass der Wind explodiert oder so. Und der andere weiß ich nicht. So verwenden wir Unity im Grunde mit Visual Studio. Natürlich werden Sie in Zukunft, wenn wir unser Projekt durchlaufen, ein viel, viel besseres Verständnis für den Start und das Update und alles darin haben viel besseres Verständnis . Machen Sie sich also nicht zu viele Sorgen , wenn Sie nicht alles sofort verstehen. Aber jetzt hast du eine Herausforderung vor dir. Und deine Herausforderung wird gehen und eine Masse machen. Also öffne Unity und mach dich herum. Klicke auf ein paar Dinge. Und wenn du fertig bist, gehe zum nächsten Video und wir werden unseren ersten Code erstellen und loslegen. Und du weißt immer noch nicht , wie man ein neues Projekt erstellt. Mach dir darüber keine Sorgen. Im nächsten Video werden wir ein Projekt erstellen und unseren ersten Schritt machen. Ich hoffe, dir hat dieses Video gefallen und wir sehen uns im nächsten. 5. Versionskontrolle 101: Willkommen zurück, meine Spieleentwickler. In diesem Video werden wir alles über Versionskontrolle, Quellbaum und das Erstellen von Repositorys unserer Projekte lernen alles über Versionskontrolle, . Wie Sie hier sehen können, haben wir ein neues Projekt erstellt und den Quellbaum heruntergeladen. Wir haben jetzt ein paar Commits hier drin und wir haben tatsächlich etwas rückgängig gemacht. Wir haben unser erstes Commit erstellt, einen Cube hinzugefügt und zurückgesetzt. Wir können dieses Commit tatsächlich rückgängig machen. Eine Dose. Klicken Sie also auf Ja. Wie Sie sehen können, können wir zurück zu Unity reload gehen und wir haben unseren Würfel genau hier. Wir werden alles im kleinsten Detail lernen. Also gib mir deine gesamte Konzentration. Das ist sehr wichtig. Es ist ein äußerst hilfreiches Video oder eine Lektion und wir bleiben für immer bei Ihnen , solange Sie sich dazu verpflichten, ein professioneller Programmierer oder Spieleentwickler zu werden. Verschwenden wir also keine Zeit mehr und fangen wir an. O k. Also versionskontrolliere das und setze meine Laser-Versionskontrolle an. Es ist schwer zu lernen. Es ist noch schwieriger zu unterrichten, aber ich werde versuchen, es so einfach wie möglich zu halten. Und wenn du den Dreh raus hast, vertrau mir, es ist sehr einfach und einfach zu bedienen. Außerdem ist es eine unverzichtbare Fähigkeit , die Sie lernen müssen, wenn Sie ein professioneller Spieleentwickler oder sogar ein professionelles Programm werden möchten . Fangen wir also mit dem an, was ist. Zuallererst ist es ein System, das für die Verwaltung von Änderungen an Computerprogrammen verantwortlich ist . Dies bedeutet also, dass wir diese Änderungen bei jedem Schritt unseres Projekts speichern können, wenn wir Änderungen an unseren Programmen wir vornehmen. Auf diese Weise können wir zuerst prüfen, was wir getan haben. Wir können verschiedene Arten von Versionen erstellen, in denen wir zurückgehen und die Dinge ändern können, die wir erstellt haben. Es ermöglicht eine bessere Teamarbeit. Nehmen wir zum Beispiel an, Sie haben vier oder fünf Personen, die an demselben Projekt arbeiten, aber jeder von ihnen hat eine andere Aufgabe, die sie erstellen müssen. Die Versionskontrolle ist also eine sehr gute Möglichkeit, all dies zu bewältigen. Und warum brauchen wir es? Nun, warum benutzen wir es eigentlich? Nun, wir werden es verwenden, um uns an die frühere Version unseres Spiels zu erinnern und mehr Flexibilität beim Experimentieren zu haben. Normalerweise ist die Spieleentwicklung eine Umgebung, in der Sie viele Experimente benötigen. Zum Beispiel möchten Sie einer Art Spielobjekt eine Art Eigenschaft hinzufügen Art Eigenschaft hinzufügen und vielleicht bricht es Ihr gesamtes Projekt. Sie möchten also immer eine vorherige Version Ihres Projekts haben , bevor Sie dieses Spiel Breaking Mechanic hinzufügen . So kannst du immer zurückgehen und von dort aus neu anfangen. Dies ist also äußerst wichtig, insbesondere für Spieleentwickler , die in ihren Spielen und Projekten immer mit neuen Ideen und Dingen experimentieren müssen mit neuen Ideen und Dingen experimentieren . Und wie werden wir es benutzen? Nun, wir werden etwas verwenden , das Source Tree genannt wird, und das ist Versionskontrolle. Es ermöglicht uns, verschiedene Versionen zu erstellen. Und es ist zuallererst umsonst. Es ist sehr einfach für Anfänger, sehr flexibel und hat eine sehr einfache Benutzeroberfläche , die wir als Anfänger verwenden können. Also lasst uns weitermachen und den Quellbaum herunterladen. Lass mich dir zeigen, wo wir das machen können. Wenn Sie Google Chrome oder einen Browser öffnen , den Sie haben, gehen Sie einfach zu Google und laden Sie direkt hier den Quellbaum herunter. Sie sollten genau hier einen Link finden, der der Quellbaum sein sollte. Oben. Wenn Sie darauf klicken, gehen Sie direkt hier zu deren Website. Wenn Sie nach oben scrollen, können Sie sehen, dass Sie die Möglichkeit haben , für Windows herunterzuladen. Wenn Sie sich jedoch auf einem Mac befinden, stellen Sie sicher, dass Sie hier klicken und den Quellbaum für Mac OS herunterladen , sonst funktioniert es nicht für Sie. Wenn Sie also einen Mac haben, laden Sie die Mac-Version herunter, wenn Sie ein Windows haben, laden Sie die Windows-Version herunter. Einfach genug. Wenn Sie mit dem Herunterladen fertig sind, sollten Sie diese Datei direkt hier abrufen. Und wenn Sie darauf doppelklicken, sollten Sie die Installation starten. Da ich jetzt bereits einen Quellbaum habe, werde ich ihn nicht ein anderes Mal installieren. Ich führe Sie einfach durch den Prozess der tatsächlichen Installation. Okay, also das ist das erste Fenster, das für dich auftaucht. Zuallererst müssen Sie natürlich der Lizenz zustimmen . Und Sie können dies vielleicht ausschalten, wenn Sie keine E-Mails aus dem Quellbaum und so weiter im Unterricht haben möchten. Das nächste, was Sie tun müssen, ist, dass Sie gelegentlich ein Konto erstellen Sie können zu Lysin gehen und platzieren, da die Muttergesellschaft des Quellbaums dort ein Konto erstellen kann, oder Sie können ein bestehendes Konto verwenden wenn Sie bereits ein Google Mail haben. Ich persönlich erstelle eine mit Gmail. Es ist viel schneller, es ist viel einfacher und sie spammen dich nicht mit vielen E-Mails. Als Nächstes werden wir es mit einem Konto verbinden. Das ist natürlich, dass wir das nicht tun werden. Wenn Sie Ihren Code auf bestimmten Websites wie GitHub oder Bitbucket hosten möchten. werden wir nicht tun, also können Sie einfach hier auf das übersprungene Setup klicken. Schließlich wird Ihnen während der Installation des Quellbaums mitgeteilt, dass es nicht in der Lage ist, get zu finden. Um dies abzuschließen, klicken Sie einfach auf Download und eingebettete Version von Git und fahren Sie fort. Und dann könnte es dich auch um etwas bitten , das als Quecksilber bezeichnet wird. Mercurial ist ein anderes System, genau wie get. Es ermöglicht uns, verschiedene Versionen unseres Projekts zu speichern. Wir werden Mercurial nicht verwenden, also können Sie einfach auf klicken, ich möchte nicht herunterladen oder ich möchte Mercurial nicht verwenden. Und das sollte sein, wenn Sie mit der Installation fertig sind. Du solltest das genau hier haben. Und du, nun, dieses Fenster hier, wenn du den Quellbaum startest, wenn du nicht einfach direkt hier auf Erstellen klickst und du solltest dieses Fenster bekommen. Hier erstellen wir tatsächlich unser Repository. Und hier sehen Sie, dass wir den Zielpfad, den Namen und die Art der Versionskontrolle haben , die wir verwenden möchten. Natürlich benutzen wir das GET. Wir haben auch die Möglichkeit, ein Konto zu erstellen, aber wie ich Ihnen sagte, halten wir die Dinge sehr einfach. Es ist unser erstes Mal, also werden wir kein Konto erstellen. Hier werden wir also auswählen , welcher Zielpfad unseres Repositorys ist. Was ist das Projekt, von dem wir tatsächlich ein Repository für nachfolgende Versionen erstellen werden. Nun, lasst uns unser erstes Projekt erstellen , das wir verwenden werden. Also hier drin öffnet das den Unity Hub. Und wie Sie sehen können, haben wir bereits Hello World, das wir in einem vorherigen Video nicht haben , das auf Neu klickt. Und stellen wir sicher, dass es sich um ein 3D-Projekt handelt. Und das wird unser Cyberspion 2087 sein. Lasst uns weitermachen und dieses Projekt erstellen. Klicken Sie also auf Erstellen. Und ich benutze natürlich immer meine Magie des Editierens , um diesen Prozess zu beschleunigen. Wir sehen uns auf der anderen Seite. Okay, willkommen zurück. Also hoffe ich, dass alles für dich geklappt hat. Jetzt haben wir ein neues Projekt , das trotz 2087 Cyber ist. Jetzt, da wir unser Projekt erstellt haben, können wir tatsächlich mit der Erstellung eines Repositorys beginnen . Wenn wir nun genau hier in unseren Quellbaum zurückkehren, können wir auf Durchsuchen klicken und tatsächlich mit Unity-Projekten fortfahren. Und Sie können sehen, dass wir eine Hallo Welt haben und bis 2087 einen Cyberspace haben. Wählen wir also diesen Ordner aus. Es wird ein Repository unter diesem Namen erstellen. Wenn wir auf Create klicken, wird ein Problem auftreten. Mach dir darüber keine Sorgen. Klicken Sie auf Ja. Und voila, jetzt haben wir tatsächlich angefangen, ein Repository zu erstellen. Sie haben die inszenierten Dateien genau hier. Sie haben verschiedene Arten von Knöpfen. Sie müssen sich vorerst keine Sorgen um einen von ihnen machen, konzentrieren Sie sich einfach auf die inszenierten Dateien, auf inszenierte Dateien und verpflichten Sie sich hier. Wenn wir nun in diesen OnStage-Dateien nach unten scrollen, können Sie sehen, dass die meisten von ihnen aus der Bibliothek stammen. Wir scrollen bis zum Ende nach unten, wir können sehen, dass einige von ihnen Tampa 10 oder vorübergehend sind. Wir können auch sehen, dass wir Projekteinstellungen haben und das sind alle Dateien, die wir für unser Projekt haben. Wir haben hier auch Vermögenswerte für die Einheit in den Szenen zum Beispiel. Dies ist also ein Repository, das eine Version unseres aktuellen Projekts ist. Nun ist das Problem hier, wie Sie sehen können, es eine Menge und eine Menge Dateien gibt, und B wird nicht alle benötigen. Nun, eigentlich brauchen wir fast keinen von ihnen. Wir brauchen nur eine bestimmte Art von Dateien. Wir möchten also die Bibliothek und die temporären temporären Dateien ignorieren . Warum ist das so? Nun, lass mich es dir zeigen, indem ich das Verzeichnis unseres Projekts öffne. Oh, okay, das ist also Cyberspace bis 2080 Siebener-Verzeichnis innerhalb des Unity-Projekts, wie Sie hier oben sehen können. Wir haben also die Assets, die Bibliotheksprotokolle, Pakete usw. und so weiter. Was ist der temporäre Ordner und was ist der Bibliotheksordner und warum brauchen wir sie nicht wirklich? Temporär ist also nur eine Möglichkeit, sich Einheit schneller zu öffnen, wenn wir das Projekt beginnen. Und es wird immer erstellt, wenn wir ein Projekt öffnen. Wenn ich zum Beispiel genau hier zu Unity gehe und es tatsächlich schließe, wirst du sehen, dass die temporäre Datei ist. Wird verschwinden. Und selbst wenn wir die Bibliothek jetzt löschen, löschen wir diese Bibliothek vollständig. Wenn wir zurück in unseren Unity Hub gehen und Cyberspion 287 eröffnen. Wie Sie hier sehen können, haben Sie gesehen, dass die Bibliothek erneut erstellt wurde und der temporäre Ordner ebenfalls erstellt wurde. Natürlich sollte das Projekt jetzt etwas länger dauern, um sich zu öffnen. Dies ist jedoch ein Beweis dafür, dass eine Bibliothek und die temporären Ordner nicht notwendig sind, damit wir uns immer verpflichten und inszenieren können. Und was meine ich mit Etappe? Wann immer wir unsere Ordner inszenieren, erstellen wir tatsächlich ein Commit von ihnen, jede Version davon. Und die Bibliothek nimmt viel Platz ein. Wie Sie sehen können, nimmt es den größten Teil des Speicherplatzes ein, wenn wir nach unten scrollen , und wir wollen überhaupt keinen davon. Wie sollen wir also vorgehen? Nun, wir können alle Ordner, die sich unter der Bibliothek befinden, ignorieren , indem wir einfach einen der Ordner auswählen , in denen eine Bibliothek vorhanden ist. Rechtsklicken Sie darauf. Und hier sieht man, dass wir die Möglichkeit haben , einen von ihnen zu ignorieren. Klicken Sie also auf Ignorieren. Und hier haben Sie die Möglichkeit diesen genauen Dateinamen zu ignorieren, alle Dateien mit dieser Erweiterung ignorieren oder alles unter einer Bibliothek zu ignorieren, und das ist es, was wir wollen. Also klicke auf Okay. Und wie Sie sehen können, wurde alles unter der Bibliothek jetzt ignoriert, sodass wir es nicht inszenieren können, sodass wir es nicht in unserer neueren Version speichern können. Und wenn Sie nach oben scrollen, haben Sie vielleicht bemerkt , dass wir hier einen neuen Ordner haben , der den Punkt Git Ignore ist. Und wenn wir rechts darauf klicken, können Sie sehen, dass es die Bibliothek hat. Und wenn wir darauf doppelklicken, können wir es tatsächlich in unserem Notizblock öffnen und hier können wir die verschiedenen Dateien hinzufügen, die wir ebenfalls ignorieren möchten. Was sind die Dateien , die wir ignorieren möchten? Nun, es gibt eine Menge Dateien, aber zum Glück hat jemand all diese Dateien durchgesehen und eine Liste von allem erstellt, hat jemand all diese Dateien durchgesehen und eine Liste von allem erstellt ignorieren können , wenn wir Versionskontrollen erstellen oder Versionen unseres Projekts. Und um diese Datei zu finden, können Sie wieder zu Google oder vorne gehen. Geh weiter und suche Punktgit, ignoriere Einheit. Und du solltest diesen Link hier für die github.com haben. Und es wird auf GitHub gehostet. Wenn Sie diesen Link öffnen, gelangen Sie direkt hierher. Das ist also der Punkt Gitignore und es ist der Unity Dot Git Ignore. Und das sind alle Dateien, die wir beim Erstellen von Versionen unseres Projekts ignorieren können . Sie können direkt hier auf die Zeile klicken und es öffnet sich dieses Fenster oder Tab. Lasst uns fortfahren und alle auswählen indem wir auf Steuerelement A klicken. Wir kopieren dies alles mit Steuerelement C. Und wir werden es hier in unserem Dot-Gitignore-Notizblock einfügen. Und jetzt haben wir den Gitignore-Notizblock mit allen Dateien gefüllt , die wir für unsere positiven 3 nicht verwenden werden . Wir werden das mit Control S speichern. Und jetzt zurück in Unity oder ich meine zurück im Quellbaum, können Sie sehen, dass alles ignoriert wird, wenn wir den Git ignorieren ließen . werden wir alles inszenieren. Und wenn wir all das inszenieren, können Sie sehen, dass dies die Dateien sind, die festgeschrieben werden. Und dies wäre unsere anfängliche Verpflichtung oder unsere erste Repository-Version des Projekts. Und normalerweise nennen wir dies das erste Commit, wenn Sie Ihr erstes Commit erstellen . Sie können es groß schreiben, das erste, das Oops, das erste Commit. Und wir klicken hier auf Commit. Wenn Sie also nach links schauen, können Sie sehen, dass wir hier Zweige haben und wir haben den Master-Zweig. Herzlichen Glückwunsch, wir haben unsere erste Verpflichtung geschaffen. Sehr nett. Lassen Sie mich Ihnen jetzt einfach zeigen, wie wir uns weiter nach unten bewegen werden, obwohl dieses Video lang genug war. Aber ich denke, wir müssen eine angemessene Grundlage für den Quellbaum und die Versionskontrolle erhalten für den Quellbaum und , während wir unser Projekt durchlaufen. Nehmen wir an, wir sind in unserem Projekt genau hier. Und lasst uns weitermachen und eine Art Würfel erstellen. 3d-Objekt. Rechtsklick in die Hierarchie. 3D-Objekt, erstelle einen Würfel, und jetzt haben wir einen Würfel. Lasst es uns ein bisschen vergrößern. Skaliere es also auf das X, das y und das z. Great. Jetzt haben wir einen Würfel und unsere Szene. Und wenn wir jetzt in den Quellbaum gehen, speichern wir das, bevor wir gehen. Und es muss es in einer bestimmten Szene speichern. Also lasst uns in Szenen hinein. Dies wird unsere Beispielszene sein. Klar. Beispielszene, ja, ersetzen Sie sie. Also haben wir diese Beispielszene zurück und Quellbaum. Warten Sie ein bisschen darauf und Sie können sehen, dass wir nicht festgeschriebene Änderungen haben. Wenn wir also darauf klicken, können Sie sehen, dass es sich bei den On-Stage-Dateien um Änderungen innerhalb der Szenen handelt , bei denen es sich um die Beispielszene handelt. Und hier können Sie sich genau ansehen, was wir jetzt erstellt haben. Es ist ein bisschen seltsam hier, aber wenn Sie genau hinschauen, können Sie sehen, dass wir Box Collider erstellt haben. Und im Grunde stellt dies den Würfel , den wir unserer Szene hinzugefügt haben. Also lasst uns das alles inszenieren. Wir können hier auf Commit klicken und nennen, dass dies einen Cube hinzugefügt hat. Klicken Sie auf Kommentar. Und jetzt können Sie in unserer Master-Filiale sehen, dass wir ein erstes Commit haben , das keine Würfel gemacht hatte. Und jetzt haben wir in unserem hinzugefügten Würfel einen Würfel hinzugefügt. Also herzlichen Glückwunsch. Und als letzte Anmerkung mag das etwas umständlich aussehen. Das mag ein bisschen komisch aussehen, aber fürchte dich nicht, dass das sehr einfach ist. Und noch wichtiger ist, dass es für uns äußerst wichtig ist zu verstehen, wenn wir unser Projekt durchlaufen, Versionen und Versionen davon erstellen. Und wenn wir jemals einen Fehler machen, können wir tatsächlich zurückgehen, indem hier mit der rechten Maustaste klicken und das Commit umkehren. Und ja, wir können das Commit rückgängig machen, wenn wir zurück und zur Einheit gehen, es wird uns um einen Live-Reload bitten. Wir haben geschrieben, wir laden neu und jetzt haben wir keinen Würfel oder irgendeine Spielbrechermechanik, die wir auf dem Weg hinzugefügt haben. Und jetzt ist es Zeit für deine Herausforderung. Ihre Herausforderung besteht darin , den Quellbaum und die Ignorierendatei herunterzuladen und einzurichten. Also lade den Quellbaum herunter und stall und richte alles ein. Erstellen Sie Ihr 3D-Projekt in Unity Hub, richten Sie ein Repository dafür und einen Quellbaum oder die Bibliotheksdateien ein und rufen Sie die Punkt-Ignorierungsdatei ab und fügen Sie sie Ihrem Repository hinzu, erstellen Sie Ihr erstes Commit, und erstelle dann dein zweites Commit. Sie können sogar versuchen, vielleicht mit ein paar Dingen herumzuspielen. Fügen Sie einen Cube hinzu, kehren Sie das Commit um und sehen Sie, was passiert. Machen Sie sich mit dem Quellbaum vertraut. Und wenn Sie ein bisschen Probleme haben, können Sie das Video auf dieser Liste der Dinge anhalten , die Sie erstellen müssen. Und du kannst auch immer zurückgehen und dir das Video ansehen und sehen wie ich alles gemacht habe und mir Schritt für Schritt mitfolgen. Wir sehen uns also in ein bisschen. 6. Hades Game-Design: Okay, also werde ich dieses Video beenden und dir das Spiel Hades zeigen. Und es ist eine der größten Inspirationen für das Projekt, das wir schaffen werden. Also lasst uns anfangen. Offensichtlich wirst du spielen und ich werde nur eines der Spiele spielen , die ich bereits gespielt habe. Ich werde dir ein paar Aspekte im Spiel zeigen und die, die wir endlos sein werden. Das ist also der Area Hub. Wir werden kein Area Hub unbedingt ein Stundenspiel haben, aber es wird gerade ausreichen. Also gehe ich einfach durch und gehe zum eigentlichen Teil des Gameplays. Also geh her. Und wie Sie sehen können, das erste , was wir im Spiel und in diesem Spiel bemerken , offensichtlich. Und das erste, was wir bemerken, ist, dass wir mehrere Waffen haben, aus denen wir wählen können. Dies ist etwas , das wir offensichtlich auch ein Stundenspiel haben werden. Also nehme ich einfach die Waffe und hier ist was ich drehen werde. Und ich gehe einfach weiter und fange wieder an, getötet zu werden. Bevor wir anfangen, wird unser Spiel natürlich nicht so ausgefeilt sein wie dieses. Dies ist ein NP-Gewinn, der Jahre gedauert hat. Dies ist ein Operator , den Sie auswählen. Also wähle ich einfach irgendetwas aus. Dieses Spiel dauerte also Jahre und Jahre Grafikdesign und all das gute Zeug. Wie Sie sehen können, ist dies ein Feind. Er wandert einfach herum und sobald er dich findet, fängt er an, auf dich zu schießen oder fängt an , dich anzugreifen oder was auch immer. Wie Sie genau hier sehen können, ist dies ein isometrischer Spielstil. Wir werden einen 2D-Platformer oder ein 2D-Spiel haben. So sieht man offensichtlich genau hier, dass wir das Shooting verbindet. Also können wir schießen. Man kann die Vasen sehen, die kaputt sind. Wenn wir es ihnen zeigen, haben wir einen ähnlichen Mechaniker. Und wenn wir sprengen, können wir sie brechen, aber in unserem Spiel werden wir sie brechen können. Und Sie können sehen, dass wir den Strich haben und das ist etwas, das regelmäßig benutzt wird und alle schurkischen Spiele, wir werden auch ihren Strich haben. Nun, wir werden tatsächlich einen Torpedo haben, aber wir werden den schneidigen Mechaniker haben. Wie Sie genau hier sehen können, die Möglichkeit, ein zweites Zimmer zu betreten. Also werden wir genau das tun. Sie können sehen, dass wir genau hier die Gesundheit haben. Wir haben auch einen Gesundheitsriegel. Sie können sehen, wie die Benutzeroberfläche eingerichtet ist. Wir werden etwas ziemlich Ähnliches machen. Sie können also genau hier sehen, dass wir die E-Taste drücken können. Ich werde es drücken und wir gehen zum nächsten Level. Wir werden auch Türen haben. Sie können sehen, dass wir auch jedes Level haben Harold eine eigene Kachelkarte haben. Wir können genau hier sehen , dass wir auch Stacheln haben. Dies ist also etwas, das wir hinzufügen werden. Wir werden Stacheln haben, offensichtlich nicht so hübsch wie diese, aber sie werden den Trick machen. Sie können jetzt sehen, dass wir verschiedene Arten von Feinden haben. Sie werden feststellen, dass wir, wenn sie uns angreifen , wenn wir schneidig sind, nicht getroffen werden. Und das werden wir auch in unserem Gewinn umsetzen, nämlich die Fähigkeit, für ein paar Sekunden unbesiegbar zu sein , nachdem wir abgebrochen sind und nachdem wir es zum Beispiel bekommen haben. Also erschieße ich diesen Kerl und wir werden ihn töten. Sie können sehen, dass wir nicht nur einen oder zwei Feinde haben nicht nur einen oder zwei Feinde , die sich bereits in der Karte befinden. Wir haben Feinde, die laichen, also haben wir Wellen von Feinden. In diesem aktuellen Durchspielen und dieser aktuellen Kammer werden Sie also sehen, dass es nur eine Art von Feind gab, aber normalerweise haben wir mehrere Arten von Feinden. Wir können sehen, dass die Waffen auch verschiedene Arten von Angriffen haben und diesen Gewinn. Also werde ich einfach schießen und du wirst feststellen, dass wir, wie du siehst, mehrere Wellen haben. Wenn wir die erste Welle töten, erscheint eine zweite Welle. Also haben wir den nächsten getötet, wir töten den nächsten. Und schließlich gewinnen wir alle Wellen oder Nicht-und alle Feinde oder Toten. Wir bekommen unsere Belohnung und die Kampfaktien. Also hole ich einfach hier etwas ab. Und du kannst sehen, dass die Stacheln uns nicht mehr weh tun , sobald wir nicht mehr im Kampf sind. Und das ist etwas, das ich dir zeigen wollte. Wir haben zwei Möglichkeiten. Wir gehen entweder durch Option a, die die ANOVA ist, das ist etwas die Währung des Spiels. Und der andere, wo wir einen Schlüssel abholen können. Und Sie können auch genau hier sehen, dass wir die Währung oder das Geld haben die Währung oder das Geld , das wir mit dem Schuss verwenden werden. Also werde ich dieses Spiel ein bisschen durchspielen und dir einfach zeigen, wie man einkauft. Also wirst du eine Idee haben. Oh, Fall. Wie Sie sehen können, ist eine der Levels das Herz, die andere Ebene ist der Shop. Also lasst uns in den Laden gehen und sehen, wie das aussieht. Und all das werden wir in unserem Spiel umsetzen, offensichtlich in gewissem Maße. Offensichtlich können wir kein Spiel wie dieses erstellen. Das dauert Jahre und Jahre und ein riesiges Thema. Da sind wir los. Wir sind im Shop. Wir haben den Ladenbesitzer. Wir haben keinen Ladenbesitzer und unser Spiel. Es würde den Lärm haben. Du kannst es selbst hinzufügen. Die Mechaniker arbeiten. Wie Sie sehen können, können wir entweder etwas Gesundheit kaufen, ein Upgrade kaufen oder wir können unsere Gesundheit und unser Spiel verbessern. Wir werden auch ähnliche Dinge wie dieses haben , bei denen wir unsere Gesundheit verbessern können, also erhöhen Sie die maximale Gesundheit, die wir haben. Wir können auch neue Waffen kaufen , die an Stelle von Upgrades stehen werden . Und wir können auch unsere Gesundheit erhöhen. Wenn also unsere Gesundheit gesunken ist, können wir einfach Hilfe kaufen und dann weitermachen. Das ist also im Grunde alles, was ich dir zeigen wollte. Ich weiß nicht, ob es noch etwas gibt , das ich dir zeigen möchte. Ich geh einfach wieder durch. Wir werden natürlich auch die Optionen abspielen, die Schaltfläche „Beenden“ und all das gute Zeug, ein bisschen Menü und so weiter und so weiter haben. Ich hoffe, Ihnen hat dieses Video gefallen, die kleine Demonstration dessen, was die Zukunft gemeinsam ist. Lassen Sie uns damit keine Zeit mehr verschwenden und beginnen wir mit der Errichtung unserer Welt. 7. Teil 2: So gestaltest du unsere Welt – -: Willkommen zurück, Meine Lieblingsspielentwickler. Wie Sie in diesem Video sehen können, haben wir eine einfache Szene erstellt. Wir haben einen einfachen Hintergrund hinzugefügt. Wir haben eine Tabelle hinzugefügt, die unser kleiner Kerl genannt wird, Jimmy, vielleicht ändert es seinen Namen. Ich weiß es nicht. Vielleicht nennen wir ihn zum Scheitern verurteilt Jimmy. Aber im Moment haben wir das Jimmy GameObject mit einem Hintergrund einer Art Kerker. Und wir haben, wenn wir das Spiel spielen, sehen Sie, dass nichts passiert, aber wir haben zumindest die Tabelle und alles eingerichtet. Wir haben genau hier ein Repository erstellt. Wie Sie sehen können, haben wir beim ersten Commit gelernt, wie man ein Projekt mit den neuen Unity Hub-Daten erstellt. Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Okay, also lasst uns anfangen. Das erste, was wir tun werden, ist, dass wir ein neues Projekt erstellen werden. Wie Sie hier sehen können, haben wir die neueste Version von Unity Hub 3 besser, ich gerade heute geladen habe. Mal sehen, wie alles eingerichtet ist. Und hier haben wir die Installationen. Es ist den vorherigen Versionen von Unity Hub ziemlich ähnlich. Der einzige Unterschied ist, wenn wir hier in das neue Projekt eingehen, können Sie sehen, dass wir viele Möglichkeiten haben, die Vorlage auszuwählen, die wir verwenden möchten. Wir haben die Version von Unity oder die Editorversion von Unity, die wir verwenden werden. Und wir haben die verschiedenen Arten von Vorlagen. Dies ist also eine Möglichkeit, ein Projekt einzurichten. Nehmen wir zum Beispiel an, Sie benötigen ein Projekt, das 2D-Handy ist. Dies wird es für Sie einrichten, aber natürlich müssen Sie es herunterladen. Aber was wir tun werden, ist, dass wir uns für einen 2D-Kern entscheiden werden. Wir werden den Projektnamen haben. Ich nenne es die Uhrzeit. Aber Eindringling in den ROCC. So kannst du wählen, welchen Namen du für dein Spiel willst. Mein Spiel wird der Time Bot Invader genannt, denn das ist die Geschichte meines Spiels. Also, und es ist auch ein 2D, steinartig. Du wählst den Namen, der zu deiner Spielart passt. Ich erstelle ein Projekt. Das wird ein bisschen Zeit in Anspruch nehmen. Was ich also tun werde, ist, dass ich die Magie der Bearbeitung nutzen werde, um dorthin zu gelangen, wo wir alles eingerichtet haben, und wir können mit der Erstellung unseres Spiels beginnen. Also sehe ich dich dort. Oh, okay, willkommen zurück. Jetzt ist also alles eingerichtet. Das Projekt ist geöffnet. Wir können anfangen, unser Spiel zu erstellen. Als erstes wollen wir ins Spielfenster gehen. Und hier drin sieht man, dass es ein freier Aspekt ist. Das wollen wir nicht. Wir wollen, dass unser Spiel 16 mal 9 oder ein 1920 bis 10 ATP ist. Dies ist die Standardauflösung der meisten Bildschirme, die meisten PCs, die dieses Spiel spielen werden. Wenn Sie diese Option nicht genau hier haben, können Sie auf den Plus-Button klicken und mit der festen Auflösung Ihre eigene hinzufügen. Also 1920 bis 1080 werde ich es einfach hier auswählen. Jetzt ist die Auflösung unseres Spielfensters festgelegt und wir können in die Szene gehen und wir können alles genau hier in unserer Beispielszene sehen. Sie können sehen, dass wir die Hauptkamera haben. Wir haben alles eingerichtet. Wenn wir die Größe des Szenenfensters ändern, ändert sich nichts. Es bleibt 1920 bis 1080. Okay, großartig. Das erste, was wir tun wollen, ist dass wir unserem Spiel einen interessanten Hintergrund hinzufügen möchten. Wir wollen nicht nur diesen blauen Bildschirm haben und Dinge hinzufügen. Also gehe ich hier in meine Akten ein. Ich wähle den Hintergrund aus und ziehe ihn hier in die Assets. Und jetzt können Sie sehen, dass wir es haben, warten wir einfach, bis es importiert wird. Da sind wir los. Also klicke ich auf das Hintergrundbild. Und Sie können direkt hier im Inspector sehen, wir haben viele Informationen darüber. Und du siehst, dass es ein Sprite 2D ist. Lassen Sie es uns dabei behalten. Sie können jedoch sehen, dass die Pixel pro Einheit 100 sind und es derzeit einen Filtermodus gibt, wir werden zwischen bi-Linear zu Punkt wählen. Dies bedeutet keinen Filter, da wir bereits ein gut aussehendes Bild haben. Und wenn wir das Bild hier hinzufügen, werden Sie feststellen, dass es sehr klein ist. Was wir also tun können, ist, dass wir auf den Hintergrund klicken und die Pixel pro Einheit auf 50 einstellen und diese anwenden können . Und da gehst du. Man sieht, dass es jetzt viel größer ist. Und wir werden die Position einfach hier zurücksetzen, 200. Was wir also gemacht haben, haben wir einfach den Filtermodus auf keinen Filter gesetzt. Wir haben die Pixel pro Einheit von 100 bis 50 eingestellt, wir haben alle Änderungen übernommen und wir haben einfach die Position und die Mitte festgelegt. Wenn wir also jetzt auf den Play-Button klicken, werden Sie feststellen, dass wir nicht mehr nur einen blauen Hintergrund haben. haben wir tatsächlich. Ein ziemlich solide aussehender Hintergrund. Jetzt können Sie sehen, dass die Kanten etwas außerhalb unseres Spiels liegen. kannst du ändern, wenn du willst. Machen wir das vielleicht ein bisschen kleiner, damit es genau so passt, wie wir es wollten. Und wir sorgen dafür, dass wir auch die Skala auf dem Y ändern. Kopieren Sie also einfach die Skala auf der X-Achse, die auf der Y-Achse eingefügt wird. Und wenn wir jetzt ins Spiel gehen, können Sie sehen, dass wir die Kanten sehen können, obwohl es hier oben eine kleine blaue Linie gibt. Wenn Sie OCD wie ich haben, können wir diese Leiste tatsächlich ändern, indem Sie nur ein bisschen nach oben gehen. Jetzt können wir es hier einfügen. Sieht das Spiel gut aus? Nein, ich brauche immer noch ein bisschen hoch. Da gehst du. Jetzt sieht das Spiel gut genug aus. Vielleicht musst du es auch hier unten ändern. Jetzt sieht das Spiel perfekt aus. Und wir werden nur die Waage auf das y kopieren. Kopieren Sie das, denn wenn wir unseren Spielmodus verlassen, können Sie sehen, dass die Skala wieder normal wird, was wir nicht wollen. Jetzt sehen wir mal, der Spiel- und Spielmodus sieht perfekt aus. Da sind wir los. Wir speichern alles in unserer Szene. Wir können sehen, dass der Hintergrund den richtigen unterschiedlichen Maßstab hat. Lasst uns weitermachen. Das nächste, was wir tun möchten, ist, dass wir unseren Spieler zum Spiel hinzufügen möchten. Also gehe ich auf meine Ressourcen ein. Ich wähle den Spieler gegen Spieler aus. Und wir werden das Xanax-Blatt wählen. Jetzt siehst du hier, dass ich eine andere Art von Charakter habe. Wir können diesen auch benutzen, wenn Sie möchten. Ich habe Ihnen das und die Ressourcen zur Verfügung gestellt, aber ich werde dieses Blatt genau hier verwenden, weil wir lernen werden wie wir dieses Blatt aufteilen oder dieses Blatt aufschneiden können. Wenn Sie doppelklicken, können Sie sehen, dass dies ein normales Bild eines Butlers ist , ich weiß nicht, dies ist das, was wir verwenden werden und ich verwende es von diesem Xenakis, ultimativen Smash-Freund. Es ist durch die satte rote Spitzmaus, so etwas. Stephen Challenger von open game arm.com , einer erstaunlichen Website. Sie können unzählige kostenlose Vermögenswerte erhalten. Und hier verwende ich es immer für fast alle Vermögenswerte, die ich habe. Und Sie können sich die von hier heruntergeladene Prüfungsdokumentabelle ansehen, dem Ersteller des Spritesheets etwas Liebe und Kommentare geben. Aber lasst uns eins fortsetzen. Was machen wir hier drin? Warum schneiden wir? Und was ist vor all dem ein Sprite? Lassen Sie mich also erklären, was genau ein Sprite ist. Also ziehe ich meinen Laser an. Ein Sprite ist ein Objekt. Genau wie wir das Bild haben, das wir gerade hinzugefügt haben, ist dies etwas anderes. Ein Sprite ist ein 2D-Objekt, das tiefer in die Zukunft eintauchen wird. Sie haben grafische Bilder, die Texturen genannt werden. Wenn wir also genau hier wieder in Unity gehen, können Sie sehen, dass wir diesen Hintergrund haben, oder? Und wir haben auch einen Sprite-Renderer und ein Sprite-Element hier drin, was der Hintergrund ist. Wenn ich es auf None setze, kannst du sehen, dass ich immer noch das Hintergrundobjekt habe, aber es gibt kein Bild mehr darauf. Also setze ich diesen Preis des Hintergrunds fest. Sie werden verwendet, indem eine Komponente namens Sprite-Renderer zu einem Spielobjekt hinzugefügt wird. Genau wie Sie es gerade gesehen haben, haben wir das Hintergrundobjekt und wir haben ihm einen Sprite-Render hinzugefügt. Und darauf haben wir die Möglichkeit, ein Sprite hinzuzufügen. Später werden wir sehen, dass wir den Sprites auch Ebenen hinzufügen können , damit sie rendern und voreinander stehen können. Also zurück in unserem Spiel, und hier siehst du, dass wir das Xanax-Blatt haben. Wenn wir es jetzt zu unserem Spiel hinzufügen, können Sie sehen, dass wir dieses ganze Blatt haben und das wollen wir nicht. Wir wollen es aufschneiden und verschiedene Arten von Animationen für unsere Prüfung haben, ich bin mir nicht sicher, wie ich überhaupt aussprechen soll. Ich nenne das einfach Jimmy. Das wird unser Gen sein. Also Jimmy, wir klicken hier rein. Wir schauen uns den Inspektor an. Wir können sehen, dass wir unseren Sprite-Modus und Single haben, das bedeutet, dass dieses ganze Bild ein einziges Bild ist. Aber weil wir es aufschneiden werden, werden wir es zu einem Vielfachen machen. Also wählen wir mehrere aus. Wir klicken auf Bewerben und gehen dann gleich hier in den Sprite-Editor. Wir klicken drauf. Und jetzt haben wir die Möglichkeit, dieses Baby in Scheiben zu schneiden. Wie werden wir das machen? Es gibt viele Möglichkeiten, ein Sprite zu schneiden. Wann immer wir eine gute Position haben, können wir das Sprite normalerweise automatisch machen. Wenn wir also versuchen, es automatisch zu tun, wie Sie sehen können, wurden alle Sprites nicht geschnitten. Das ist gut. Aber das ist nicht genau das, was wir wollen. Denn wenn, sagen wir, wir haben hier die Animation, die im Leerlauf ist. Wir haben drei Animationen, die das Idol sind, und wir haben drei Animationen oder nicht für Animationen. Dies, diese drei Bilder werden die Animation des Leerlaufs erzeugen, und diese vier Bilder erzeugen die Animation des Gehens. Und diese Bilder erzeugen den Torpedo oder das Flipping oder was auch immer. Aber jeder von ihnen hat eine andere Größe und das wird später ein großer Schmerz sein, wenn wir unsere Animationen erstellen. Unser Ziel ist es also, sie zusammen genau die gleiche Größe zu schneiden. Und wir können die Größe unseres Slice ändern, indem wir genau hier, wie Sie sehen können, den Schnitt ändern . Also werde ich diesen Schnitt etwas kleiner machen, damit wir die schwarzen Rechtecke nicht haben. Wie Sie sehen können, haben wir die schwarzen Rechtecke entfernt. Und hier haben wir auch die schwarzen Rechtecke entfernt und dasselbe hier drin. Und ich möchte das gerade behalten, damit ich demonstrieren kann , was passiert, wenn wir das Slicing tatsächlich anwenden. Also habe ich gerade nur diesen geändert. Man sieht, dass derjenige mit dem Leerlauf immer noch schwarze Rechtecke um sich herum hat. Und all diese wurden auch in Scheiben geschnitten. Wenn wir also die Apply-Taste genau hier drücken, können Sie es sehen. Auf der rechten Seite. Wir schließen dieses Fenster und wir können das Jimmy-Blatt öffnen. Und Sie können sehen, dass wir jetzt all diese verschiedenen Scheiben von den Schafen haben. So können wir jeden einzelnen einzeln zu unserer Szene hinzufügen. Und du kannst sehen, wie die Kamera Bead Jimmy versteckt. Da gehst du. Ein sehr winziger kleiner Jimmy. Und du kannst ihn genau hier sehen. Dies ist der Cutoff, das Slice, das wir gerade hinzugefügt haben. Und wenn wir das mit dem Rechteck hinzufügen, können Sie sehen, dass es ein Rechteck um ihn herum gibt, das wir nicht wollen. Also lösche ich beide. Ich klicke auf das Panelblatt. Schon wieder. Ich gehe zum Sprite-Editor und schneide all diese Dinge richtig auf. Jetzt kannst du das alleine machen. Es ist ziemlich einfach. Ich werde nur die Quadrate gleich hier ändern. Also mache ich sie kleiner. Dieser ist für den Leerlauf. Also los gehst du. Ich mache es kleiner, damit es zum Quadrat passt. Wir werden keines dieser beiden benutzen. Ich werde alles löschen, was wir nicht brauchen werden , und kenne diese beiden, dass wir sie brauchen werden. Also habe ich einfach Control Z gedrückt, um einige der Dinge rückgängig zu machen. Wir werden das Fliegen nicht benutzen, aber ich empfehle dem, einige der Dinge zu behalten, die Sie vielleicht hinzufügen möchten. Also werde ich das alles schneiden. Wir werden die Shooting-Animationen, die wir hier haben, nicht verwenden weil wir unsere eigenen Schießmechaniken erstellen werden. Also wähle ich nur all diese aus und lösche sie. Du kannst diesen zum Spaß behalten. Ich meine, ehrlich gesagt, das sieht so witzig aus. Sie können es für den späteren Gebrauch aufbewahren. Und schließlich wechsle ich den Torpedo hier drin. Also werde ich auch all diese löschen. Ich wähle eine dieser Boxen aus. Ich dupliziere es. So wie wir als Control D dupliziert haben, ich sicher, dass alle Slices die gleiche Größe haben. Also wähle ich einen von denen aus. Und ich dupliziere es noch einmal, setze es hier rein. Wir müssen sicherstellen, dass sie alle auf der gleichen Höhe sind. Das ist also 513. Und mal sehen, ob das zu allen anderen passt. Später wirst du verstehen, warum wir das tun und warum es so wichtig ist , dass alle Slices gleich sind. Also werde ich das hier und das hier verschieben. Offensichtlich können wir sehen, dass alle diese bis auf diesen richtig passen. Also müssen wir sicherstellen, dass es hier drin ist. Mal sehen, ob es bei diesem funktioniert. Und es ist ein bisschen klein, wie Sie sehen können, nein, es passt tatsächlich perfekt von oben nach unten. Das ist großartig. Und versuche auch sicherzustellen, dass der Charakter mittendrin ist. Also verschiebe ich das nur ein bisschen nach links. Dieser auch. Und wie hoch ist die Höhe an denen? Mal sehen, es ist drei, 513. Lassen Sie uns das kopieren. Okay. Dieser ist richtig. Füge es hier ein. Basierend auf diesem. Basierend auf diesem. Und basierend auf diesem. Und dieses hier müssen wir sie alle gleich hoch haben. Ich sehe, dass ich hier eine zusätzliche Box habe. Ich lösche es und jetzt haben wir die richtigen Ausschnitte, die wir brauchen. Also der Leerlauf, das Gehen und der Torpedo-Typ, den wir benutzen werden. Also drücke ich den Apply-Schlüssel. Ich schaue mal hin, da gehst du. Jetzt haben wir alles eingerichtet. Ich werde einen der benutzen, mal sehen, welcher der entweder 0 ist. Und noch eine Sache, die ich vergessen habe zu sagen: Wir können den Namen tatsächlich ändern, damit ich diesen Namen in untätig ändern kann. Das tue ich. Drei im Leerlauf und so weiter. Wir können das alles vorerst ändern. Sie werden gerade als Prüfer zehn, Beispiel 2 und so weiter bezeichnet. Ich behalte sie einfach so wie sie sind. Dies ist kein sehr wichtiger Schritt, aber ich wollte nur sicherstellen, dass Sie wissen, was passiert. Also werden wir natürlich auffordern, zu sparen. Lasst uns einfach hier auf „Bewerben“ klicken. Denken Sie immer daran, sich zu bewerben. Und jetzt können wir den Leerlauf hinzufügen. Und hier sieht man, dass es extrem klein ist. Wie machen wir es größer? Nun, genau wie wir es mit dem Hintergrund gemacht haben, können wir hier hineinklicken und die Pixel pro Größe ändern. Dies wird Ihre Aufgabe sein. Wir können es ändern. Stellen wir es auf 15 ein. Wo ist es hin? Oh, so verschwunden. Warum ist das so? Warum wird es nicht mehr angezeigt? Das ist eine knifflige Frage. Wir werden uns später damit befassen. Aber jetzt versuchen wir einfach, es so groß wie möglich zu machen. Vielleicht ist 50 noch ein bisschen klein. Machen wir es 32. Also denke ich, dass 32 groß genug 0 ist, also erschien es vorne. Warum, warum erscheint es manchmal in Frankreich, manchmal hinten. Wie können wir das beheben? Keine Sorge, wir werden all das in Zukunft reparieren. Also denke ich, dass 32 eine ziemlich anständige Größe hat. Vielleicht schaffen wir es vielleicht 28. Also okay. Ich denke, 28 ist genug, vielleicht sogar ein bisschen groß. Wir werden später sehen, ich ändere es wieder auf 32, vielleicht 30. Ich bin mir nicht sicher. Ich weiß es nicht mal. Nehmen Sie sich natürlich die Zeit zu verstehen, wie Sie es einrichten möchten. Aber bis dahin, bevor ich gehe, lass mich ausstellen. Du hast eine kleine Herausforderung gespielt und deine Herausforderung besteht darin, deinen eigenen Spieler zu erschaffen. Also erkunde das offene Spiel r.org oder du findest auch viele großartige Spiel-Assets auf HI dot io. Dies sind erstaunliche Websites. Die meisten Vermögenswerte sind kostenlos und Sie können sie verwenden. Finde ein paar Charaktere und Sprites, die zu deinem Stil passen. Wie Sie sehen können, habe ich mein eigenes Hintergrundbild hinzugefügt. Du kannst vielleicht einen anderen Bereich finden, in dem dein Spieler kämpfen soll. Füge sie deinem Spiel hinzu und zerkleinere die Sprites, so wie wir es in diesem Video gelernt haben, und das war's. Also pausiere das Video jetzt und mach den Fall jeder Herausforderung. Bevor ich gehe, müssen wir das Letzte, was wir tun müssen, ein Repository erstellen. Wir haben also bereits gelernt, den Quellbaum herunterzuladen und alles hinzuzufügen. Das Letzte, was wir tun werden, ist, dass wir auf Erstellen klicken oder Sie können einen neuen Tab bei den Brauen öffnen. Sehen wir uns ein Unity-Projekt an. Wo haben wir es gespeichert? Wir haben vergessen, wo wir alles gerettet haben. Mal sehen, Unity-Projekte Backup. Da sind wir los. Finden Sie den gekauften Eindringling in die Zeile wie diese, wo wir den Ordner auswählen. Wir werden ein Repository erstellen. Ja. Und wie Sie sehen können, ist alles hier so eingerichtet, wie wir gelernt haben, wir müssen sicherstellen, dass wir die Bibliotheken ignorieren müssen. Rechtsklicken Sie also, ignorieren Sie alles in der Bibliothek. Okay, jetzt haben wir die Gitignore-Akte. Wir werden es öffnen. Wir werden verstehen, dass das in Ordnung ist. Git. Ignoriere Los geht's, die Meister. Und wir klicken einfach auf Zeile. Control, eine Kopie davon hier drin. Wählen Sie alles aus Steuerelement V. Speichern Sie das. Zurück. Hier können Sie sehen, dass sich die Gitignore-Datei geändert hat, sodass alles, was wir nicht brauchen, entfernt wurde und nicht gespeichert wird. Das werden wir alles inszenieren. Wir werden unsere Arbeit verpflichten und dies wird das erste Commit unseres Spiels sein. Begehen Sie unsere Änderungen, gehen Sie zu den Meistern, und da gehen wir los, Wir sind bereit für unsere Reise. Das ist so aufregend. Dies ist das erste Mal, dass Sie ein Projekt erstellen. Wirklich, das ist sehr aufregend. Ich hoffe also, dass Sie die Herausforderung meistern. Finden Sie Ihre eigenen Sprites, stellen Sie sicher, dass die Änderungen immer sehr wichtig sind. Du wirst verstehen, warum du mir später auf deiner Spieleentwicklungsreise danken wirst, vertrau mir und ich sehe dich im nächsten Video. 8. Den Spieler erstellen: Willkommen zurück, meine Spieleentwickler. In diesem Video haben wir alles über das Sortieren von Ebenen gelernt. Wir haben auch etwas über die Beziehung zwischen Eltern und Kindern erfahren, nicht wie in normalen Eltern-Kind-Beziehung, wie in der Eltern-Kind-Beziehung des Spielobjekts. Wie Sie gerade sehen können, wird die Schrotflinte vor dem Arm oder hinter dem Arm gerendert, aber sie werden alle vor dem Spieler gerendert, der vor dem Hintergrund gerendert wird. Und er hat auch einen kleinen Schatten. Verschwenden wir also keine Zeit mehr und fangen wir an. Oh, Fall. Also lasst uns anfangen. Das erste, was wir tun wollen, ist, dass wir ein Spielobjekt für Spieler erstellen möchten. Also wollen wir das vorerst nicht haben, wir werden es ändern. Wir wollen das Sprite nicht als Hauptobjekt haben. Wir möchten ein Spieler-Spielobjekt verwenden, das einen Körper hat, der wiederum das Sprite-Render ist. Also werde ich das von untätig in den Körper ändern. Und ich klicke hier mit der rechten Maustaste erstelle ein neues Spielobjekt. Und ich werde seine Position zurücksetzen, weil Sie derzeit sehen können, dass wir dieses Spielobjekt erstellt haben und seine Position basiert auf Wo wir in der Szene suchen. Sie können also sehen, dass es bestimmte Handlungen hat, eine bestimmte Art und Weise, eine bestimmte Z. Was wir tun können, ist, dass wir auf das X klicken, es auf 0 setzen können, wir können auf das Y klicken, aber wenn die Nullen bei 200, aber das ist ein bisschen umständlich bei funktioniert. Aber es gibt einen viel reibungsloseren und professionelleren Weg. Übrigens habe ich dreimal auf Steuerelemente geklickt, um all dies rückgängig zu Wir können auf die drei kleinen Schaltflächen hier oder drei kleine Punkte klicken . Wir können nach unten scrollen und wir können sehen, dass wir die Position zurücksetzen oder den gesamten Transport zurücksetzen können. Nehmen wir zum Beispiel an, ich habe eine Drehung von 134 festgelegt. Ich klicke hier rein, ich kann die Position zurücksetzen oder die Rotation zurücksetzen oder das gesamte Spielobjekt zurücksetzen. Das sind also nur kleine Hinweise. Sie können sogar sehen, dass der Name des Spielobjekts zurückgesetzt wurde. Also nicht Woche oder Woche, wir haben es nicht mal genannt. Ich glaube. immer, wir werden das die Unterbrechsebene nennen, die auch Ginny ist. Und wir werden den Körper bewegen und ihn dort ansetzen, der Doom Player. Okay, was ist genau dort passiert? Lass mich das einfach wiederholen. Schauen wir uns die Leiche an. Wie ist seine Position? Es ist minus 5.60,89. Wenn wir es unter den Kuppelspieler stellen, machen wir es zu einem Kind. Jetzt können Sie sehen, dass wenn wir V bewegen, nicht spielen oder links und rechts bemerken, dass wir den Körper nicht bewegen. Wir bewegen das Doom-Spiel-Objekt. Man sieht, dass sich der Körper , der genau hier ist, auch bewegt. Und Sie können sehen, dass wir seine Position ändern können. Und das Coole ist, schauen wir uns den Körper noch einmal an, kürzlich Position des Körpers. Also ist der Körper, sagen wir, addiere 0, 0, okay? Wenn wir den DOM-Spieler bewegen, wie ist der Körper die Position des Körpers, solange er noch 00 ist? Also jetzt ist die Position, Rotation und Skalierung und alles relativ zum Hauptspielobjekt, das der Untergangs-Spieler ist. Aber das Hauptspielobjekt ist nicht das richtige Wort. Es ist das übergeordnete Spielobjekt und der Körper wird zum untergeordneten Spielobjekt. Wie gefällt eine Eltern-Kind-Beziehung? Das ist keine Therapiesitzung. Es ist eigentlich eine so genannte Eltern-Kind-Beziehung in Unity. So bewegt, dreht und skaliert das Kind mit dem übergeordneten Spielobjekt, wie wir gerade gesehen haben, um einen Körper von APT-Objekten zu erstellen, die sich zusammen bewegen. Wir werden sehen, was ich mit einem Körper von Objekten meine. Ich meine nicht nur den Körper des Spielers. Wir werden einen Arm hinzufügen, wir werden eine Waffe hinzufügen, wir werden einen Schatten hinzufügen. Und all diese werden sich bewegen oder müssen sich mit dem Spieler bewegen, während wir unser Spiel spielen. Kinder können auch Eltern anderer Objekte sein. Sie werden später feststellen, dass wir ein Kind von einem Kind bekommen können. Das Kind wird also Elternteil, aber es ist immer noch ein Kind im Verhältnis zum Hauptelternteil. Es ist also wie eine Art Großelternteil, wenn du willst, nenne es so. Schließlich sind die Eigenschaften der untergeordneten Transformation relativ zum übergeordneten Element. Das bedeutet, dass die Position des Körpers, wie Sie gesehen haben, als wir die Position des übergeordneten Spielobjekts ändern, die Position des Körpers gleich bleibt, 0, 0, 0 Fall. Lasst uns also wieder zu Unity gehen. Jetzt haben wir die Leiche. Als Nächstes werden wir eine Waffe und den Schatten hinzufügen. Wenn wir also auf die Ressourcen eingehen. Der Spieler hier sieht man, dass wir ein R haben und wir haben einen Schatten. Und dieser gehört dem anderen Doom Player, nicht diesem, dem, den wir derzeit mit dem anderen verwenden, den ich bereitgestellt habe, du kannst beides benutzen. Ich werde diesen Arm speziell benutzen nur damit wir immer den Unterschied zwischen den beiden kennen. Es wird nicht so hübsch aussehen, aber es ist gut zum Lernen. Also wähle ich den Arm und den Schatten und ziehe sie hier in die Säuren. Ich setze den Schatten und du kannst selbst versuchen. Wenn ich also den Schatten unter den Kuppelspieler bewege, wirst du feststellen, dass wir den Schatten jetzt an einer anderen Position haben, wenn du ihn als Kind des Dünenspielers bewegst. Ich kann es zurücksetzen und ich kann es genau hier platzieren, aber es ist nicht da. Und selbst wenn ich es etwas größer mache, werde ich das vielleicht acht statt 100 machen. Da gehst du. Du kannst sehen, dass der Schatten jetzt vorne ist. Aber warum muss es manchmal vorne sein, manchmal hinten? Was gibt, wie werden wir das beheben? Wir besprechen das in nur ein bisschen. Lass mich einfach den Arm hier hinzufügen. Da sind wir los. Jetzt haben wir den Arm. Stellen wir es als Kind der Kuppelspieler im Schatten darunter ein. Wir werden die Position des Arms zurücksetzen. Wir werden die bewaffneten 32 bewerben lassen. Also während der Arm, so kann man den Arm sehen. Da gehst du. Es ist hinter dem Spieler. Das ist überhaupt nicht gut. Wie werden wir das beheben? Wir werden das mit etwas beheben, das als Sortierebenen bezeichnet wird. Derzeit können wir also sehen, dass der Körper einen Sprite-Renderer hat, der Arm einen Sprite-Renderer und der Schatten auch einen Sprite-Renderer hat. Und Sie können genau hier im Sprite-Render sehen so etwas gibt, das als zusätzliche Einstellungen bezeichnet wird, die als Sortierebene und die Reihenfolge in Ebenen bezeichnet werden. Was macht das alles? Sie können sehen, dass alles, was derzeit der Hintergrund enthält, auf der Standardeinstellung ist. Der Körper, das R und der Schatten sind alle auf der Standardeinstellung und alle sind in 0 angeordnet. So bestimmt Unity, welches Sprite vor welchem anderen Sprite stehen soll, insbesondere wenn es um 2D-Spiele geht. Derzeit sieht man also, dass der Schatten bei 0 liegt und hinter dem Spieler liegt. Aber sieh genau hier hin. Oder lass uns den Arm machen. Wenn ich das R bekomme, ist es immer noch auf der Standardeinstellung wie der Körper. Aber wenn ich es auf den einen lege, los geht's. Jetzt ist es vor unserem Spieler. Wenn ich es sage, bewegen wir es zur Seite. Wenn ich es auf minus1 setze, kannst du sehen, dass es hinter dem Hintergrund verschwindet. Also lass es mich wieder auf eins setzen und lass es mich ins Flugzeug stellen. Nun, das ist großartig, alles funktioniert gut. Ich kann den Hintergrund auf minus1 setzen und versichern, dass es jedes Mal, wenn ich etwas hinzufüge , vor oder in der Bank und der Bank liegt. Aber es gibt ein Problem. Was passiert, wenn ich 100 Objekte oder 200 Objekte mit 5000 Objekten habe? Muss ich sie alle einstellen? Minus1 plus 1, 2, 3, 4 minus 100. Offensichtlich nicht. Was wir tun müssen, ist, dass wir eine Sortierschicht erstellen müssen. Und wenn ich direkt hier auf den Hintergrund klicke und wenn ich auf die Standardeinstellung klicke, kannst du sehen, dass ich eine Sortierebene zu unserem Gewinn hinzufügen kann. Klicken wir also auf Sortierebene hinzufügen. Wir öffnen die Ebene. Wie Sie sehen können, haben wir Tags, wir haben Sortierebenen und wir haben Ebenen. Wir werden uns nur ein bisschen mit denen beschäftigen. Konzentrieren wir uns auf die Sortierebene. Wir können das kleine Plus genau hier treffen. Und wir können eine neue Ebene erstellen, die den Hintergrund aufruft. Jetzt können Sie sehen, dass der Hintergrund vor oder hinter der Standardeinstellung gerendert wird. Wenn ich also wieder in den Hintergrund gehe, wird das in nur ein bisschen Sinn ergeben. Ich stelle die Sortierebene als Hintergrund ein. Und da gehst du. Man sieht, dass es verschwindet. Weil lass mich zurückgehen. So wie wir zurückgehen, gehen wir zu Layers, den Ebenen, die Sie hier sehen können. Also Ebenen, Ebenen hinzugefügt. Sie kriegen diesen Inspektor. Wenn ich den Hintergrund hinter die Standardeinstellung verschiebe, können Sie jetzt sehen, dass alles, was sich auf der Standardebene befand, also der Schatten, der Arm und der Körper jetzt davor gerendert werden. Also zurück zur Ebene. Auf dieser Ebene können Sie sehen, dass die Hierarchie so funktioniert. Und das ist hier sehr wichtig. Aber wie Sie sehen können, macht es das Leben so viel einfacher. Jetzt haben Sie eine Herausforderung und Ihre Herausforderung besteht darin , eine Layer-Sortierebene zu erstellen. Also erstellen wir eine neue Sortierebene namens Player. Weisen Sie dieser Ebene alle Elemente des Spielers zu. Stellen Sie sicher, dass der Spieler vor dem Hintergrund gerendert wird , wie wir gesehen haben, indem Sie die Hierarchie in der Sortierebene ändern. Und schließlich, als zusätzliche Herausforderung, zu den Ressourcen, gehe zu den Ressourcen, füge eine Waffe von ihr hinzu, füge eine Waffe von ihr hinzu, setze sie auf den Spieler und stelle sicher, dass sie zwischen dem Spieler und dem Arm gerendert wird. Wir wollen, dass der Arm vor der Waffe steht, aber wir wollen, dass die Waffe auch vor dem Spieler steht, aber hinter der Waffe. Damit musst du also rumspielen. Wenn Sie eine zusätzliche Ebene erstellen müssen, fahren Sie fort. Sie können so viele Sortierebenen erstellen, wie Sie möchten, aber stellen Sie sicher, dass Sie die wahren Dinge behalten, damit Sie keine spezielle Ebene für den Arm und den Schatten erstellen müssen. Es ist die ganze Zeit auf den Spieler. Also mach dir darüber keine Sorgen. Halten Sie das Video jetzt an und machen Sie die Herausforderung. Okay, willkommen zurück. Wie hast du fast das bekommen? Ich hoffe, du hast dein Bestes gegeben, um die Herausforderung zu meistern. Gib immer dein Bestes mit einer Herausforderung, auch wenn es schwer ist, auch wenn du nicht sicher bist, wie es geht, kannst du immer zurückgehen und rückgängig machen, was du getan hast. Man lernt aus den Fehlern, die du gemacht hast. Wie auch immer, Spielerebene, wähle ich den Körper aus, halte die Kontrolle, wähle den Arm und den Schatten aus. Und das kann ich alles ändern. Und zur Spielerebene verschiebe ich den Schatten, um direkt unter dem Spieler zu sein. Mal sehen. Da sind wir los. Ich kann die Bestellebene erstellen. Lass es uns bei 0 halten. Der Körper wird an einem sein und der Arm wird um zwei sein. So wird der Arm immer gerendert und vor dem Körper des Spielers. Lasst uns die Szene retten und lasst uns in unsere Ressourcen gehen und unsere Waffen holen. Sie können also genau hier in unseren Ressourcen sehen, dass wir die Waffen haben, die hier laufen. Lass uns zum PNG gehen. Ich wähle die Schrotflinte ziehe sie hier in die Vermögenswerte. Ich gehe zu welchem Ende? Der Kuppelspieler. Ich ändere das durch die Schusspistole. Es ist extrem klein. Ich werde sicherstellen, dass dies eine dritte Rampe ist, um die Änderungen möglicherweise zu übernehmen. Während die Schrotflinte 0 oder wer groß zupft. Also werde ich das in vielleicht die Waffe ändern, die eine Sortierschicht für die Waffe erstellt. Also alle Waffen, Waffen. Und das wird als Waffen festgelegt. Okay. Es ist ein bisschen größer als ich möchte. Oder wir wissen es, weil wir nur die Waffen des Spielers verwenden, den wir nicht erstellen werden. Also los geht's. Wir werden das entfernen. Wir werden die Schrotflinte auf der Spielerebene behalten. Und weil der Arm auf den beiden liegt, setzen wir ihn auf die drei und die Schrotflinte wird gerade auf den beiden sein. Also los gehst du. Aber lassen Sie uns das natürlich zu einem Kind des Spielers machen. Und offensichtlich müssen wir die Schrotflinte ein bisschen kleiner machen. Also 32, lass uns 50 machen. Sieh mal, wie das aussieht. Vielleicht zu klein. Versuchen wir es. 40. Danke. Vierzig werden gut sein. Immer noch so groß. Vielleicht machen wir es 40 bis 40, um das anzuwenden. Ja, ich glaube, das ist Schrotflinte sieht gut genug aus. Also los geht's, spar all das, führe das Spiel aus. Und da sind wir los. Jetzt haben wir den Hintergrund, den Spieler, wir haben einen Schatten, der übrigens eine sehr gute Berührung ist, er gibt dem Spiel tiefe. Und wir haben eine Schrotflinte, die vor dem Spieler gerendert wird. Jetzt denke ich, dass die Schrotflinte von einem kleinen Positionswechsel profitieren würde, aber im Moment hoffe ich, dass es Ihnen gefällt. Lass uns gehen und es auch nie vergessen. Änderungen im Metall. Sie können also sehen, dass wir all das inszenieren werden, aber wir haben ein paar Dinge, die wir nicht ändern möchten. So zum Beispiel einige der PNGs oder die Bilder, die viel Platz einnehmen. Im Moment werden wir sie behalten, aber später wirst du sehen, dass wir die Bilder nicht inszenieren müssen. Wir können sie einfach entfernen. Sie nehmen viel Platz ein, unnötigen Platz. Also machen wir vorerst, wir werden all das inszenieren und die Änderungen übernehmen. Was haben wir gemacht? Wir haben einen Spieler erstellt und das Sortieren von Ebenen gelernt. Es ist sehr wichtig, dass Sie Ihre Commits immer zu etwas benennen , an das Sie sich später erinnern könnten. Zum Beispiel wissen wir jetzt, dass dies das erste Commit und das zweite Commit war , das wir einen Spieler erstellt und die Sortierschicht gelernt haben. Wir hätten eine Waffe hinzufügen, die Sortierschicht der Waffen ändern usw. Also hoffe ich, dass es Ihnen gefällt und ich sehe Sie im nächsten Video, in dem wir dem Player tatsächlich ein Skript hinzufügen und sein Verhalten ändern werden . So aufregend, wir sehen uns dann. 9. Bewegen von Eingaben (Varianten): Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video werden wir unser erstes Skript erstellen und es unserem Doom Player hinzufügen. Nicht nur das, wir werden viele Dinge lernen, wir werden lernen, was dieses gruselige Wort bedeutet. Wir werden etwas über Variablen lernen. Wir werden etwas über Inputs lernen. Wir werden etwas über Vektor 2 lernen. Wir werden lernen, wie Start und Update getrennt funktionieren. also ein etwas längeres Video, Dies ist also ein etwas längeres Video, wenn Sie möchten, aber wenn Sie ein Anfänger sind, ist es sehr wichtig, sehr wichtig, alles zu verstehen. Verschwenden wir also keine Zeit mehr und fangen wir an. Oh, okay, also Zeit für ein bisschen Scripting. Das erste, was wir tun werden, ist, dass wir ein Skript erstellen und es dem Doom Player zuweisen. Jetzt gibt es viele Möglichkeiten, Skripte zu erstellen, und es gibt viele Möglichkeiten, bestimmten Objekten Skripte zuzuweisen. Sie sind alle gleich. Beginnen wir mit dem grundlegendsten, und das ist einfach auf das Spielobjekt zu klicken. Sie können genau hier sehen, dass wir die Transformation haben. Es ist eine der Komponenten, die wir haben. Wir können hier eine weitere Komponente hinzufügen, indem wir darauf klicken. Jetzt können Sie sehen, dass wir viele Komponenten haben, die wir hinzufügen können, von Audio über Affekt bis hin zu Physik und so weiter. Aber wir haben auch diese Möglichkeit, Skripte hinzuzufügen. Wir können darauf klicken. Wir können es durchschauen und das Skript hinzufügen, das wir wollen. Oder noch einfacher als das, wir können einfach den Namen des Skripts eingeben, das wir hinzufügen möchten. Und das Skript, das wir aufrufen oder erstellen möchten, ist der Player-Controller. Also erstellen wir genau hier einen Layer-Controller und stellen sicher, dass Sie den Namen als einen einzigen Satz ohne Leerzeichen erstellen. Sie können genau hier sehen, dass wir die Option für ein neues Skript haben. Lasst uns drauf klicken. Sie können den Namen als Spieler-Controller sehen. Und jetzt können wir das Skript erstellen, aber stellen Sie sicher, dass Schuh das richtige Wort oder den richtigen Namen für das Skript herausfindet , da es der Name der Klasse in diesem Skript sein wird. Dies wird sehr wichtig sein, wenn Sie später Skripte erstellen. Also erstellen wir eine Anzeige. Warte nur ein bisschen. Und jetzt sollten wir sehen, dass wir das Skript bereit haben. Wenn wir genau hier darauf klicken, sehen wir im Inspector, wie dieses Skript aussehen wird. Und jetzt doppelklicken wir. Und Sie können sehen, dass sich Visual Studio öffnet. Jetzt. Eines der Dinge, die mich viele Leute oder viele Schüler von mir immer wieder fragen. Wenn Ihr Skript nicht mit Visual Studio geöffnet wird oder wenn Sie beispielsweise etwas hier eingeben und Sie die Empfehlungen von Visual Studio nicht erhalten, können Sie auf das gehen, gehen Sie zu Einstellungen, gehen Sie zu den externen Tools, und stellen Sie im externen Skript-Editor sicher, dass Sie über Visual Studio Community verfügen. Sie können unsere IDEs wie Visual Studio-Code wählen. Aber ich persönlich mag oder verwende lieber die Visual Studio Community 2019. Es ist viel besser und reibungsloser als das Studio. Manchmal hat Studio einfach seine Macken, wo es nicht auftaucht, öffnet sich nicht richtig. Deshalb verwende ich lieber Visual Studio Community. Das ist kostenlos. Es funktioniert. Lass uns weitermachen. Jetzt. Wir haben unser Skript genau hier geöffnet. Wir haben die Bibliotheken, die wir benutzen können. Wir haben den Klassennamen, den Spieler-Controller. Es sollte immer den gleichen Namen haben wie das Skript, das wir hier erstellt haben. So können Sie den Player-Controller unter keinen Umständen sehen, ändern Sie den Namen des Skripts hier, ohne den Klassennamen zu ändern? Versuch nicht mal das zu tun. Es wird viele Probleme verursachen. Was haben wir hier? Es ist ein Publikum, wir werden sehen, was das bedeutet. Es ist eine Klasse, es ist Mono-Verhalten. Monte-Verhalten gibt uns die Möglichkeit, Dinge wie Start und Update zu verwenden. Was ist Start? Start ist eine Methode. Wir werden später sehen, welche Methoden es gibt. Aber im Moment wird alles, was Sie wissen müssen, dass jeder Code, den wir in den Stern schreiben , ausgeführt wird, sobald wir unser Spiel starten Wenn dieses Objekt eingeschaltet ist , werden wir natürlich später sehen, was das auch bedeutet. Wie Sie sehen können, wird ein Update einmal pro Frame aufgerufen. Wenn wir zum Beispiel Dinge haben, die wir jedes einzelne Frame-Update nennen möchten, perfekt dafür sind, und wir werden all dies sehen, wenn wir diesen Kurs durchlaufen. Du wirst alles verstehen, mach dir darüber keine Sorgen. Das erste, was wir tun müssen, ist, dass wir einen Weg brauchen, unseren Spieler zu bewegen. Wir werden dies tun, indem wir Eingaben von den Pfeiltasten oder den WASD-Tasten nehmen. Aber bevor wir das tun, müssen wir etwas berücksichtigen, und das ist die Bewegungsgeschwindigkeit unseres Spielers. Und dafür brauchen wir eine Variable. Was ist eine Variable, wenn es um C-Sharp geht? Lass es mich erklären. Variablen sind wie Boxen. Also haben wir eine Schachtel, wir geben ihr den Namen lebt, und wir legen eine Nummer drei in diese Kiste. Jetzt haben wir eine Variable, um Leben zu erhalten, die drei darin hat. So erstellen wir den Code für diese Box oder wertvoll. Wir beginnen damit, die Barrierefreiheit zu geben. Wo kann man auf diese Variable zugreifen? Kann entweder öffentlich oder privat sein. Wenn es privat ist, können wir nur innerhalb der von uns erstellten Klasse darauf zugreifen , nicht von außen. Wenn es öffentlich ist, können wir jedes andere Skript verlassen, das wir wollen. Wir müssen den Typ der Variablen zuweisen. Wir haben also mehrere Typen, wir haben Ganzzahlen, Strings und so weiter. Wir werden nur ein bisschen sehen, welche anderen Typen wir haben. Wir haben den Namen der Variablen. Offensichtlich sollte jede Variable einen Namen haben. Wie nennen wir es sonst? Und wir haben die Daten, die sich innerhalb dieser Variablen befinden. So erstellen wir eine Variable in C Sharp. Und das ist die Darstellung, wenn du willst, Es ist genau wie eine Kiste, in die wir Dinge legen und dann machen wir weiter. Wir haben verschiedene Arten von Variablen. Und der erste Typ ist eine Geschwindigkeit. Eine Ganzzahl ist also eine normale Zahl, sagen wir 123456. Ein Float ist, sagen wir 4.8. Warum haben wir einen Float? Denn manchmal beträgt die Geschwindigkeit von etwas oder die Geschwindigkeit eines Autos nicht nur fünf oder sechs. Es kann 6,32 sein, es kann 6,9 sein, es kann 6.9456 sein. Also brauchen wir einen Float, und so erstellen wir einen Float. Wir fügen die Daten immer hinzu. Also der 4.8 mit einem F am Ende. Dann haben wir einen booleschen Wert. Der Boolesche Wert ist normalerweise entweder wahr oder falsch. Nehmen wir zum Beispiel an, wir möchten feststellen, ob ein Spieler tot ist oder nicht. Da er also tot ist, dann ist die Variable wahr. Wenn er nicht tot ist, ist die Variable das S falsch. Endlich haben wir eine Zeichenfolge. Was ist zum Beispiel eine Zeichenfolge? Wir haben mehrere Charaktere, nacheinander. Ich sehe h, e , l. Diese Zeichenfolge ist Michael. Also nennen wir eine Variable vom Typ string mit dem Namen mein Name, und sie repräsentiert Michael. Stellen Sie sicher, wenn Sie eine String-Variable erstellen, die sich zwischen diesen beiden Anführungszeichen befindet. Okay, jetzt, da all diese Variablen fertig sind, wir weiter und erstellen unsere eigene Variable in den Skripten genau hier. Also das erste, was wir tun werden, da wir etwas erstellen werden, das als serialisiertes Feld bezeichnet wird. Hab jetzt keine Angst vor diesem langen Namen. Es wird eine ganze Zahl sein, und es wird Bewegungsgeschwindigkeit genannt. Dies wird bestimmt, wie schnell sich unser Spieler bewegt, während wir Ihr Verständnis implementiert haben und warum wir etwas verwenden, das als serialisiertes Feld bezeichnet wird. Du hast mir gerade gesagt, Michael, dass es entweder öffentlich oder privat ist. Was trifft sich dieses serialisierte Feld? Nun, mach dir darüber keine Sorgen. Später. Ich werde auch erklären, warum wir etwas verwenden, das als serialisiertes Feld bezeichnet wird. Aber im Moment verstehen Sie, dass es etwas ist, das wir im Inspektor sehen können. Wenn ich das also öffentlich mache, speichere das auf und geh zurück in unser Skript. Sie werden sehen, dass sich das im Inspektor ändert. Wir haben die Öffentlichkeit und die Bewegung. Und wenn wir zum Untergangsspieler gehen, können Sie genau hier sehen, dass wir die Bewegungsgeschwindigkeit haben und sie ändern können. Aber wenn ich es privat mache, damit andere Skripte nicht darauf zugreifen, werden Sie genau hier feststellen, dass wir es nicht mehr ändern können. Aber was ist, wenn wir es vom Inspector aus ändern wollen, aber gleichzeitig nicht möchten, dass andere Skripte darauf zugreifen. Nun, in diesem Fall erstellen wir ein serialisiertes Feld. Das sparen wir. Wir gehen zurück und machen Inspektor. Und Sie können jetzt sehen, wir es nicht ändern können, aber andere Skripte können nicht darauf zugreifen. Wir werden uns das später ansehen, wenn wir Fortschritte machen, wenn wir andere Skripte haben. Großartig, also haben wir jetzt die Variable der Bewegungsgeschwindigkeit. Das nächste, was wir bekommen wollen, ist D, Bewegung, Richtung oder der Input, den wir erhalten. Wie bewegen wir unseren Spieler? Nun, wir werden zwei Eingaben brauchen. Eine, die den Spieler nach links und rechts oder in horizontaler Richtung bewegt , und einer, der den Spieler nach oben und unten bewegt, was die vertikale Richtung ist. Die Art und Weise, wie wir das tun, ist die Verwendung des Eingabesystems und wir werden unsere Eingaben mit etwas erhalten, das als Eingabepunkt bezeichnet wird, erhalten Sie Zugriff Raw. Jetzt könntest du verwirrt sein. Was ist das? Wie kriegen wir das? Nun, wann immer du vielleicht etwas gegenüberstehst. Vielleicht eine neue Methode oder etwas Seltsames, das wir in Einheit verwenden und du bist ein bisschen verwirrt. Sie haben einen sehr hilfsbereiten Freund, nämlich Google. Und wenn Sie es dann in Google nachschlagen, können Sie sehen, dass wir eine sogenannte Unity-Dokumentation haben, die so ein erstaunlicher Ort ist und eine tägliche Informationsquelle für Sie sein sollte. Also wollen wir Input verwenden. Wir wollen die Achsen bekommen, die horizontal und vertikal sind. Sie können direkt hier sehen, wenn wir danach und die Dokumentationen suchen, haben wir alle Informationen, die wir benötigen. Zunächst können wir sehen, wie die Deklaration funktioniert. Wir können die Beschreibung sehen, sodass sie den Wert des virtuellen Zugriffs zurückgibt , der durch den Achsennamen identifiziert wurde. Es erklärt Ihnen auch, wie Sie diese verschiedenen Methoden anwenden können. Und es gibt Ihnen auch hier ein Beispiel, wie Sie es benutzen können. Und siehe da, sie benutzen es und das Update, wir können sogar weitermachen und es in unserem eigenen König verwenden. Aber im Moment werden wir nur den Eingabepunkt nachschlagen, die Zugriffszeile erhalten, horizontal. Sehr nett. Aber woher haben sie den horizontalen Namen bekommen? Schauen wir es uns an. Wenn wir zurückgehen und unser Spiel. Wenn wir zur Datei gehen oder mir die Projekteinstellungen bearbeiten sehen lassen. Wenn wir durch den Eingabemanager schauen, klicken wir auf die Achse, wir können sehen, dass wir die horizontale, vertikale Firewall zum Springen haben , MouseX Feuersprung usw. Dies sind alle Eingaben, die wir verwenden können. Und wenn wir auf die Horizontale klicken, sehen Sie genau hier, dass wir den Namen horizontal haben, weshalb er genau hier verwendet wird. Während Sie hier sehen können, dass wir horizontal verwenden. Und Sie haben auch die Vertikale und Sie können sehen, dass der negative Knopf links ist, der positive Knopf ist richtig. Und Sie haben auch einen negativen Knopf, was eine Alternative bedeutet, nämlich das A und das D. Sie haben auch die Schwerkraft und so weiter, aber von Details da drin. Und Sie haben auch die Achse, die x-Achse, was die Horizontale bedeutet. Lassen Sie uns also in unseren Code weitermachen und dies umsetzen. Also werden wir die Kälte gleich hier öffnen. Sie haben es als Update benutzt. Lassen Sie uns fortfahren und aktualisieren, da wir jedes Mal darauf zugreifen möchten . Also werden wir hier einen Eingabepunkt schreiben, Zugriff falsch bekommen. Und wir werden die beiden Klammern hier öffnen. Aber jetzt wollen wir horizontal schreiben. Sagen wir, wir schreiben Eile Xanthan. So kannst du sehen, dass ich es irgendwie vermasselt habe. Es ist nicht das richtige Wort. Wenn es nicht genau das gleiche Wort ist wie das hier in den Projekteinstellungen verwendete. Das wird nicht funktionieren. Was heißt das? Immer wenn wir die String-Referenzen verwenden, haben wir bereits gelernt, was Strings sind. Wir müssen sicherstellen, dass wir in Unity einsteigen. Doppelklicken Sie hier hinein, um es auszuwählen, steuern Sie C, um es zu kopieren, gehen Sie zurück und fügen Sie ein. Dies war sichergestellt, dass wir keinen Fehler machen würden, wenn wir eine Zeichenfolgenreferenz erstellen oder verwenden. Dies ist sehr wichtig, denn wenn es um Fehler geht, wird dies vom Visual Studio nicht erkannt. Deshalb ist es unerlässlich, wenn Sie immer einen String-Verweis verwenden, um es immer zu kopieren und einzufügen. Dies ist eine Regel, dass Sie Ihre gesamte Entwicklung Ihres Reisespiels nutzen werden. Jetzt, da wir die Achse horizontal rollen lassen. Wir können auch die Vertikale hinzufügen, aber es reicht nicht aus. Wir brauchen eine Möglichkeit, das zu speichern, auf das wir klicken. So wie wir das tun, ist, dass wir hier eine weitere Variable erstellen. Dieses Mal wird es privat sein. Es wird vom Typ Vektor 2 sein und es wird die Bewegung sein. Und was ist ein Vektor zwei und warum verwenden wir ihn, um den Bewegungseintrag zu erhalten. Nun, denn wenn wir hier zurückblicken und darauf warten, dass es kompiliert wird, können Sie sehen, dass die Position ein x, y und z ist. Nun, weil wir nicht in der VC-Dimension und dieser Dimension arbeiten, wie auch immer Sie es nennen möchten, wir arbeiten nur im x und y. Wir möchten einen Vektor haben, der sowohl das x als auch das y aufnimmt. Was wir jetzt in unserem Code tun können, können wir hierher kommen. Wir können Bewegungseingaben schreiben. Wir können den Punkt x hinzufügen und er wird gleich dem Eingabepunkt sein. Erhalten Sie den Zugriff falsch. Und nur um sicherzustellen, dass wir alles sehen können, schreiben wir das Debug-Punktprotokoll. Und hier drin werden wir nur die Bewegung ausdrucken, diesen Fuß Punkt x. Wir werden das speichern. Lassen Sie uns auch das Debug-Punktprotokoll und die gesamte Bewegungseingabe ausdrucken. Also schreibe ich hier rein, das ist der Vektor. Um das zu speichern, gehen Sie zurück zu Unity und stellen Sie sicher, dass Sie die Konsole genau hier haben. Wenn du nicht zu Window gehst, gehe zu General. Und Sie können genau hier sehen, dass Sie das Konsolenfenster haben. Also klicken wir hier an. Sie sich keine Sorgen um diese kleinen Fehler. Führe das Spiel aus. Da sind wir los. Wir können also sehen, dass wir derzeit Nullen haben. Wir können auf den Zusammenbruch klicken. Dies wird alle Nachrichten reduzieren, die gleich sind. Wenn wir jetzt versuchen, a oder D zu drücken, wenn wir auf das A drücken, dann geht's los. Sie können sehen, dass dies minus 1 wird und Vektor 2 minus 1 000 ist. Wenn wir die Taste d drücken, werden Sie feststellen, dass sie 1 und der Vektor zwei 110 ist. Also los geht's. Exzellent. Jetzt, da Sie verstehen, wie diese funktionieren, wie diese aussehen, ist es Zeit für eine kleine Herausforderung und Ihre Herausforderung wird es sein, den y-Input zu erhalten. Prüfen Sie also im Eingabe-Manager für Projekteinstellungen die Y-Eingabe, was soll es sein? Was sollte die Zeichenfolge auf mich verweisen? Rufen Sie die Eingabe und den Code mithilfe der Gap-Achsenrolle ab. Sie können sich auch etwas ansehen, das als Zugriff ohne Zeile bezeichnet wird. Dies ist eine gute Die zusätzliche Ressource für Sie zu tun. Es ist sehr einfach, nur die Dokumentation zu überprüfen, einfach ohne Rob Zugriff zu bekommen, sehen Sie, was der Unterschied ist. Und schließlich müssen Sie diese Eingabe auf der Konsole mithilfe des Debug-Punktprotokolls anzeigen, genau wie wir die Bewegungseingabe verwendet haben. Also pausiere das Video jetzt und mach jede Gallone. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Ich hoffe immer, dass du dein Bestes versuchst. Also werden wir diese Zeile duplizieren. Wie würden wir das machen? Klicken Sie einfach auf das Ende dieser Zeile. Halten Sie die Kontrolle D. Jetzt haben Sie genau dieselbe Zeile. Wir werden das von x auf das y ändern . Und dann bekommt die input.txt Zugriff. Rob, was sollte das sein? Nun, wir wissen, dass dies vertikal sein sollte, aber wenn es sich um String-Referenzen handelt, gehen wir zur Vertikalen, doppelklicken auf Control C, gehen zurück in das Code-Steuerelement V, speichern das. Und lassen Sie uns das auch duplizieren, Bewegung Input Dot y. Und lassen Sie uns hier einfach ein paar Worte hinzufügen. Das wird also das x sein, das wird das y sein. Rette all das, geh zurück in die Einheit. Schließen Sie das Fenster mit den Projekteinstellungen. Führe das Spiel aus. So wie Sie jetzt sowohl das x, das y als auch den Vektor oder alle 0 sehen können. Und Sie können sehen, wie viele wir hier haben. Sobald wir das w drücken, können wir sehen, dass wir das y als eins haben, den Vektor 2, 0, 1. Wenn wir das S drücken, ist es minus1. Wenn wir das a drücken, ist x minus1, solange das y noch 0 ist, können Sie es genau hier im Vektor 2 sehen. Wenn wir sowohl die W- als auch die D-Taste drücken, können Sie sehen, dass dieser Vektor 1 ist, 1, wobei x eins ist. Und mit allem funktioniert alles einwandfrei. Ich hoffe es gefällt dir. Ich hoffe, du hast verstanden, was passiert. Wenn Sie sich nicht sicher sind, was passiert. Ich habe versucht, das noch einmal durchzuschauen, zu verstehen, was ein Vektor zwei bedeutet. Wir haben auch etwas namens Vektor 3. Wann immer wir mit VC-Dimensionen arbeiten, wenn es sich um ein 3D-Spiel handelt. Und damit hoffe ich, dass es Ihnen gefällt und hoffe, dass Sie auch verstanden haben, wie Update in jedem einzelnen Frame aufgerufen wird , in dem Sie sehen können, wie oft es aufgerufen wird. Und nur für eine kleine Demonstration, wenn Sie immer noch ein bisschen skeptisch gegenüber dem stehen, was ich sage, versuchen wir es mit dem Debug-Punktprotokoll. Und sagen wir einfach hier drin, hey, ich bin und fange an, einmal angerufen zu werden. Habe das wieder in unserem Spiel gespeichert, als wir laufen, sobald dies zusammengebaut ist, führe das Spiel aus. Du wirst sehen, hey, heißt nur einmal. Und diese werden jedes einzelne Frame genannt. Und unser Spiel mit diesem sagte, wieder hier drin, begeht alle unsere Änderungen. Committieren. Und wie sollen wir es hier nennen? Ein Skript für den Player erstellt und Variablen gelernt. Dies liegt daran, dass wir normalerweise einen Kurs erstellen, wenn Sie ein Projekt machen und Variablen gelernt haben, ist das nicht wichtig? Ich entferne es. Das heißt nur, er habe ein Skript für den Layer erstellt. Wir werden unsere Änderungen begehen. Und wir sehen uns im nächsten Video. 10. Spielerpositionen ändern: Willkommen zurück, meine Spieleentwickler. In diesem Video werden wir tatsächlich die von uns erstellten Eingaben verwenden und wir werden sehen, wie wichtig Variablen sind. Wenn wir jetzt unseren Gewinn erzielen, werden Sie feststellen, dass wir nicht einfach da stehen. Sie haben nichts in der Konsole. Wenn wir die WASD-Taste drücken, können wir sehen, dass sich unser Spieler nach links, rechts, links, oben und unten bewegt . Und nicht nur das, wenn ich die Bewegungsgeschwindigkeit erhöhe, gehen wir los, Wir sind viel schneller. Also bewegen wir den Spieler nicht nur mit den Tasten, wir können auch steuern, wie schnell er sich bewegt hat. Also gut, das heißt, verschwenden wir keine Zeit mehr und lasst uns anfangen. Okay, jetzt wo wir die Eingaben bereit haben, sehen wir, wie sie funktionieren. Es ist Zeit, den Spieler tatsächlich zu bewegen. Wie wir versprochen haben. Lasst uns das Skript gleich hier öffnen. Und lasst uns fortfahren und dieses Debug-Punkt-Protokoll entfernen. Die waren auch einfach hier. Lassen Sie uns glauben, dass dies tatsächlich funktioniert. Okay, das erste, was wir tun müssen, ist, dass wir auf die transformierte Position des Spielers zugreifen müssen. Also klicken wir weiter und klicken auf Transformieren. Und Sie können genau hier sehen, wie hilfreich Visual Studio bereits ist. Es sagt uns, was die Transformation ist. Die Transformation, die gerade schreiben wird, ist also der Transport, der an dieses Spielobjekt gebunden ist. Welches Spielobjekt? Es ist das Spielobjekt, auf dem das Player-Controller-Skript steht. Und wenn wir hier zurückblicken, klicken wir auf den Layer. Jederzeit klicken wir auf den Spieler. Wir können sehen, dass der Spieler-Controller an den Spieler angeschlossen ist und die Transformation, die sich auf dem GameObject befindet, nicht als diese Spieler spielt. Wir greifen also auf diese spezifische Transformation zu. Also hier drin schreiben wir wieder Transformation, drücken Tab, um die Wortpunktposition abzuschließen. Sie können sehen, dass dies auf die Position, die Skalierung, die Drehung und alles zugreifen kann , was in der Transformation verfügbar ist. Und wir schreiben Position. Nun wird dies einem neuen Vektor drei entsprechen. Und es wird, sagen wir vorerst nur 0,1 f. Und wir können auch Punkt 1 f schreiben. Dies bedeutet 0, und wir halten die Z-Achse an derselben Stelle. Das werden wir speichern. Nun denken Sie vielleicht darüber nach, warum Vector3 haben wir nicht einfach gesagt, dass wir das nicht ändern wollen? Nun, wenn wir den Mauszeiger über die Position bewegen, können Sie sehen, dass die Weltraumposition der Transformation als Vektor drei, auch die Dokumentationen durchgehen und sehen kann, dass es sich tatsächlich um die transformierte Position eines jeden Objekts handelt, unabhängig davon, ob wir 3D verwenden, 2D 1D, Das ist unmöglich, aber Sie erhalten den Bildvektor drei Position. Wir greifen immer auf die Vektor-C-Position zu, aber wir behalten sie als 0 f. Jetzt ist der Umfang nicht vollständig, aber ich werde ihn verwenden, nur damit wir lernen, wenn wir Fehler machen, werde ich das speichern. Ich gehe hier wieder rein. Und lasst uns einfach ein paar echte Werte bekommen, damit wir es wissen, also minus fünf und sagen wir, das ist minus1 wird das retten. Wir werden unser Spiel laufen und schauen wir uns an. Da sind wir los. Also 0.10.1. Was scheint das Problem zu sein? Nennen wir es nicht jeden einzelnen Frame? Nun, das Problem hier ist, dass wir diesen Wert einfach hier zuweisen, den neuen Vektor 30.10.10 f zur Position. Bei jedem einzelnen Frame erhöhen wir nicht die Transformationsposition. Wie werden wir anfangen zu wachsen? Lass mich einfach den Dramatiker hier aufhalten. Wir werden schreiben, dass wir die Transformationspunkt-Position des Spielobjekts einnehmen und dann den 0.10.1 Vektor 3, jedes einzelne Frame, hinzufügen. Also werden wir das retten. Und lasst uns zurückgehen und uns unser Spiel ansehen, wie es gerade aussieht. Wir führen das Spiel aus und los geht's. Sehr Ziele. Der Spieler hat gerade das Gebäude verlassen, wie Sie sehen können, wie Sie jetzt sehen können, was hier passiert. Wir nehmen die Position transform.py ein. Wir weisen in der bereits verfügbaren Transformation zu, aber Position plus Vektor 3, und das machen wir jeden einzelnen Frame. Nehmen wir an, wir fangen bei 0, 0 an. Wir nehmen hier 000, wir fügen diesem Vektor hinzu, den nächsten Frame haben wir 0.21. Wir nehmen es, wir fügen hinzu, es wird 0,2. Wir nehmen es an, wir fügen hinzu, es wird 0,3. Also erhöhen wir es mit jedem einzelnen Frame. Wie Sie sehen können, gibt es hier redundanten Code. Redundant bedeutet, dass wir es mehrmals verwenden. Um dies zu vermeiden, können wir dies einfach hier entfernen und stattdessen ein Plus hinter den Gleichen hinzufügen. Und das ist genau die gleiche Syntax wie zuvor. Wenn wir das also noch einmal schreiben, lassen Sie mich das einfach duplizieren. Ich füge einfach zwei Schrägstriche hinzu. Dies wird zu einem Kommentar. Und wie gesagt, ein Common den Code nicht aus, und wir werden diesen einfach entfernen. Also als kleine Erinnerung daran, was dieses Plus gleich bedeutet. Also speichern wir das. Wir gehen zurück in unser Spiel und lassen uns das einfach etwas kleiner machen, also fügen wir eine weitere 0 hinzu und speichern das hier wieder in unserem Spiel. Wir führen den Code aus, das Spiel. Und los geht's, wir können ihn langsam wegschweben sehen und wieder großartig. Jetzt haben wir unseren Spieler in Bewegung. Aber wir wollen nicht, dass diese Werte nur willkürlich sind. Wir wollen keine 0,1 oder 0,01 haben. Wir wollen tatsächlich, dass der Input, den wir hier bekommen haben, den Spieler bewegt. Das wird also deine Herausforderung sein. Deine Herausforderung besteht darin, die Spielerposition mit dem Input zu bewegen. Sie greifen also auf die Position der Transformation des Spielers zu. Sie werden die Position zu einem neuen Vektor machen 3. Und Sie werden die Bewegung input.txt und Punkt y verwenden , da das X und Y dieses neuen Vektors 3 auch die Z-Achse bei 0 F halten und einige nur ein bisschen zusätzliche Hilfe. Ich empfehle Ihnen, die Unity-Dokumentation durchzugehen und sich das Beispiel anzusehen. Sie waren so nett bei Unity Company irgendwo , um uns ein Beispiel dafür zu geben, wonach wir suchen. Also pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Wenn wir also genau hier nach unten scrollen, können Sie sehen, dass wir die horizontale Eingabe erhalten, die vertikale Eingabe und dann alle in die transformierte Position legen. Dies ist das genaue Beispiel, das wir brauchen und unseren Gewinn. Wenn wir also wieder hier reingehen, schreibe ich anstelle von 0.01 den Bewegungseingabepunkt x. Ich schreibe den Bewegungseingabepunkt y. Und ich werde all das speichern. Jetzt zurück in unserem Spiel führen wir das Spiel aus und jetzt bewegt sich unser Spieler nicht. Wenn wir ihn nach rechts bewegen wollen, hatten wir den Dickey, den er nach rechts, links bewegt , und er ist verschwunden. Wie Sie sehen können, ist unser Spieler extrem, extrem schnell. Warum ist das so? Nun, es liegt daran, dass Updates in jedem einzelnen Frame aufgerufen werden. Wenn wir also noch einmal versuchen zu spielen, lass mich dir zeigen, was ich meine. Wenn wir hier zu den Statistiken nachschauen, können wir sehen, wie viele Frames pro Sekunde wir haben. Du weißt also, was Frames pro Sekunde sind? Wenn du jemals ein Spiel gespielt hast und du jetzt sehen kannst sind es fast tausend Bilder pro Sekunde. Wir nennen das tausendmal, 1000 Mal. Wir fügen einen hinzu, also fügen wir jedes Mal oder jede Sekunde eine 1000 hinzu, wenn Sie möchten. Wie werden wir das kontrollieren? Nun, es gibt einen sehr einfachen Weg, und das heißt, dies mit der Zeit.Deltatime zu multiplizieren. Und was passiert gerade, time.Deltatime, wenn wir den Mauszeiger darüber bewegen, es das Intervall und die Sekunden vom letzten bis zum aktuellen Bild. Was das tut, ist, dass es zwischen jedem Frame die Zeit braucht, wir multiplizieren es mit diesem und werden jetzt Bildrate und abhängig. Lass mich dir zeigen, was das bedeutet. Dies bedeutet, dass beim Ausführen des Spiels die Zeit, die vom ersten bis zum zweiten Bild benötigt wird, in die Bewegung aufgenommen wird. Und jetzt, wenn wir die D-Taste drücken, gehen wir los. Wir sind viel langsamer. Und wenn wir das W hätten, gehen wir nach oben, SVMs runter, a, wir bewegen uns nach links, bewegen uns nach rechts und so weiter und so weiter. Wie cool ist das? Was wir im anderen Plural haben, wen wir extrem niedrig sind. Dies ist keine Möglichkeit, ein Spiel zu spielen, besonders wenn uns gruselige Feinde folgen. Deshalb hatten wir diese Bewegungsgeschwindigkeit ständig variabel. Dies wird es uns ermöglichen, unsere Geschwindigkeit zu kontrollieren. Jetzt werden wir dies auch mit der Bewegungsgeschwindigkeit multiplizieren. Das werden wir speichern. In unserem Gewinn können wir also sehen, dass die Bewegungsgeschwindigkeit 20 beträgt. Stellen wir es auf fünf ein. Spar dir das auf, führe das Spiel aus. Und jetzt können wir nach oben, unten, links, rechts gehen, wie wir wollen. Wie cool ist, dass wir endlich einen Charakter haben, einen Spieler, der sich in einer Welt bewegt, die wir mit einfachem Code erstellt haben. Lasst uns diese 50 machen. Schauen wir es uns an. Nun, da sind wir los. Wir können sogar kontrollieren, wie schnell es geht. Ich meine, ernsthaft, wie aufgeregt bist du? Vielleicht bin's nur ich. Lassen Sie es uns um fünf Uhr behalten. Ich glaube fünf. Eigentlich langsam keine Fasern. Dann lasst uns das machen. Ja, da sind wir los. 10 sieht also wirklich gut aus. Und wenn das erledigt ist, hoffe ich, dass es Ihnen gefällt. Bevor ich das nächste Video vorstelle, wirst du feststellen, dass wir tatsächlich immer noch durch Wände gehen und weggehen können , was nicht gut ist. Deshalb werden wir im nächsten Video Physik auf unseren Player anwenden und ihn dazu bringen, mit verschiedenen Objekten in unserer Welt zu interagieren. Mit dem gesagt, vier, stelle ich sicher, dass ich deine Änderungen festnehme. Ich werde nicht mit jedem einzelnen Video anfangen, weil es etwas ist, das man automatisch werden muss. Und jedes Mal, wenn Sie etwas Wichtiges in Ihrem Spiel machen, stellen Sie sicher, dass Sie alle Arbeiten inszenieren , alle Ihre Arbeit verpflichten und wir sehen uns im nächsten Video. 11. Hindernisse treffen: Willkommen zurück, meine Spieleentwickler. In diesem Video heben wir unser Spiel auf die nächste Stufe. Wenn wir unser Spiel laufen. Sie werden feststellen, dass wir nicht nur herumlaufen, sondern wenn wir versuchen, unsere Karte zu verlassen, gehen wir los. Das können wir nicht. Ich schwöre, ich drücke immer noch die Achy. Ich versuche immer noch unterzugehen, aber es funktioniert nicht. Ich versuche immer noch auszugehen. Es funktioniert nicht. Wir sind also auf diesem kleinen Raum begrenzt. Wir machen das mit starren Körpern, indem wir Collider verwenden. Und das ist wirklich schön, denn endlich können wir das Gewicht unseres Spiels spüren. Obwohl wir laufen konnten, konnten wir sehen, dass wir alles tun können, aber jetzt haben wir tatsächlich Gewicht für unsere Bewegung. Wir können die Welt um uns herum fühlen. Lassen Sie uns damit keine Zeit mehr verschwenden. Und lasst uns anfangen. Ok. Derzeit, wenn wir unser Spiel ausführen, können wir uns bewegen und all das ist großartig. Aber wie Sie sehen können, bewegen wir einfach Bastard, wenn wir versuchen, die Wand zu schlagen oder so . Und es ist, als gäbe es nichts auf dieser Welt. Es fühlt sich leer an, es fühlt sich nicht real an, obwohl wir uns darin bewegen. Wie werden wir das beheben? Wir werden etwas benutzen, das Collider genannt wird. Lassen Sie mich Ihnen zeigen, was ein Collider in der Unity-Dokumentation ist, wie Sie sehen können, immer in der Unity-Dokumentation verwiesen wird, können Sie über Google dorthin gelangen. Es ist super einfach, super effektiv. Mal sehen, was wir über eine beschreibungsbasierte Klasse von Collidern verfügen. Wir haben Box, Kugel, Kapsel, einen Mesh-Collider, physikalische Materialien und starre Körper. Etwas, das wir in einem kleinen Objekt mit einem Collider lernen werden, muss bewegt werden. Während des Gameplays kannst du eine starre Körperkomponente anbringen und wir werden dem starren Körper nur ein bisschen Patienten besorgen, du kannst alle Eigenschaften sehen, die wir haben können, die Grenzen, den Kontakt-Offset, das Material. Wir haben öffentliche Methoden wie die Neubesetzung des nächstgelegenen Punktes. Wir haben Nachrichten, die extrem wichtig sind, und wir werden eine Menge Trigger Enter beim Trigger Exit bei Trigger Stay verwenden . Sie können die Beschreibungen genau hier lesen, was jede Methode, was jede Eigenschaft, was jede Nachricht bedeutet, was sie tut, die ganze Vererbung, was wir verwenden können, das Vergleichs-Tag sehr wichtig sein wird. Man sieht, dass wir viel haben. Sie müssen nicht jeden einzelnen von ihnen verstehen. Es ist einfach schön zu wissen, dass Sie, wenn Sie etwas zu implementieren haben, jederzeit in Unit-Dokumentationen gehen und sehen können, ob das, was Sie suchen, genau hier verfügbar ist. eine Box Collider zu einer dieser Wände genau hier hinzu Lassen Sie uns also wieder hierher gehen und gehen wir weiter und fügen . Fangen wir mit dem unteren an. So wie wir das tun, ist, dass wir hier mit der rechten Maustaste klicken. Oder lass uns in den Hintergrund gehen. Fügen wir hier eine Komponente hinzu. Wir werden es zu einem Box-Collider 2D machen, denn wir arbeiten in diesem Box Collider ist 3D. Das ist 2D. Wir klicken drauf. Sie können sehen, dass es sofort den gesamten Raum ausfüllt, aber das wollen wir nicht. Wir möchten dies tatsächlich bearbeiten oder klicken hier auf Bearbeiten. Sie können sehen, dass wir es zum Auslöser machen können. Wir können einen Offset einstellen, wir können die Größe einstellen, damit wir dies auf der Y-Achse verkleinern können, oder wir können einfach hier auf diese drei verbundenen Punkte klicken und sie einfach manuell verschieben. Also los gehst du. Jetzt haben wir diesen Collider genau hier an der Wand oder unten oder wie auch immer du ihn nennen willst, wir können ausklicken. Dies wird das Spiel ausführen. Und jetzt unser Spieler, wenn er nach unten geht, oh, nun, was passiert? Der Spieler schlägt immer noch gegen die Wand und er bewegt sich vorbei. Warum ist das so? Nun, weil wir keinen Collider auf unserer Ebene haben. Das wird also deine Herausforderung sein. Deine Herausforderung besteht darin, dem Spieler einen Collider hinzuzufügen. Bei einem Collider, einer Kapsel, muss es also keine Kapsel sein. Es hängt von der Größe und dem Rahmen Ihres Spielers ab. Derjenige, der persönlich wahr ist, oder wenn Sie dasselbe verwenden wie ich, stellen Sie sicher, dass es sich nur um ein übergeordnetes Spieler-Objekt handelt, nicht der Körper. Und ändere die Größe des Colliders auf die entsprechende Größe deines Spielers. also mit diesen Anweisungen Halten Sie also mit diesen Anweisungen das Video jetzt an und erledigen Sie die Herausforderung. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Wir werden einen Capsule Collider 2D hinzufügen. Da sind wir los. Wir haben die Kapsel, die Kapselhülle und sind uns nicht einmal sicher, wie sie ausgeprägt ist. Also klicken wir hier an. Die kleine grüne Linie sieht man hier drin. Also werden wir ausschalten. Da gehen wir hin und machen es ungefähr so groß wie unsere Ebene. Mal sehen, ob das funktioniert. Wenn wir unser Spiel laufen. Wenn wir jetzt spazieren gehen, bewegen wir uns immer noch durch das Objekt. Warum funktioniert es nicht? Ich hätte dich wahrscheinlich davor warnen sollen. Jetzt werden wir einen Rigid Body 2D hinzufügen. Und jetzt, wenn wir das Spiel laufen, werden wir sehen, dass wir gegen die Wand gestoßen sind. Aber ich habe nichts gedrückt. Wenn ich nach oben gehe und loslasse, fallen wir runter. Warum ist das so? Was passiert? Nun, denn wenn Sie einen starren Körper hinzufügen, fügen Sie auch die Schwerkraft hinzu. Lassen Sie uns ein bisschen tiefer in das eintauchen, was ein starrer Körper ist. Es steuert also die Position eines Objekts durch Physiksimulation. Wenn Sie also einem Spielobjekt einen starren Körper hinzufügen, fügen Sie ihm Physik hinzu. Starres Körperobjekt wird durch die Schwerkraft nach unten gezogen, ohne zusätzlichen Code hinzuzufügen. Und wir können auch unsere eigenen Kräfte auf sie anwenden, was ich mit ihnen meine, es ist der starre Körper. Sie können auch in Unit is Dokumentationen gehen und tiefer in den starren Körper eintauchen. Und tatsächlich müssen wir uns damit befassen. Also gehe ich hier rein. Feste Körpereinheits-Dokumente. Da sind wir los. Da sind wir los. Wir sehen die Dokumente Unity 3D. Und Sie können die Beschreibung, die Eigenschaften, die öffentlichen Methoden usw. sehen. Also lasst uns immer wieder gehen, wir können genau hier sehen, dass wir die Masse ändern können, den Winkelzug. Wir können die Art und Weise ändern, wie die Kollision erkannt wird, diskret, kontinuierlich aber es braucht etwas mehr Rechenleistung, den Schlafmodus, die Einschränkungen, wir werden sie tatsächlich in nur ein bisschen verwenden. Du wirst sehen warum. Und wir können dies von dynamischen zwei kinematischen, statischen ändern. Und jeder von ihnen wird genau hier erklärt. Aber der Hauptunterschied, während es irgendwo hier erklärt hat, bin ich mir nicht sicher, wo man über jeden lesen kann, um tiefer in sie einzutauchen, aber ich weiß, dass dynamisch bedeutet, von äußeren Kräften betroffen zu sein. Kinematisch bedeutet, dass es nicht betroffen ist. Und statische Mittel sind wie ein großer Stein. Es bewegt sich überhaupt nicht. Sie können genau hier die Schwerkraftskala sehen. Lass es uns auf 0 setzen, speichere das, führe das Spiel aus. Und jetzt wirst du feststellen, dass wir nicht mehr fallen. Wenn wir jetzt untergehen, können Sie sehen, dass wir das nicht mehr untergehen können. Aber was, was, was ist passiert? Und Sie können sehen, dass wir uns bewegen, wir müssen einen Box Collider hinzufügen. Aber was ist hier passiert und was ist das, das wackelnde? Also das erste, was wir reparieren werden, als die Dinge umdrehen. Das liegt also daran, dass wir uns drehen. Sie können genau hier sehen, weil die Physik berechnet hat, dass wir sie wegen der Kapsel genau hier drehen sollten. Also frieren wir die Drehung um die Z-Achse während Z ein, denn das zeigt Ihnen, ob wir hier oben auf das Drehwerkzeug klicken oder einfach auf das Ike treffen. Wir können sehen, wenn wir drehen, es ist die Z-Achse, die uns dreht und wir können es deutlich sehen, wenn wir von 2D ausgehen, Sie können hier rechts darauf klicken, wir gehen raus. Sie werden feststellen, dass die Z-Achse, und Sie können es sehen. Da sind wir los. Um die Z-Achse drehen wir uns. Also werden wir das auf den stoppen, wir setzen das auf 0, frieren auf dem Z ein. Und jetzt, wenn wir unser Spiel ausführen, gehen wir runter. Und da sind wir los. Wir drehen nicht mehr, wenn wir von links nach rechts gehen, aber wir haben immer noch dieses Wackeln. Und was ist das wackelig? Woher kommt es? Nun, es ist eine Frage des Codes. Wir können genau hier sehen, dass wir den Spieler mit seiner Transformation, dieser Position, bewegen. Wir haben also zwei kollidierende Kräfte. Wir haben die transformierte Position, die versucht, durch die Schwalbe zu gehen, aber wir haben die Physik der beiden Collider, die versuchen, den Spieler wegzuschieben. schafft also dieses wackelnde. Wie beheben wir das? Nun, wir werden anfangen, den Spieler zu bewegen, nicht seine Transformationsposition zu verwenden, sondern seine Geschwindigkeit zu verwenden. Und die Geschwindigkeit ist am starren Körper verfügbar. Wenn du das irgendwo hier findest, bin ich mir nicht sicher, was es ist. Mal sehen. Geschwindigkeit. Da gehst du. Wir können hier die Geschwindigkeit hinzufügen, Winkelgeschwindigkeit, die normale Geschwindigkeit. Wir können es gleich hier ändern. Also lasst uns das machen. Wenn wir gehen und du weißt was, lass es uns hier zusammenfassen. Wir erstellen ein serialisiertes Feld. Dies wird eine Variable des Typs starrer Körper 2D sein, und wir nennen es einfach den starren Körper des Spielers. Spar dir das auf. Oh, und noch eine Sache, die dir aufgefallen ist, und ich habe vergessen, dir das zu sagen. So nennen wir unsere Variable. Das erste Wort sollte immer den ersten Buchstaben nicht großgeschrieben haben, während alle nachfolgenden Wörter groß geschrieben werden. Warum ist das so? Nehmen wir ein Beispiel von hier aus. Sie werden feststellen, dass der Spieler nicht großgeschrieben ist. Starrer Körper ist durch das B für den Körper nicht. Wenn wir das also speichern, schauen wir uns den Inspektor an. Sie werden genau hier feststellen, dass die Variable, die Art und Weise, wie sie geschrieben wird, ein starrer Körper des Spielers mit starrem Körper als einziges Wort sein wird. Wenn wir zurückgehen, lassen wir das kapitalisieren. Das sparen wir uns. Wir gehen zurück in den Inspektor, Sie werden feststellen, dass das B jetzt groß geschrieben ist und es ein separates Wort ist. Jedes Mal, wenn wir eines der Wörter groß schreiben, wird es getrennt. Aber das wollen wir nicht. Wir wollen es als ein einziges. Sie können das gleiche Beispiel und die Bewegungsgeschwindigkeit sehen. Wenn wir zurückgehen, gehen wir los. Also haben wir gerade einen Verweis auf den starren Körper des Players erstellt, aber wir haben ihn nicht hinzugefügt, weil Sie jetzt sehen können, dass der Spieler starrer Körper ist, und es gibt einfach nicht, wie wir das machen. Wir klicken einfach auf den starren Körper genau hier und ziehen ihn nach oben. Jetzt können Sie sehen, wie der Name schon sagt, dass es der starre Körper auf der Dünenschicht ist. Wir speichern das wieder in unserem Spiel. Und hier werden wir anstelle des Transformationspositionsdeltas und all das verwenden, ich werde dieses Outlet nur kommentieren, wir werden es löschen, aber ich möchte nur das alles vor sich haben damit Sie den Prozess dessen kennen, was ist passiert. Jetzt nehmen wir den starren Körper des Spielers greifen auf die Geschwindigkeit zu. Und es wird gleich dem Bewegungseingang mal der Bewegungsgeschwindigkeit sein. Und weil wir die Geschwindigkeit verwenden, wird dies keine Zeit benötigt.Deltatime. Das sparen wir uns. Wir gehen wieder hier rein. Bringen wir den Kerl ein bisschen hoch. Jetzt, wenn wir unser Spiel laufen, bewegen wir uns herum. Und wenn wir versuchen, uns durch die Wand zu bewegen, los geht's. Sie können sehen, dass wir das Wackeln nicht mehr haben, weil wir die beiden Physik-Engines arbeiten. Nun, nicht die 2, 1 Physik-Engine, die wegen des starren Körpers an beiden Bibliotheken arbeitet . Und schließlich fügen wir einfach noch ein paar Collider in den Hintergrund. Also füge ich einen Box Collider 2D hinzu. Ich mache das ein bisschen kleiner. Und jetzt ist es nie empfehlenswert, mehrere Box-Gleiter auf demselben Spielobjekt hinzuzufügen, aber im Moment machen wir eine Ausnahme. Dies wird selten passieren. Also los gehst du. Fügen wir einen solchen Box Collider hinzu. Lasst uns noch eins hinzufügen. Und dieser wird zur Seite stehen. Also gehen wir nicht raus, wir machen es nur ein bisschen größer. Und lasst uns den letzten Box Collider hinzufügen, und dieser wird derjenige auf der anderen Seite sein. Da sind wir los. Das alles sparen wir. Wir führen unser Spiel aus. Und jetzt gehen wir runter. Wir können nicht nach links laufen, wir können nicht. Wir sind nach rechts gelaufen, wir können nicht. Und wenn wir versuchen aufzusteigen, können wir das auch nicht, aber es gibt ein kleines Problem. Sie können sehen, dass wir hier noch Platz haben, zu dem wir hinaufgehen können. Was ich tun werde, ist, dass ich die Spieler oben ein bisschen kleiner machen werde. Also lasst es uns einfach hier schaffen. Wir können das sogar von einer Kapsel in etwas anderes ändern und es so machen. Ups. Wo ist es? Wir ändern die Position, also bewegen wir sie auf das X. Yep, los geht's. Wir führen unser Spiel aus. Und wir können sehen, dass wir irgendwie aufsteigen. Wir haben immer noch so viel Platz. Das ist kein großes Problem. Wir können sogar B anstelle einer Kapsel machen, einen Box-Collider machen oder etwas anderes. Aber Sie können sehen, dass alles gut und dandy funktioniert, stellen Sie sicher, dass Sie Ihre Änderungen übernehmen. Und im nächsten Video wird unsere Waffe die Richtung oder wo unsere Maus zeigt, denn gerade soll diese Waffe nicht viel tun. Wir sehen uns im nächsten. 12. Gun Aiming (Screen: Hey, willkommen zurück, Meine Lieblingsspielentwickler in diesem Video, unsere Waffe ist kein statisches Objekt mehr. Wenn man genau hinsieht, sieht man, dass sich die Waffe nach unten bewegt. Wenn wir nach oben schauen, rastet die Waffe ein. Offensichtlich gibt es immer noch ein paar Dinge, die repariert werden müssen , weil es ziemlich unangenehm ist, die Waffe so zu halten, aber darüber keine Sorge. Dies ist der erste Schritt, um unsere Waffe richtig zu benennen. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Es gibt eine Menge Mathematik darin. Also zieh deine Denkkappen an. Jetzt, da wir uns bewegen und auf Dinge stoßen, ist es an der Zeit, unsere Waffe zu zielen. Um dies zu tun, wollen wir die Waffe um eine bestimmte Position drehen. Wir wollen die exakte Waffe nicht wirklich drehen, denn wenn wir hier reinschauen, wenn wir zur Szene gehen, können Sie jetzt sehen, wenn wir versuchen, die Waffe so zu drehen, wie sie ist, sieht sie nicht so gut aus. Wir brauchen einen Punkt, von dem sich die Waffe dreht. Was wir also tun werden, ist, dass wir mit der rechten Maustaste auf den Dome-Spieler klicken. Wir erstellen ein leeres Spielobjekt. Wir nennen es den Waffenarm. Und wir werden es bis zu einem bestimmten Punkt verschieben. Und das ist der Punkt, an dem sich die Waffe dreht oder von dem sich die Waffe dreht. Also lege ich es fast um die Hand oder den Arm des Spielers. Und ich werde die Schrotflinte machen, ein Kind dieser Waffen sind. Wenn wir jetzt den Waffenarm drehen, werden Sie feststellen, dass die Schrotflinte fast hier um den Arm herum bleibt und es viel natürlicher aussieht, wenn wir die Schrotflinte drehen oder die Waffen sind. Jetzt ist es Zeit für ein bisschen Kälte. Aber bevor wir das tun, wie werden wir diesen Arm eigentlich drehen? Es wird davon abhängen, wo unser Mund ist. Sagen wir also, wir sind hier oben. Wir wollen, dass die Schusspistole auf die Maus zeigt. Wie werden wir das berechnen? Nun, wir brauchen ein paar Punkte und lassen Sie es mich mit Mathe erklären, ja Mathe. Also lasst uns anfangen. Als erstes brauchen wir die Spielerposition auf dem Bildschirm. Nun, ich benutze den Begriff Spielerposition, aber es ist eigentlich der Punkt, an dem wir die Schrotflinte drehen. Aber jetzt lasst es uns einfach einfach halten. Nennen Sie dies die Spielerposition und wir haben die Mausposition auf dem Bildschirm. Was wir also wollen, ist, dass wir den Vektor auf diese beiden Punkte beziehen wollen. Dies ist die Richtung, die weg ist, wird zeigen. Aber wie werden wir eigentlich den Winkel berechnen, in den die Waffe zeigen soll? Nun, wir kennen die Ausstellung und wir kennen die y-Position. Nun, ich meinte X und Y. Was wir also tun können, ist, dass wir etwas verwenden können, das als Arc Tangente bezeichnet wird. Und das ist etwas für uns in Mathematik verfügbar. F von Unit ist Bibliothek. Damit können wir also den Arctan berechnen. Und wenn Sie nicht wissen, was Arctan ist oder Sie nicht einmal wissen, was Dan Tangente ist , glaube ich, dass es die Vorderseite ist, die das Y geteilt durch V x ist. Und wenn wir das tun, bekommen wir eine bestimmte Zahl, welches ist die Tangente. Um den Winkel zu erhalten, verwenden wir etwas, das als Bogentangente bezeichnet wird, was eine Art Umkehrung ist. Aber alles, was Sie wissen müssen, ist, dass wir den Höhenunterschied bekommen, wir bekommen den Unterschied in der Entfernung. Und damit berechnen wir den Winkel, auf den Argon hinweisen sollte. Dies ist grundlegende elementare Mathematik. Ich bin mir nicht sicher, ob du damit vertraut bist. Wenn du tiefer darauf eintauchen willst, sei mein Gast, ich glaube, das wird genug Erklärung sein. Übersetzen wir diese mathematischen Gleichungen also in mathematische Codes. Also gehe ich zurück und unser Skript hier im Player-Controller. Und das erste, was wir brauchen, ist die beiden Referenzen für die Kamera und für die Waffen. Also erstelle ich zunächst ein serialisiertes Feld, das eine Transformation sein wird. Und es wird darstellen, dass die Waffen großartig sind. Die zweite Variable, die wir als private Kamera erstellen werden, und sie wird die Hauptkamera sein. Und das Coole daran ist, dass wir sofort nach Stuart gehen und sagen können , dass die Hauptkamera der Kamera gleich ist. Punkt Haupt. Und mit dieser Kamera, dieser Hauptkamera, können wir sofort einen Verweis auf die Hauptkamera bekommen, die wir haben. Und hier, großartig. Jetzt müssen wir wissen, wo unser Mund auf der Welt ist. Also werden wir nach unten und hier scrollen, und ich werde diese Kommentare nur entfernen, weil wir sie nicht mehr brauchen. Wenn Sie der Meinung sind, dass Sie sie brauchen, behalten Sie sie als Erinnerung daran, wie wir unseren Code geändert und durchlaufen haben. Jetzt bekomme ich die Position der Maus. Ich benutze einen Vektor drei. Und es wird die Mausposition genannt. Und es wird gleich der Position der Eingabe-Punkt-Maus sein. Und Sie können jetzt sehen, dass uns die Visual Studio Community sofort die aktuelle Mausposition in Pixelkoordinaten gibt. So toll, das brauchen wir. Und offensichtlich weiß ich dieses Zeug schon. Wenn Sie dies recherchieren möchten, müssten Sie zu Google gehen, um die meiste Position zu erreichen. Sie haben die Dokumentationen für Einheit bekommen. Sie hätten diese Eingabe-Punkt-Mausposition gefunden. Du hättest es benutzt. Dies ist nur eine Abkürzung. Lasst uns weitermachen. Das nächste, was wir brauchen, ist der Bildschirmpunkt. Also Bildschirmpunkt, und es wird gleich der Hauptkamera, der Weltkamera, von Welt zu Bildschirm sein. Und Sie können die Definition sehen und hier ist die Transformationsposition vom Weltraum und zum Bildschirmraum. Da sind wir los. Das brauchen wir. Transformiere lokale Skala, ich meine lokale Position. Und das wird uns die lokale Position der Transformation geben, die gerade der Spieler ist. Und jetzt ist es an der Zeit, den Winkel zu berechnen. Lasst uns zuerst das alles aufheben. Lass uns weitermachen und den Arm für den Spieler zuweisen. Also ziehe ich jetzt den Waffenarm. Das werden wir retten. Und jetzt besteht der nächste Schritt darin, den Winkel tatsächlich zu berechnen. Also zeige ich dir das zuerst noch einmal, damit du zurückgehen und es dir ansehen kannst, wenn nötig. Und dann stelle ich dir eine Herausforderung aus. Und Ihre Herausforderung wird darin bestehen, den Winkel zu berechnen. Das erste, was Sie tun, ist, dass Sie die x-Position der Maus von der Bildschirmpunktposition des X. Offensichtlich müssen Sie dasselbe für das y tun. Und dann müssen Sie den mathematischen F-Punkt berechnen Arkustangens, um dies in der Unity-Dokumentation zu finden. Machen Sie weiter, pausieren Sie das Video sofort. Geh und gib dein Bestes. Probiere es aus. Du wirst nichts verlieren, indem du dein Bestes gibst. Pausiere das Video jetzt und mach die Herausforderung. Hey, willkommen zurück. Wie Sie sehen können, habe ich gerade Mathe, Arc Tangente in Unity nachgeschlagen. Jetzt bin ich genau hier. Was mache ich? Nun, ich muss sehen, wie das funktioniert. Was macht? Es gibt einen Schwimmer zurück. So verwende ich matlab.org Tange. Okay, großartig. Dann lasst uns wieder hier rein gehen. Das erste, was wir tun müssen, ist, dass wir den Unterschied berechnen müssen. Ich setze beide in einen Vektor zwei. Also verwende ich einen Vektor, um das als Offset zu bezeichnen. Es ist also der Offset zwischen den beiden Punkten. Es wird gleich einem neuen Vektor zwei sein. Und hier drin bekomme ich zuerst die Mausposition Punkt x und subtrahiere davon, der Bildschirmpunkt lenkt. Und ich werde das Gleiche über das Warum machen. Jetzt werde ich einen Float erstellen, denn wie wir diese Methode gesehen haben, die Methode dot arctan einen Float zurück, wird gleich dem mathematischen F-Punkt-Bogen-Tan oder nein sein, Eta. Es heißt „Tan Two“. Und ich verwende den Offset-Punkt y dividiert durch den Offset-DRX. Großartig, also werde ich das speichern. Aber wann immer wir den Waffen die tatsächliche Rotation zuweisen wollen, können wir dies nicht einfach mit einem Schwimmer tun. Was wir tun müssen, ist, dass wir eine zusätzliche Methode verwenden müssen , bei der es sich um zwei Grad handelt. Und Sie können sehen, dass dies Bogenmaß in Grad konstant umwandelt. Also müssen wir das tun. Und das letzte, was wir tun müssen, ist, dass wir bei Punktrotation auf die Waffen zugreifen müssen und uns jetzt auf eine etwas gruselige Welt vorbereiten müssen. Wir werden Quaternionen benutzen. Also quaternion dot Bueller. Und wir setzen es auf der x-Achse auf 00 ein. Wir drehen uns nicht auf der Y-Achse, wir drehen uns nicht. Wir drehen uns nur um die Z-Achse unter Verwendung des Winkels. Nun, bevor du weglaufst, was ist Turnitin Dot Hulu? Wenn Sie sich das frühere hier anschauen, können Sie sehen, dass es eine Rotation zurückgibt, die Z Grad um die Z-Achse, x um die x-Achse usw. dreht Z-Achse, x um die x-Achse . Also Quaternion Punkt. Wenn Sie interessiert sind, können Sie sich tief darauf einlassen. Ich persönlich rotiere seit mehreren Jahren Objekte in Unity und ich habe nie ganz verstanden, was sie Quaternion bedeuten, ist nur eine Möglichkeit, vom XYZ in eine tatsächliche Rotation und einen Raum umzuwandeln . Fühlen Sie sich also frei, tief einzutauchen, schauen Sie nach und stellen Sie sicher, dass Sie alles verstehen. Wenn nicht, wenn Sie sich nicht die Mühe machen, nicht vollständig verstehen, was mit Quaternion u dot passiert. Vertrauen Sie mir, Sie können Ihre Spieleentwicklungsreise durchlaufen, ohne sich darüber Gedanken machen zu müssen. Dies ist also einfach eine Möglichkeit, x, y und z in einen Winkel in eine Drehung umzuwandeln . Das werden wir speichern. Wir gehen zurück in Unity. Und wir werden das Spiel führen. Und mal sehen, was gerade mit der Waffe passiert, wir gehen nach oben, die Waffe bewegt sich nach oben. Wir gehen nach unten. Die Waffe bewegt sich nach unten. Wenn wir nach links gehen, ja. Unsere Waffe sieht ein bisschen komisch aus, wenn wir in die andere Richtung schauen, aber wenn es um die richtige Richtung geht, geht es los. Wir bewegen uns und passen uns sogar an, während wir gehen. Sie können also sehen, wenn wir nach oben gehen, die Waffe nach unten geht. Ich schaue immer genau an, wo sich unsere Mausposition befindet. So toll jetzt haben wir eine Waffe, die tatsächlich feuert, was meiner Meinung nach erstaunlich ist und nicht wirklich feuert, die später in die richtige Richtung schießen wird, wenn wir uns bewegen. Aber offensichtlich stimmt etwas nicht, wenn wir versuchen, die Maus in die andere Richtung zu bewegen, sie bewegt sich richtig. Das werden wir im nächsten Video beheben, während wir etwas sehr schönes Codieren lernen , das als if-Anweisungen und if-Bedingungen bezeichnet wird. Also sehe ich dich dort. Aber bevor wir loslegen, stellen Sie immer sicher, dass Sie alle Ihre Dateien inszenieren. Mega Commits. Ich nenne das, dass meine Waffe in die richtige Richtung zeigt oder nicht den rechten Winkel beneidet. Denn im nächsten Video werden wir es in die richtige Richtung zeigen, den ganzen Spieler auf den Punkt bringen und in die richtige Richtung bringen. Also, wir sehen uns dann. 13. Die richtige Richtung (Aussagekräfte): Willkommen zurück, meine Spieleentwickler. In diesem Video werden wir nicht nur die Waffe drehen, sondern auch in die richtige Richtung zeigen. Aber nicht nur das, wir zeigen nicht nur in die richtige Richtung, wir können auch zurückweisen. Und das ist sehr wichtig und das wird Ihre Herausforderung sein. Wir werden lernen, wie wir wenn Bedingungen verwenden können, wenn Anweisungen, um von links nach rechts zu drehen. Und es wird sehr lieb sein, wird erstaunlich sein, weil wir unseren Gewinn viel lebendiger und effektiver machen . Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Oh, okay. Jetzt dreht sich unser Kaugummi tatsächlich. Es zeigt immer auf die Maus. Das ist großartig. Aber was passiert, wenn wir ein bestimmtes Limit überschreiten? Sie können gerade sehen, dass der GAN immer noch auf den Mund zeigt. Aber es ist zuallererst invertiert. Zweitens schaut der Spieler nicht in die richtige Richtung, also müssen wir all das beheben. Aber wie können wir unserem Spieler sagen, dass er sich so verhalten soll, wenn er in die eine und andere Richtung schaut, wenn er in die andere Richtung schaut oder schauen sollte, wie können wir es ihm sagen? Wenn es so ist , wollen wir etwas tun. Wenn es etwas anderes ist, wollen wir etwas anderes machen. Nun, das nennen wir die if-Aussage. Lass mich dich das durchziehen. Also bedingte IF-Anweisungsstruktur. So sieht die Syntax aus. Wir haben eine Bedingung, die wahr sein muss. Es ist in diesen beiden Klammern genau hier. Und wenn diese Bedingung zutrifft, wird der Code innerhalb dieser beiden scharfen Zeilen ausgeführt. Wenn nicht, dann haben wir etwas namens „Anse“. Wenn diese Bedingung nicht zutrifft, sonst wenn eine andere Bedingung zutrifft, wird dieser Code ausgeführt. Und wenn weder diese noch die zweite Bedingung zutrifft, dann haben wir etwas namens „Anse“. Und dieser Code wird ausgeführt, wenn keine der vorherigen Bedingungen zutrifft Sie können so viele andere if-Anweisungen hinzufügen, wie Sie möchten, damit Sie hinzufügen können. Der erste ist immer, wenn Sie überhaupt kein anderes tun können, wenn Sie sofort ein anderes hinzufügen können oder 15 weitere hinzufügen können, wenn Sie müssen, brauchen Sie dieses Geld vielleicht nie, aber wenn Sie jemals mehr als einen benötigen, mehr als zwei, du kannst hinzufügen. Also haben wir eine Bedingung hier drin. Wenn es stimmt, wird dieser Code ausgeführt und wir hören auf. Wir schauen nicht weiter nach unten. Wenn dies nicht der Fall ist, stimmt dieser erste nicht. Wir schauen uns die zweite an. Wenn ja, führen wir aus, wenn nicht, fahren wir fort. Wenn wir schließlich keine Bedingung finden, die zutreffend ist, führen wir eine andere aus. Lasst uns also weitermachen und das umsetzen. Wonach suchen wir hier drin? Wir möchten das gesamte Objekt drehen. Wenn ja, wonach suchen wir hier drin? Wir möchten sehen, ob die Mausposition geringer ist als weil wir uns zum Beispiel den Kuppelspieler ansehen, dies ist die Position auf dem x zurück in der Szene. Wenn wir uns also rückwärts bewegen, können Sie sehen, dass es weniger ist, wenn wir nach rechts gehen. Das heißt, es ist klein. Stellen Sie sich also vor, dass die Mausposition ein anderes Spielobjekt ist. Zum Beispiel: Wir sind hier drin und dieser Bereich links vom Spieler, das bedeutet, dass die meiste Position kleiner ist als dieser grüne Punkt, was bedeutet, dass wir den gesamten Spieler nicht auf die andere Seite drehen möchten. Aber wie werden wir das eigentlich machen? Nun, genau hier gibt es die Waage, was es super einfach macht. Wenn ich also die Skala auf dem X ändere, kannst du sehen, dass er breiter und breiter wird. Aber was passiert, wenn wir gehen und negativ? Wenn wir also Negativ gehen, ja, los geht's. Wir drehen den Spieler tatsächlich um. Und das wollen wir uns anpassen, wenn wir in die andere Richtung schauen. Und diese Richtung, wenn die Mausposition kleiner ist als der Bildschirmpunkt , der der Spieler ist. Wir wollen genau hier suchen. Und diese Richtung wollen wir die Skala auf minus eins ändern, nicht nur auf den ACS, auch auf das y. Jetzt, da wir diese Dinge etabliert haben, lassen Sie uns unsere erste if-Aussage erstellen. Also hier drin werden wir genug schaffen. Wir öffnen die beiden Klammern oder Spalten. Ich bin mir nicht sicher, wie sie heißen. Wir suchen nach der Mausposition Punkt x. Wir brauchen das y nicht. Es spielt keine Rolle. Und wenn es weniger als der Bildschirmpunkt ist, der RX. Dann nehmen wir den lokalen Maßstab der Transformation, der die lokale Skala des Objekts ist, das dieses Skript enthält. Das bedeutet, dass der gesamte Don't Spieler ein neuer Vektor 3 minus 1, f 1, f 1 sein wird . Spar dir das auf. Wir führen den Gewinn aus. Dies ist, solange das y immer noch positiv ist. Wenn wir also in die andere Richtung schauen, können Sie sehen, dass die Waffe auf dem Kopf steht. Also unser Ziel, lass mich dir einfach zeigen und die Art, wie ich das mit Tasten pausiere, ist Control Shift P. Was wir also tun müssen, ist, wenn wir den Waffenarm greifen, wenn ich ihn auf minus eins setze, los geht's. Sie können sehen, dass wir wieder in einem richtigen Maßstab oder in einer richtigen Werbung sind. Also setze ich das auf minus1, speichere das wieder in unserem Spiel, führe das Spiel aus. Und jetzt schauen wir nach oben und unten, die Gang dreht sich. Wenn wir auf die andere Seite gehen, dann gehst du. Die Waffe sieht richtig aus. Großartig. Also ist alles eingerichtet. Das einzige Problem ist, wenn wir zurückblicken, ändert sich der Spieler nicht. Wie werden wir also sicherstellen, dass wir den Spieler zurückdrehen, wenn wir diese Bedingung nicht als wahr haben ? Nun, es ist deine Herausforderung. Ihre Herausforderung besteht darin, eine else-Erklärung zu erstellen. Sie müssen zu den if-Anweisungen und else-Anweisungen hinzufügen. Wir haben schon gesehen, wie das aussieht. Dies wird aktiviert, wenn die Mausposition x kleiner als der Bildschirmpunkt x ist. In diesem Fall müssen wir die lokalen Skalen oder alle lokalen Skalen auf eins zurücksetzen. Und ich gebe Ihnen einen kleinen Hinweis, nämlich den Maßstab auf Vektor drei Punkt eins, Vektor drei Punkt eins zu setzen. Sie können auch über Unity's Dokumentation recherchieren. Es bedeutet, dass es ein Vektor 3, 1, 1, 1 ist. Pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Wie hast du das alles bekommen? Ich hoffe wirklich, dass Sie immer versuchen, diese Herausforderungen zu meistern. Also werde ich hier eine andere Aussage erstellen. Und was ich tun werde, ist, dass ich den lokalen Maßstab der Transformation übernehmen werde. Und es wird gleich Vektor drei Punkt eins sein. Lasst uns das aufheben. Und ich werde das auch duplizieren. So wie wir es also duplizieren, denken Sie an Control D. Und statt der Transformation werde ich die Waffen benutzen, werde ich all das speichern. Ich gehe zurück in mein Spiel. Ich werde es laufen lassen. Jetzt schaue ich nach rechts, meine Waffe dreht sich richtig. Alles ist gut. Ich schaue nach links, die Waffe dreht sich richtig. Der Spieler schaut in die richtige Richtung. Wenn ich jetzt zurückgehe, gehen wir los. Sie können also sehen, dass wir unser Problem behoben haben. Der Spieler schaut immer in die richtige Richtung. Wir lassen die Waffe richtig zeigen, und wir sehen endlich toll aus, während wir es tun. Jetzt können wir also herumlaufen. Man sieht, dass es viel natürlicher ist, weil es immer auf die Waffe zeigt. Die Waffe zeigt nicht nur richtig auf die Waffe, das Waffenproblem zeigt auf die Maus, sondern auch die tiefe Schicht, gesamte Körper dreht sich und zeigt in die richtige Richtung. also sicher, dass Sie die von uns vorgenommenen Änderungen vornehmen. Und im nächsten Video werden wir unseren Spielen mehr Geschmack verleihen. Wie, durch das Erstellen des Gehens, des Leerlaufs und vielleicht sogar der Torpedoanimationen für den Spieler es kaum erwarten kann, mit dem Animieren zu beginnen. Wir sehen uns im nächsten. 14. Animationen in Einheit: Willkommen zurück meine Spieleentwickler zu einem der aufregenderen und langsameren, sehr langen Videos. Aber vertrau mir, es ist es sehr wert. In diesem Video werden wir unserem Spiel mehr Leben verleihen, indem wir Animationen erstellen. Jetzt, wenn wir unser Spiel beginnen, stehen wir nicht einfach da wie eine Statue. Sie können sehen, dass wir uns bewegen. Unser Spieler geht also auf und ab, auf und ab, auf und ab. Und nicht nur das, wenn wir anfangen zu laufen, schauen Sie sich das an. Er fängt an, seine Füße zu bewegen. Wie cool ist das? Ernsthaft, jetzt haben wir nicht nur den Spieler, der fair glückliche Statue steht. Er hat tatsächlich Leben, sein Atmen. Er läuft, er schaut sich um, er richtet seine Waffe, er ist bereit zu schießen. Er braucht immer noch ein bisschen Optimierungen, aber das werden wir im nächsten Video erledigen. Also was eigentlich, am Ende, welches Video? Verschwenden wir keine Zeit mehr mit dem Nachdenken und lassen Sie uns mit dem Animieren beginnen. Oh, okay. Wenn wir also unser Spiel beginnen, wir sehr abgestanden, wenn wir uns bewegen sind wir sehr abgestanden, wenn wir uns bewegen, wie Sie sehen können. Wir haben insbesondere keine Animationen, wir sehen nicht, dass der Spieler den Status ändert wenn er anfängt zu laufen oder wenn er steht. Also werden wir das ändern. Wir werden unserem Player Animationen hinzufügen. Und wir haben bereits ein paar Tabellenkalkulationen und hier diejenigen, die unsere Animation bestimmen werden. So kann man den Leerlauf sehen, das Gehen. Wir werden sie Seite an Seite stellen und diese Sprites spielen, während wir gehen, während wir still stehen, während wir die Torpedobewegung machen. Lasst uns also mit Animationen anfangen. Lassen Sie uns zuerst verstehen, was Animationen sind. Ein paar Schlüsselkomponenten, die wir brauchen. Zuallererst haben wir den Animator-Controller, dem Sie eine Reihe von Animations-Clips anordnen und pflegen können. Wir haben die Animator-Komponente, die wir jedem Spielobjekt hinzufügen, das wir animieren möchten. Wir haben die eigentlichen Animationen, bei denen mehrere Sprites nacheinander gerendert werden. Wir werden auch sehen, dass wir eine andere Art von Animationen haben, die es uns ermöglichen, Objekte zu bewegen, sich dann daran zu erinnern und zu bestimmten Zeiten abzuspielen. Und schließlich haben wir den Sprite-Renderer. Warum erinnere ich dich an den Sprite-Renderer? Denn in nur ein bisschen müssen Sie verstehen, welcher Sprite-Renderer tatsächlich zu ändern versuchen würde, um die Animationen zu erstellen, die wir für unseren DOM-Player haben. Okay, genug reden. Fangen wir mit Animationen an. Lasst uns also in Unity gehen. Und das erste, was wir tun müssen, ist, dass wir die Fenster für die Animation bekommen müssen. Also erstellen wir das Animationsfenster. Lasst es uns hier andocken. Und lasst uns ein anderes Fenster für den Animator erstellen . Da gehst du. Also der Animator, wo wir alle Animationen einstellen werden. Und die Animationen, wo wir tatsächlich die Animationen erstellen werden. Lasst uns anfangen. Als erstes werden wir unseren Doom Player wählen. Und wie Sie sofort im Animationsfenster sehen können, müssen wir mit dem Animieren beginnen, einen Player machen, einen Animator und einen Animationsclip erstellen. Großartig, lass uns das machen. Wir werden auf Create klicken. Und wie Sie sehen können, sind wir derzeit sowohl Invader- als auch die Assets in der Zeit. Ich erstelle hier einen neuen Ordner, der die Animationen sein wird. Oder die von Animationen. Da gehst du. Und hier erstelle einen Ordner namens Player. Und wir werden unseren Clip nennen. Beginnen wir damit, einen Spieler zu erstellen, denke ich. Okay, großartig. Jetzt haben wir unsere neue Animation. Und wenn wir uns den Kuppelspieler ansehen, können Sie sehen, dass wir neben dem starren Körper und der Kapsel, die der Animator ist, eine neue Komponente haben. Wenn wir also in die Szene gehen, ändert sich nichts, außer innerhalb des Animators, nur um alles zu aktualisieren, können Sie sehen, dass wir jetzt diese kleinen Rechtecke hier haben. Und was sind das? Nun, wir haben den beliebigen Staat, den Ein- und Ausstieg. Machen wir uns keine Sorgen um den Zustand und den Ausgang. Konzentrieren wir uns auf den Eintrag und den tatsächlichen Spieler im Leerlauf. Was das bedeutet, ist, dass wir sofort in den Leerlauf des Spielers übergehen, sobald wir unser Spiel beginnen. Und Sie werden sehen, dass wir jedes Mal, wenn wir einen Animator haben, immer eine Standardanimation haben, mit der wir beginnen. Und in diesem Fall lassen wir den Spieler sofort ab dem Eintrag im Leerlauf laufen. Und wie Sie sehen können, ist es durch diese Linie mit einem Pfeil verbunden. Dies wird als Übergang bezeichnet. Und später werden wir unseren eigenen Übergang machen, um von einer Animation zur anderen zu wechseln. Okay, lass uns weitermachen. Das nächste, was wir tun wollen, ist, dass wir die Animation tatsächlich erstellen möchten. Um das zu tun, müssen wir unsere Leerlaufsprites genau hier bekommen. Diese drei, wir möchten sie dem Spieler hinzufügen und anfangen, mit ihnen zu spielen. Aber es gibt hier ein kleines Detail, das wir berücksichtigen müssen. Wir werden die Sprites des Spielers ändern. Und die Sprites, die wir verändern, sind tatsächlich am Körper, nicht sofort. Spieler-Spiel-Objekt machen. Durch diese Animation muss also hier eine Eigenschaft hinzugefügt werden. Und lass mich das Fenster einfach hier erklären. Dies ist die Zeitleiste für die Animation. Sie können also ab 030 sehen, das ist der 2,5th und 2 hier. Das ist eine ganze Sekunde. Sie haben das Spiel, den nächsten Keyframe und so weiter. Sie haben die Schaltfläche „Aufzeichnen“ hier und Sie können einen neuen Clip erstellen , indem Sie hier auf dieses Dropdown-Menü klicken. Fügen wir also eine Eigenschaft hinzu. Wenn wir darauf klicken, können Sie sehen, dass wir Zugriff auf alle Komponenten haben , die auf dem Spieler oder dem Doom Player Spielobjekt vorhanden sind. Wir können die Waffen ändern, sind das Chicago, der Arm, der Körper, alles. Also gehe ich auf die Leiche zu. Und Sie können sehen, dass ich auf den Sprite-Render zugreifen kann. Und wenn ich nach unten scrolle, kann ich tatsächlich auf das Sprite zugreifen, das sich hier am Körper befindet. Also klicke ich hier auf das kleine Pluszeichen. Wenn ich das ein bisschen größer mache, kannst du sehen, dass ich dieses kleine Sprite tatsächlich sehen kann und das werden wir ändern. Wenn ich also auf Play klicke, wirst du feststellen, dass sich nichts ändert, weil dieses Sprite genau das gleiche ist wie dieses. Also lasst uns das ändern. Ich werde die Animationen andocken und hier nur um ein bisschen Platz zu haben, lösche ich die letzte, behalte das hier. Ich wähle diese drei aus und füge sie der Timeline hinzu, und ich kann die erste loswerden. Also lass mich diese einfach machen, okay, aber auseinander. Ich docke die Animation hier an. Und wenn ich jetzt versucht habe, die Animation abzuspielen, los geht's. Du kannst sehen, dass unser Spieler sich zu bewegen beginnt. Wie cool ist das? Was passiert hier drin? Wenn du genau hinsiehst, lass mich das einfach für eine Sekunde unterbrechen. Ich mache mir die Zeit zwischen jedem ein bisschen weit weg. Wenn wir jetzt spielen, werden Sie feststellen, dass wir von einem Sprite zum anderen wechseln. Und das können Sie sicherstellen, indem Sie genau hier auf den Inspektor der Leiche schauen und sehen, dass wir von beiden, entweder in den Leerlauf gehen , die zwei im Leerlauf wollen. Und dieser hier, das sind die drei, wird kaum gespielt, denn sobald wir am Ende sind, beginnen wir sofort von Anfang an. Ein gutes, sagen wir mal, dass der Hauptgrund beim Erstellen von Animationen ist, dass der erste Frame ständig durch Drücken von Control C und B, dem letzten Frame, kopiert werden sollte . Jetzt werden Sie feststellen, wie die Animation viel besser aussieht. Also spiele ich die Animation wieder ab. Da gehst du. Sie können sehen, dass wir jetzt im Leerlauf sind. Wir können sehen, dass 1, 2, 3 , 1, 2, 3 nacheinander spielen. Jetzt haben wir die Animation des Spielers im Leerlauf. Und wenn wir unseren Gewinn erzielen, können Sie sehen, dass der Spieler, sobald wir anfangen, einen der Link startet. Und selbst wenn wir uns bewegen, sind wir immer noch im Leerlauf. Selbst wenn wir in die andere Richtung schauen, sind wir immer noch im Leerlauf. Und wenn wir den Animator überprüfen, können Sie sehen, dass wir ständig im Leerlauf sind. Ich sperre es genau hier, damit wir es klar sehen und ein bisschen verkleinern können. Das ist also der Spieler, der die ganze Zeit im Leerlauf ist, während wir stehen, still. Großartig. Der nächste Schritt besteht darin, die Walking-Animation zu erstellen. Und es wird deine Herausforderung sein. Ihre Herausforderung besteht darin, eine weitere Animation zu erstellen. Holen Sie sich also die laufenden Sprites vom Hauptsprite. Wenn du das noch nicht aufgeteilt hast, wähle den Doom Player in der Hierarchie und erstelle einen neuen Clip, wie ich es dir gezeigt habe. Füge alle Walking Sprites hinzu und trenne sie. Spielen Sie herum und lassen Sie das Gehen gut aussehen. Und wenn Sie an einer zusätzlichen Herausforderung interessiert sind, können Sie die Torpedo-Animation erstellen. Ich bin mir nicht sicher, ob ich die Torpedoanimation weiter verwenden werde. Vielleicht sollte es etwas anderes sein, vielleicht v, um Animation zu rollen. Ich weiß es nicht mit dem nicht, pausiere das Video jetzt, probiere die Animation aus. Keine Sorge, selbst wenn Sie ein Anfänger sind, probieren Sie es einfach aus. Sieh dir ein paar Schritte an. Wie ich den Leerlauf erstellt habe. Probieren Sie es selbst aus, viel Spaß, genießen Sie es. Und das war's. Pausiere das Video jetzt und mach es bei jeder Herausforderung. Okay, jetzt werden wir die zweite Animation erstellen, die das Gehen ist. Also klicke ich hier rein. Ich erstelle einen neuen Clip. Gehe zum Animations-Spieler, wähle im Leerlauf, und anstatt im Leerlauf zu gehen, stelle ich ihn als das Gehen ein. Jetzt läuft der Spieler. Sehr gut. Okay, jetzt werden wir hier eine Immobilie hinzufügen. Wir werden auf den Körper zugreifen, weil Sie sich daran erinnern , dass die Sprites, die wir verändern, am Körper sind. Sprite-Renderer, das Sprite, weil wir tatsächlich jedes einzelne Sprite ändern. Und wir werden hinzufügen, lassen Sie uns die Animation hierher verschieben. Vielleicht ist dies nicht der beste Ort, um eine Animation hinzuzufügen, aber wir haben nur mit dem zu tun, was wir vorerst haben. Gehe zu dem Projekt, das unser Gehen ist. Also denke ich, dass die letzten vier das Gehen raus sind. Füge sie einfach hier hinzu. Ich entferne den letzten und den ersten. Das startete die Animation wieder nach unten. Wählen wir all dies aus und ich werde sie im Intervall von 10 verteilen . Lass uns 10 machen. Also 10, 10, 10. Und ich kopiere den ersten und setze es als letzten ein. Und jetzt, als wir versucht haben, die Animation abzuspielen , können Sie das Gehen des Spielers sehen. Und richtig. Nun, wie werden wir den Übergang machen? Und wenn Sie tatsächlich auf den Animator klicken, werden Sie sehen, dass wir jetzt einen neuen Clip haben, bei dem der Spieler läuft. Aber wie werden wir von der Erweiterung des Gesprächs übergehen? Dies ist die 1-Millionen-Dollar-Frage. Bevor ich dir sage, wie wir das machen, lass mich dir einfach zeigen, was wir in diesem Animations-Ordner innerhalb des Players erstellt haben. Also haben wir den Doom Player, er hat einen Animator, er hat einen Controller. Und wenn ich übrigens auf den Controller klicke, wenn du zum Beispiel auf den Don't Player klickst, kannst du sehen, wie der starre Körper, wo er ist oder die Waffen auf, eine Referenz erhalten kann. Wir klicken auf den Controller. Dies ist der Controller und dies sind die Animationen des Spielers und des Gehens, des Leerlaufs. Und Sie können genau hier sehen, wir können eine kleine Änderung für den Zyklus-Offset, die Schleifenzeit, die Schleifenpole vornehmen. Aber im Moment werden wir uns nicht tief darauf einlassen. Konzentrieren wir uns vorerst auf den Animator und wie wir Übergänge erstellen werden. Wie entscheiden wir, wann wir umsteigen? Dies ist auch sehr wichtig. Also werden wir hier einen Übergang erstellen, indem wir mit der rechten Maustaste auf den Spieler im Leerlauf klicken. Hier drin haben wir den Make-Übergang und wir werden es auf den Walking des Spielers einstellen. Lassen Sie mich also ein bisschen hineinzoomen. Jetzt können Sie sehen, dass dieser Pfeil vom Spieler im Leerlauf zum Spielen oder Gehen geht. Und wir können auch einen Übergang vom Spieler schaffen, der zum Spieler im Leerlauf geht. Jetzt können wir zwischen diesen beiden Animationen hin und her gehen. Klicken wir auf einen dieser Pfeile und schauen uns an, was wir hier haben. Wir haben also etwas, das als Ausstiegszeit bezeichnet wird. Wenn Sie den Mauszeiger darüber bewegen, können Sie sehen, dass dieser Übergang eine feste Ausstiegszeit hat. Was bedeutet Ausstiegszeit? Das heißt, wenn ich nach einer bestimmten Menge vom Leerlauf zum Gehen gehe, möchte ich automatisch vom Gehen in den Leerlauf gehen? Und in unserem Fall wollen wir das nicht tun. Wir wollen zurückgehen, wenn wir tatsächlich aufhören zu laufen. Also schalte ich die Has Exit Time aus. Ich mache das Gleiche auf dem Weg nach unten. Dann werden wir nach der Übergangsdauer suchen. Und Sie können hier tatsächlich eine Vorschau sehen, ein kleines Vorschaufenster. Wenn ich also spiele, bin ich im Leerlauf und dann fange ich an zu laufen. Wir haben die Übergangsdauer. Wie möchten Sie also die Animation des Leerlaufs beenden , bevor wir ins Gehen übergehen und unseren Fall, ich denke, das brauchen wir nicht. Also setze ich die Übergangsdauer auf 0 und auch auf das beim Übergang des Gehens. In beiden Übergängen, beide Pfeile zum und vom Gehen gehen, werden wir die Austrittszeit entfernen und den Übergang später entfernen, wenn wir sie brauchen. Ich werde dir davon erzählen. Mach dir keine Sorgen. Wenn wir jetzt nach unten scrollen, können wir hier sehen, dass wir etwas haben, das als Bedingungen bezeichnet wird. Und unter welcher Bedingung wechseln wir vom Spieler im Leerlauf zum laufenden Spieler? Und unter welcher Bedingung wechseln wir vom Spieler, der zum Spieler-Link geht? Also müssen wir eine Bedingung hinzufügen. Wie fügen wir hier in den Übergängen eine Bedingung hinzu? Wenn wir noch einmal auf den Animator schauen, können wir sehen, dass wir den Ebenenschritt haben und etwas haben, das als Parameter bezeichnet wird. Und hier können wir bestimmte Parameter hinzufügen, auf die wir dann von unserem Code aus zugreifen und die Bedingungen festlegen können . Also klicke ich und versuche einen der Parameter hinzuzufügen. Sie können sehen, dass wir Float, Integer, Boolean und einen Trigger haben. Jetzt erklären sich float und integer. Ein boolescher Wert ist, wie Sie wissen, ein wahrer oder falscher Wert und ein Auslöser ist genau wie das Wort bedeutet, ein Auslöser. Konzentrieren wir uns vorerst auf den Booleschen Wert. Wenn ich also auf den Booleschen Wert klicke, hast du die Möglichkeit, es so zu nennen, wie du willst. Dies wird also der boolesche Wert sein, der von beiden Links zum Gehen übergeht, wie ich es nenne, ist. Gehen, drücken Sie Enter. Und jetzt können Sie sehen, dass ich es einschalten kann, was bedeutet, dass es wahr wird, oder ich kann es ausschalten, was bedeutet, dass es falsch wird. Also klicke ich auf den Übergang gehe vom Link zur Spieler-ID zum Gehen. Und ich klicke auf die Bedingung. Und wie Sie sehen können, denkt er, weil wir nur einen Parameter haben, sofort, dass wir das Gehen brauchen oder bestimmt, was wahr ist. Wenn also das Gehen wahr ist, wechseln wir vom Spieler, der zu läuft. Und wenn wir laufen, wollen wir in den Leerlauf übergehen. Wir wollen eine Bedingung haben, in der das Gehen falsch ist. Wenn also das Gehen wahr ist, bewegen wir uns vom Spieler Ivan ins Spiel oder Gehen. Wenn der Spieler läuft und läuft, wird es falsch. Wir sind wieder im Leerlauf. Konvertieren wir das in Code und fügen ihm Verhalten hinzu. Ich öffne mein Drehbuch. Und hier drinnen müssen wir als Erstes eine Referenz auf den Player-Animator erhalten. Also erstelle ich einen privaten Animator, den Player-Animator. Und er könnte Tür machen. Jetzt ist es privat. Wie werden wir hinzufügen? Wir können nicht vom Inspektor hier drin darauf zugreifen. Wenn ich auf den Dome-Player im Skript klicke, haben wir keinen Zugriff darauf. Nun, wir können etwas verwenden, das als Get-Komponente bezeichnet wird. Also hier drin werde ich schreiben, Player-Animator wird gleich sein, um Komponente zu bekommen. Und wir werden den Komponententyp hinzufügen, den wir erhalten möchten. Was passiert hier drin? Lass mich den Mauszeiger über die Schuldenkomponente bewegen. Es hat keine Erklärung. Ich werde Ihnen sagen, was die Erklärung ist, wie Sie auch in Unity's Dokumentation finden können , es ist sehr einfach. Was es tut, ist, sobald wir beginnen, erhalten wir die Komponente, die vom Typ Animator an das Spielobjekt angehängt ist , das den Spieler-Controller als Skript hat. Was wir also tun, ist, dass dieses Skript die VI-Get-Komponente genau hier verwendet. Und den Animator holen , der dieser ist. Und jetzt haben wir einen Hinweis darauf. Jetzt können wir mit diesem Animator auf viele Dinge zugreifen. Und Sie können auch Unit is Dokumentationen durchgehen und all die verschiedenen Arten von Methoden, Eigenschaften und verschiedenen Dingen sehen , die wir mit diesem Animator machen können. Was werden wir in diesem Animator machen? Wir wollen nach einer Bedingung suchen. Wir wollen prüfen, ob wir laufen. Wir wollen das Walking auf wahr setzen und dann in die Walking-Animation übergehen. Also erstelle ich hier eine if-Bedingung und überprüfe, ob die Bewegungseingabe anders ist als Vektor zu 0. Also Vektor auf die 0 ist genau wie Vektor 3 genau hier. Punkt eins, was bedeutet 111 Vektor zwei Punkt 0 bedeutet 00. Das heißt, wenn die Bewegungseingabe nicht 0 ist, bedeutet das, dass wir genau hier laufen müssen. Wir haben Geschwindigkeit, wir haben Bewegung. Wir werden den Spieler-Animator holen. Wir werden etwas verwenden, das als Set Boolean bezeichnet wird. Und hier sieht man, dass es entweder eine ID oder eine andere Art benötigt , den Setstand zu verwenden. Wenn ich hier anklicke, siehst du, dass ich einen Stringnamen verwenden kann. Und das werde ich tun. Und Sie können sehen, dass wir eine String-Referenz haben. Und was haben wir über Schrumpfreferenzen gesagt? Wann immer wir einen haben, gehen wir immer los, wir kopieren es, denn wenn es einen Fehler gibt, wird uns die IDE nicht sagen, was das Problem ist, was der Fehler ist. Die IDE, ich meine die Einheit oder das Visual Studio. Und hier drin, weil wir laufen. Oh, und ich hab's vergessen. Was bedeutet dieses Ausrufezeichen? Was bedeutet Ausrufezeichen gleich? Wenn Sie also genau hier sehen, haben wir gesagt, dass wenn die Mauspositionen von x kleiner sind als dieser grüne Punkt, wir hätten sagen können, dass wir, wenn die Mausposition, die AX gleich ist, wann immer wir zwei Werte vergleichen möchten, festlegen können sie sind gleich, gleich. Das bedeutet, dass die meiste Position x die gleiche ist wie der Mauspunkt x. Aber hier haben wir uns entschieden, sie als kleiner oder gleich zu halten. Aber was ist, wenn wir sagen wollen, wenn es nicht gleich ist? Nun, dann verwenden wir das Ausrufezeichen gleich. Dies bedeutet, dass jedes Mal, wenn die Bewegungseingabe anders ist als der Vektor zwei Punkt 0, das Walking auf true gesetzt ist. Sonst. Das heißt, wenn die Bewegungseingabe gleich 0 ist, werden wir diese Zeile duplizieren. Und wenn wir Alt gedrückt halten und die Pfeiltasten benutzen, können wir es hier hineinlegen. Und wir werden festlegen, dass das geht auf falsch. Das werden wir speichern. Lassen Sie uns das noch einmal durchgehen, weil ich vergessen habe, Ihnen davon zu erzählen und es einfach weiter zu benutzen, was sehr schlecht ist. Also hoffe ich, dass das nicht allzu verwirrend war. Wie auch immer, wir erstellen eine If-Bedingung, die wir in einem früheren Video gelernt haben. Wir prüfen, ob die Bewegungsgeschwindigkeit anders ist als ein Vektor 0, sagen wir anders als die Verwendung eines Ausrufezeichens und gleich. Wenn die Bewegungsgeschwindigkeit also anders ist als 0, bedeutet das, dass wir laufen. Wir werden auf den Player-Animator zugreifen, der die set-Bool-Methode verwenden wird. Und wir werden auf den Parameter is Walking zugreifen und ihn auf „true“ setzen. Und denken Sie daran, wenn wir es auf wahr setzen, haben wir hier den Übergang, der besagt, dass wenn B läuft wahr ist, wir gehen vom Leerlauf zu laufen, und wir haben dasselbe mit einem anderen gemacht. Sonst bedeutet, wenn die Bewegungseingabe gleich Vektor 2, 2, 0 ist , bedeutet das, dass wir aufgehört haben zu gehen, als falsch funktioniert. Wir gehen vom Spieler zum Spielen oder im Leerlauf. Mal sehen, ob das funktioniert. Also fangen wir das Spiel an. Wir können genau hier sehen, dass Spieler im Leerlauf sind. Wenn wir anfangen zu laufen, geht's los. Sie können sehen, dass wir jetzt laufen und es ist übrigens offensichtlich, sich die Beine unseres Spielers bewegen. Wie cool ist das? Jetzt haben wir also Animationen. Wir haben Übergänge von einer Animation zur anderen. Wir haben zwei Animationen erstellt. Vielleicht hast du den dritten für dich selbst erstellt. Ich werde es jetzt nicht tun, obwohl es später für den zukünftigen Michel mit diesem Problem fertig wird, ich fühle mich jetzt faul. Aber es gibt noch eine Sache, um die wir uns kümmern müssen wenn wir hier und zum Kuppelspieler gehen. Und lass uns zu Animations gehen. Wenn wir zum Beispiel den Leerlauf wählen und ihn spielen, werden Sie feststellen, dass unsere Waffe und unser Arm still stehen und nichts tun. Das ist überhaupt nicht gut. Es lässt das Spiel sehr, sehr schlecht aussehen. Also, und auch wenn es um das Gehen geht, können Sie genau hier sehen, dass sich der Arm bewegt, der Spieler bewegt sich, aber der Arm und weg sind sehr starr. Im nächsten Video werden wir das beheben. Bevor ich gehe, stelle sicher, dass du alles inszenierst, stelle sicher, dass du hinzugefügte Animationen und Animationen den Leerlauf und das Gehen in deinem Fall auch die Torpedo-Animation an den Player übergibst und die Änderungen festlegst. Und wir sehen uns im nächsten Video. 15. Verbessern von Spieleranimationen: Willkommen zurück, meine Spieleentwickler. In diesem Video sind unsere Hand und Waffe nicht mehr statisch, wenn wir unser Spiel ausführen . Und wenn wir uns nach links und rechts bewegen, ist es vielleicht nicht sehr auffällig, aber Sie können sehen, dass der Arm, der ist, die Bewegungsgeschwindigkeit viel langsamer macht. Also, wenn wir uns bewegen, los geht's. Man sieht, dass sich die Waffe auf und ab bewegt und der Arm sich nach links und rechts bewegt. Alles dreht sich tatsächlich ein bisschen. Wie cool ist das? Jetzt sind wir nicht mehr nur eine Waffe, die Monstertötung zeigt, Doom Slayer. Wir sind eigentlich eine animierte Untergangsebene, die von den anderen Dingen tut. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. O k. Was meine ich mit der Verbesserung unserer Animation? wir nicht schon eine ausreichend gute Animation? Nun, nein. Wie Sie sehen können, bewegt sich die Waffe beim Spielen der Animation nicht, der Arm bewegt sich nicht und das ist nicht gut. Also lasst uns das in Ordnung bringen. Lasst uns weitermachen und mit der Augenöffnung beginnen. Werde zusehen, wie ich es mache, und dann wirst du es beim Gehen umsetzen. Dies wird Ihre Herausforderung sein. Auch ich möchte die Herausforderungen überraschen, aber ich möchte, dass Sie sich auf das konzentrieren, was wir tun. Also haben wir diesen kleinen roten Knopf genau hier. Wenn wir darauf klicken, beginnen wir mit der Aufnahme. Sie können sehen, dass wir die Ratte haben und wir können alles ändern, was wir wollen. Während dieser Animation kann ich die Bewegungsgeschwindigkeit erhöhen. Sie werden also feststellen, dass Sie, wenn wir am Anfang beginnen, die Bewegungsgeschwindigkeit ansehen, während ich auf der Zeitachse gehe, Sie werden sehen, dass sie bis zu dem Punkt zunimmt, an dem ich es gesagt habe. Und dann möchte ich es zum Beispiel verringern. Und Sie werden feststellen, dass diese zusätzliche Eigenschaft hinzugefügt wird. Also fangen wir mit ihnen an. Wir steigen auf 72 und bewegen uns dann auf minus vier. Also fingen wir an, rückwärts zu gehen. Wie cool ist das? Aber wir sind nicht hier, um die Bewegungsgeschwindigkeit zu ändern. Wir können alles ändern, was wir wollen. Das ist übrigens der Grund, warum Animationen ein so erstaunliches und mächtiges Werkzeug in Unity sind. Was wir tun wollen, ist, dass wir den Arm bewegen wollen und der Arm öffnet sich auf und ab. Was wir also tun werden, ist, dass wir es tun werden, dies ist unsere erste Animation. Lassen Sie mich den Arm nur ein bisschen größer machen , weil ich die ganze Seite des Spielers abdecken möchte. Ich möchte nicht, dass etwas dahinter sichtbar ist, also wähle ich den Arm und schaffe es einfach um 30 Uhr. Wende das an. Jetzt ist der Arm ein bisschen größer. Es bedeckt den Arm des Spielers. Und wieder hier drin. Oh, habe ich mich geändert? War das während der Animation Aquino? Wenn wir also untergehen, sieht man, dass wir ein wenig nach unten gehen. Ich gehe den Arm und die Waffe runter. Nur ein bisschen. Okay. Und wenn wir dann noch mehr nach unten gehen, bewege ich Arm und Waffe ein bisschen mehr. Und wenn wir dann wieder aufstehen, kopiere ich die ursprüngliche Position von R und Pistole, kopiere sie und füge sie am Ende ein. Okay, großartig. Wenn wir mit der Aufnahme fertig sind, müssen wir sicherstellen, dass wir diese rote Zeitleiste haben. Stellen Sie sicher, dass wir die Aufnahme beenden. Jetzt haben wir die Animation eingestellt. Sie können genau hier sehen, dass wir zwei zusätzliche Eigenschaften haben, bei denen wir das y, das x, nur die Position des Transports ändern . Wir hätten dies tun können, indem wir eine Immobilie hinzufügen und von hier aus auf alles zugreifen können, aber das ist ein bisschen schnell. Mal sehen, was wir hier haben. Lass mich die abschließen. Was passiert jetzt, wenn wir die Animation abspielen? Da sind wir los. Du kannst sehen, dass der Arm und die Waffe auf und ab gehen. Aber es ist für mich und dich offensichtlich, dass etwas nicht stimmt. Was stimmt nicht? Du kannst sehen, dass der Spieler, lass mich einfach damit aufhören. Ich spiele das. Der Arm beginnt nach unten zu gehen, bevor das Sprite tatsächlich ausgelöst wird, bevor der erste kleine Dip NT-Spieler. Und da gehst du. Man sieht, dass der Arm schneller und nicht schneller ist. Aber das Problem ist, wenn es um das Animieren von Sprites geht, dass wir diese vier Bilder haben, okay? Also haben wir das erste Bild. Wir haben diese 10 Frames gewogen, dann haben wir das zweite Bild. Wir haben zehn Frames gemacht, dann haben wir das dritte Bild. Aber der Arm und andere Animationen funktionieren anders. Wenn ich zum Beispiel nach den Waffen schaue, beachte, wie sich das Y ändert. Es geht nicht sofort auf minus 0,332. Es geht eigentlich langsam von minus 28. Und bei jedem einzelnen Frame geht es weniger, weniger, weniger, weniger, weniger, bis es an diesen Punkt kommt. Und dann geht es etwas weniger ab und dann geht es ein bisschen mehr ab. Öl steigt. Ursprüngliche Position. Das wollen wir nicht. Es sieht sehr schlimm aus. Wenn ich das Spiel führe, siehst du, dass es sehr schlecht aussieht. Es sieht so aus, als wäre der Arm nicht richtig am Spieler befestigt. Wenn du willst, wenn es Teil deines Spiels ist, wenn das die Eigenart ist, die du in deinem Spiel haben willst, dann mach es. Ich empfehle dir, herumzuspielen und deine eigene Animation zu erstellen. Sie müssen meinen genauen Schritten nicht folgen, aber ich möchte Ihnen zeigen, was getan werden kann. Du hast genau hier das Dope-Blatt. Dope-Blatt. Ich bin mir nicht sicher, wie es ausgesprochen wird, aber hier legen wir die verschiedenen Eigenschaften fest. Wir können auch etwas anderes machen, das sind die Kurven. Und Sie können jetzt sehen, dass wir diese sehr unterschiedlichen Kurven haben. So können wir die Art und Weise ändern, wie die Sprites, die Waffen in Position sind und wie ändert sich die Waffenposition mit der Zeit. So kann ich zum Beispiel das x hier auswählen. Das Warum, wie sich ein ändert und das z. Lassen Sie mich Ihnen ein Beispiel geben, damit Sie verstehen, dass wir diesen Hebel genau hier haben. Wenn ich auf das zweite Bild klicke, kannst du sehen, dass ich einstellen kann, wie schnell oder langsam oder wie die Krümmung der Animation abläuft. Wenn ich also so erstellt habe oder es so mache, wirst du feststellen, dass das y größer wird und dann runtergeht und dann tiefer als beabsichtigt geht und dann zum Ziel kommt. Wenn ich es spiele, schau nach, wie das aussieht. Du siehst, da sind wir los. Lassen Sie mich das also verlangsamen. Also geht das y hoch und dann geht es nach unten und dann geht es zu der Position, in der wir beabsichtigt haben, dass es sich befindet. Was ist der Sinn, das zu tun? Wir können damit herumspielen und sie so machen, wie wir wollen. Aber was wir wollen, ist, dass wir das nehmen und den ganzen Weg nehmen wollen, bis es zu einem kleinen Quadrat wird. Wie sieht das aus? Lass mich es dir zeigen. Wenn wir jetzt spielen. Da gehst du. Es ist nicht sehr auffällig. Aber wenn wir uns bewegen, werden Sie feststellen, dass sich die Waffe nicht nur den Arm nach unten bewegt. Und wenn wir an diesem Punkt kommen, fällt die Waffe mit dem Spieler herunter und steigt dann langsam auf. Also haben wir einen Weg gefunden, diesen Übergang genau wie die Sprites zu machen. Also nochmal nehmen wir das auch. Da sind wir los. Jetzt wirst du bemerken, dass sich die Waffe auf und ab bewegt. War der Spieler genau. Machen wir das Gleiche für den Arm. Wenn wir auf das Warum klicken. Das hat er hier drin gesagt. Lasst uns rennen. Du kannst sehen, wie der Arm funktioniert. Wir wählen den zweiten Frame aus. Wir bewegen es den ganzen Weg. Wir werden wählen, dass der Rahmen ihn auch ganz bewegt. Und jetzt sollte die Animation perfekt aussehen, wenn wir sie überprüfen. Da gehst du. Sie können sehen, dass sich der Arm, die Waffe und der Spieler sprite alle zusammen bewegen. Ich hoffe, du hast verstanden, was wir hier schaffen. Lass mich das Spiel laufen, damit wir richtig sehen können, was passiert. Da gehst du. Sie können sehen, dass R und D jetzt wirklich Teil des Spielers aussehen können. Bevor ich die Herausforderung stelle, müssen wir uns um eine Sache kümmern, die wir uns nicht wirklich kümmern oder vorsichtig sein müssen, während wir spielen. Du merkst, dass du mich erschaffen hast und es zusammen machst. Wir haben die Waffe mit einer Rotation geschaffen. Also drehen wir die Waffe um, um auf unsere Masse zu zeigen. Wenn wir versuchen, die Waffe gerade während des Laufens zu drehen, oder wenn wir versuchen, diese Animation zu drehen, funktioniert das Zeigen des Kaugummis nicht mehr. Warum? Weil Update und Animation in Konflikt geraten werden. Die Animation möchte die Waffe also in eine Richtung drehen , während die Maus in die andere Richtung drehen möchte. Und was passiert ist, dass die Animation gewinnt und wir können nicht mehr zeigen, dass wir weg sind. , Nun, da Sie wissen, dass wir der Waffe keine Rotation hinzufügen sollten, sondern Sie können den Arm drehen. Und jetzt ist es Zeit für deine Herausforderung. Ihre Herausforderung besteht darin, die Walking-Animation zu beenden. Schwingen Sie also den Arm während des Gehens herum, damit Sie die Drehung des Arms ändern können. Stellen Sie sicher, dass er den echten Arm des Spielers bedeckt, damit wir keine Inkonsistenzen haben. Stellen Sie sicher, dass Sie die Waffe in der Animation nicht drehen, wenn Sie möchten Sei mein Gast, probiere es aus, schau ob ich gelogen habe oder nicht. Vielleicht war ich wer weiß. Also pausiere das Video sofort. Ich schwöre, dass ich es nicht war. Das tue ich nie. Und mach die Herausforderung. O K. Willkommen zurück. Also gehe ich von entweder zu Fuß um zu gehen. Und ich mache das Gleiche. Ich klicke auf den Aufnahme-Button. Und mal sehen, ich werde es tun, das ist der erste Rahmen, den wir bereits laufen. Was sollen wir hier machen? Du kannst kreativ sein, machen was wir wollen. Ich mache mein Ding und erkläre es schrittweise wenn du noch nicht verstanden hast, was wir vorher gemacht haben. Also die Waffen, die sich nie drehen, werden wir uns bewegen, sagen wir ein bisschen nach oben. Also ja, das ist ungefähr was ich will. Und der Arm, ich werde ihn ein wenig drehen und seine Position nach rechts ändern. Okay. Dann bewegen wir uns in diese Position. Ich nehme die Waffe runter und bewege den Arm ein bisschen so und ändere seine Position. Mal sehen, wo ist es? Okay, also gleich hier. Dann bewegen wir uns wieder, die Waffe hoch und der Arm posiert so, und gehen ein wenig nach unten oder ändern die Rotation. Und das hängt alles von Ihrer Präferenz ab. Vielleicht sollten wir auch die RNA jetzt aber größer machen. Dann gehen wir zum nächsten Frame. Die Waffe bewegt sich etwas nach unten. Und der Arm bewegt das. Während der Arm die RMB sollte. Okay, so leicht um das herum und geht nach oben. Und schließlich haben wir den letzten Frame, in dem wir diese drei kopieren werden. Sie können also jedes dieser Quadrate sehen, die umgekehrten oder umgekehrten Quadrate repräsentieren die Armposition, die Armdrehung und die Armwaffen sind nicht positioniert. Also wähle ich alle drei aus, kopiere sie und füge sie im letzten Frame ein. Mal sehen, wie das aussieht. Okay. Die Waffe bewegt sich also auf und ab, was irgendwie cool ist. Der Arm geht vorwärts und rückwärts. Es gibt einen Rahmen, den ich nicht zu sehr mag, der genau hier ist. Und es liegt daran, dass der Arm ein bisschen klein ist. Also denke ich, dass das Sprite den Arm tatsächlich etwas größer macht. Das werden wir ein bisschen ändern. Wir können tatsächlich sogar die Skala ändern. Versuchen wir das zu tun. Also sind wir Link Chris, oh, nein, nicht so viel wird die Skala auf 1,2 erhöhen, vielleicht auf das X und das Y. Und okay, das ist zu groß. Machen wir es 1.1 und reduzieren die Rotation ein wenig. Jetzt wirst du es sehen und es bleibt gleich. Also werde ich auch sehen, dass der Grünkohl im Gehör weiter zunimmt. Wissen Sie was, spielen wir nicht mit der Waage. Lasst uns einfach löschen. Es ist nicht gut, weil wir in der Lage sind, von Tieren wird es von hier aus einfach erhöhen. Wenn wir also in den Arm gehen, machen wir das vielleicht ein bisschen mehr. 28, vielleicht 29. Bewerben. Ja, ich denke, das ist gut genug. Und ich werde die Animation beenden. Jetzt. Ich gehe in die Kurven. Mal sehen, was wir hier haben. Wir haben die Waffe. Was ich denke, ich möchte die Waffe vielleicht gleich behalten und mal sehen, was sich hier ändert. Also die Position auf dem Y und dem X. Also werde ich diese so einstellen, wählen Sie diese aus, bewegen Sie sie nach oben, damit Sie jetzt eine visuelle Darstellung dessen sehen können , was wir meinen. Wir haben also immer noch die gleiche Position. Bis zum Klick gehen wir runter, klicken Sie auf „Wir gehen nach unten“. Und ich werde das ändern. Auch. Klicken Sie auf die Position x besuchen während die Kurve. Während die Kurve, okay, also ist sie hier unten. Warum willst du mein Leben erschweren? Wir drehen diese Reihe, diese Reihe, diese und los geht's. letzte bleibt gleich. Also mal sehen wir mal. Okay, irgendwie gut. Die Position, die die Rotation justiert. Während wir uns bewegen, ändert sich die Rotation um, z. Okay, was, was ist los damit? Mal sehen. Aus irgendeinem Grund haben sich die Waage geändert, aber keine Sorgen. Wir werden eine Lösung finden und dann werden wir umziehen. Oh, also können wir das erhöhen. Okay, großartig. Und da sind wir los. Also schauen wir uns das an. Okay, also sieht der Arm gut genug aus und die Waffe bewegt sich auf und ab. Und wenn wir versuchen, unser Spiel zu starten, schauen wir uns an, wie das aussieht. Okay, The Eagle ist gut. Das Gehen mit der Waffe ist immer noch ein bisschen herumgerissen. Mir gefällt es nicht, wie es sich auf und ab bewegt. Lasst uns das ändern. Und die Animation, schließe diese beiden Dinge. Gehe zur Gehposition, Kurven. Was ändert sich? Okay, es ist die y-Position. Wo ist es? Okay, also werden wir dieses Quadrat machen, dieses auch. Und der letzte, außer dir, lag um die Animation herum. Okay, also los geht's. Wir lassen die Waffe auf und ab bewegen. Ehrlich gesagt ist es nicht perfekt, aber es ist gut genug. Testen wir die Rotation. Wenn es funktioniert, hoffe ich, dass du es selbst ausprobierst. Jetzt, wenn wir laufen, gehen wir los. Wir zeigen richtig. Wir gehen, die Waffe bewegt sich auf und ab. Wir gehen mit unserer Hand. Wir haben keine statische Hand und keine statische Waffe mehr. Wir lassen den Spieler tatsächlich herumlaufen. Wie cool ist das? Wir haben erstaunliche Animationen. Im letzten Video werden wir die Geschwindigkeit der Spieler anpassen, werden wir die Geschwindigkeit der Spieler anpassen weil Sie es vielleicht nicht bemerkt haben, vielleicht haben Sie es getan. Aber als wir nach rechts gelaufen sind, haben wir eine gewisse Geschwindigkeit. Wenn wir nach oben gehen, haben wir die gleiche Geschwindigkeit, aber wenn wir versuchen, nach unten und links zu gehen, können Sie sehen, dass wir etwas schneller sind. Sie können also jetzt sehen, dass wir versuchen, nach oben zu gehen, wenn wir laufen. Sie werden feststellen, dass wir etwas schneller sind und ich werde erklären, warum die Geschwindigkeit so funktioniert. Ein bisschen Mathematik darüber, wie Vektoren und Normalisierung funktionieren. Also Mathe, er Yay, kann nicht auf das nächste Video warten, oder? Wir sehen uns dann sicher, dass Sie alle Ihre Änderungen übernehmen. Sieh mal, wie weit wir gekommen sind. Sieh dir alles an, was wir bisher gemacht haben. Wir haben erstellt, das Sortieren von Layern gelernt, Skripte erstellt. Jetzt bewegt sich der Spieler. Jetzt bewegt sich unser Spieler mit einem brandneuen starren Körper und Collider. Wir haben eine Waffe im Winkel gemacht. Wir haben den Spieler dazu gebracht, in die richtige Richtung zu zeigen. Wir haben Animationen hinzugefügt. Jetzt haben wir unsere Animationen verbessert, werden auch unsere Geschwindigkeit verbessern und wir sehen uns im nächsten Video. 16. Geschwindigkeit der Spieler 00: Willkommen zurück, meine Spieleentwickler. Dies ist ein sehr schnelles und kurzes Video. Dies ist nur eine kleine Anpassung , die wir vornehmen möchten. Und so wie sich unser Spieler bewegt, haben wir keine große Erkältung, wir haben keine Hauptprinzipien. Wir haben eine kleine Lektion über Mathematik, die als aufregendster Teil in der Spieleentwicklung anerkannt wird . Yay, das bist du wegen Mathe hergekommen, oder? Wie auch immer, verschwenden wir keine Zeit mehr. Und Sie können sehen, dass die Geschwindigkeit, wenn wir die Diagonale bewegen, die gleiche ist wie wenn wir uns nach oben oder unten oder links und rechts bewegen. Wie auch immer, verschwenden wir keine Zeit mehr und lasst uns anfangen. Oh, okay. Also lasst uns sehen, was hier passiert. Wie ich Ihnen sagte, bewegen wir uns immer, wenn wir uns nach links und rechts bewegen, mit einer bestimmten Geschwindigkeit. Aber wenn wir uns nach links oder rechts bewegen und nach oben gehen, bewegen wir uns viel schneller. Wenn du also nicht überzeugt bist, lass uns das testen. Vielleicht lüge ich. Ich gehe hier runter. Ich schreibe das Debug-Punktprotokoll. Und hier drin werde ich sagen mit einer Geschwindigkeit von zu gehen, und ich werde die Geschwindigkeit des starren Körpers der Schicht hinzufügen. Lasst uns das speichern und mal sehen, was wir haben. Jetzt funktioniert das vielleicht nicht. Wenn ich auf die Konsole klicke, wirst du feststellen, dass wir 00 haben. Wenn ich es jetzt bewege, würdest du es nicht sehen. Wenn ich weggehe, ist es minus 10, wenn ich nach oben und nach rechts gehe, man sieht, dass es 10 mal 10 ist, und das ist die Bewegungsgeschwindigkeit, die wir genau hier haben. Aber wir wollen nicht sehen wie der Vektor der Geschwindigkeit ist. Wir wollen das Ausmaß sehen. Also füge ich etwas hinzu, das „Magnitude “ genannt wird. Wenn Sie nicht wissen, wie groß die Größe ist, erkläre ich es nur ein bisschen. Also nochmal führen wir das Spiel aus. Jetzt haben wir die Magnitude 0. Wenn ich nach rechts gehe, haben wir es nach links gemacht, wir haben zehn. Wenn ich nach oben gehe, sind es immer noch 10. Sie können sehen, wie es hier zunimmt. Wenn ich nach unten gehe, sind es immer noch 10. Aber wenn ich jetzt nach rechts gehe, dann können wir sehen, dass es 14 ist. Michael, dein Ausbilder, lügt also nicht. Nie. Sie können sehen, dass wir uns schneller bewegen , wenn wir uns diagonal, nach oben oder unten bewegen , indem wir zwei Tasten drücken. Warum passiert das? Nun, es kommt zurück. Einfache Mathematik. Sie können sehen, dass wir die Geschwindigkeit auf dem y und die Geschwindigkeit auf dem X haben . Das haben wir gesehen, bevor wir die Magnitude hinzugefügt haben, die 10 mal 10 ist. Was also hier passiert, ist, dass wir diese beiden Vektoren hinzufügen , während wir uns diagonal bewegen. Und wir haben die letzte Spielergeschwindigkeit, die schneller ist als diese beiden. Wenn du willst, kannst du dies in deinem Spiel behalten , wenn es Teil deines Gameplays ist. Aber normalerweise wollen wir nicht, dass sich der Spieler schneller bewegt, wenn er sich in einer Diagonale bewegt. Das ist nicht logisch. Was wir also tun werden, ist, dass wir uns normalisieren werden. Wir tun durch Normalisierung ist diesen Bogen neu zu erstellen. Und das bedeutet, dass dies zu einem Kreis wird, was bedeutet, dass die Geschwindigkeit auf dem X plus die Geschwindigkeit auf dem Y die gleiche ist wie die Geschwindigkeit, wenn wir uns in einer Diagonale bewegen. Dies ist also ein normalisierter Vektor oder wenn wir sagen, einen Vektor zu normalisieren. Also lasst uns weitermachen und genau das machen. Also zurück in unserem Code, lass uns zu Visual Studio gehen. Und jetzt sehen wir, wo wird unsere Geschwindigkeit hinzugefügt? Es ist genau hier. Also füge ich eine, eine andere Zeile hinzu oder es tut mir leid, bevor wir dies der Geschwindigkeit hinzufügen, nehme ich die Bewegungseingabe und normalisiere sie. Spar dir das auf. Wenn wir jetzt wieder in unser Spiel gehen und übrigens den ganzen Prozess hier, wissen Sie, dass dieser nur einen Wert annimmt. Die Bewegungsgeschwindigkeit ändert sich nicht. Die einzige Variable, die sich ändert, ist der Bewegungseintrag. Deshalb normalisiere ich den Bewegungseintrag. Daher bleibt die Geschwindigkeit gleich. Also nur wenn du verwirrt warst, warum ändern wir den Bewegungseintrag, nicht die Geschwindigkeit. Also gehen wir wieder rein, wir führen unser Spiel aus. Und jetzt siehst du, dass wir nach rechts gegangen sind. Es Stan, links ist immer noch 10, hoch, Stan runter, es ist 10. Wenn wir uns in einer Diagonale bewegen. Da sind wir los. Sie können sehen, dass es immer noch fertig ist. Wie cool ist das? Es ist erstaunlich. Abschließend möchten Sie es vielleicht behalten. Vielleicht möchten Sie den Spieler schneller machen , wenn Sie sich diagonal bewegen. Das ist kein Problem. Du kannst machen, was immer du willst. Dies ist dein Spiel, füge deinen eigenen Geschmack hinzu. Aber das ist eine Gewohnheit zur Entwicklung von Kampfspielen , die Sie haben sollten wenn Sie auf Ihrer Reise voranschreiten. Nun, das heißt, das war ein schnelles und kurzes Video. Stellen Sie sicher, dass Sie Ihre Änderungen übernehmen. Ich habe letztes Mal vergessen, sie zu verpflichten, aber keine Sorge. Ich kann diesen Player-Controller behalten, da wir nur das Debug-Punkt-Log hier geändert haben. Und das Normalisierte kann ich diese inszenieren, diese Änderungen vornehmen und dann die anderen verpflichten. Also, nun, das heißt, ich hoffe es gefällt dir. Und ich glaube, dies ist das Ende von Abschnitt 2, in dem wir unseren Spieler einrichten werden. Im nächsten Abschnitt werden wir tatsächlich anfangen, unsere Waffe zum Schießen zu benutzen , indem wir Schießmechaniken hinzufügen. Also sehe ich dich dann. 17. Teil 3: Einstellung von Shooting – Kugeln: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und wenn wir das Spiel laufen, können Sie sehen, dass wir eine Kugel haben, die durch den Weltraum reist und wenn sie auf eine Wand trifft, wird sie zerstört. Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Okay, also lasst uns weitermachen und ein paar Kugeln erstellen. Das erste, was wir tun müssen, ist, dass wir ein paar Kugeln Sprite besorgen müssen. Lass uns weitermachen und genau das machen. Ich gehe in das Projekt ein. Und bevor ich diese Dinge mache, möchte ich hier ein paar Dinge ändern. Also klicke ich mit der rechten Maustaste, um einen Ordner zu erstellen. Ich nenne das die Röcke. Und ich füge den Spieler-Controller hinzu. Und hier erstelle ich jetzt zum ersten Mal einen Ordner die Sprites. Und ich füge alle Sprites, die wir haben, in diesen Ordner ein. Oder noch vorher erstelle ich einen Ordner für den Player und einen Ordner für die Waffen. Pistolen. Da sind wir los. Jetzt kann ich die Sprites hier öffnen. Nehmen wir die Waffe und stellen sie hier hin. Nehmen wir den Preis des Spielers und legen ihn in den Spielerordner. Großartig. Jetzt haben wir alles eingerichtet. Wir haben diesen kleinen kleinen Fehler. Ich glaube nicht, dass es ein großes Problem ist. Okay, Großartig. Jetzt lasst uns weitermachen und hier einen weiteren Ordner erstellen, der die Aufzählungszeichen sein wird. Und lasst uns in die Ressourcen gehen und die Sprites für die Laserkugeln holen. Nun fragen Sie sich vielleicht, warum habe ich mich entschieden, Laserkugeln und keine Kugeln für eine normale Schrotflinte zu haben? Nun, sieh dir zuerst diese Kugeln an, wie cool sie aussehen. Das sind 4142. Ich wollte, dass etwas leicht erscheint. Wie Sie sehen können, sind wir, lass es uns auf die Spielerebene setzen, okay, also möchte ich, dass etwas für uns deutlich sichtbar ist. Ich will keine kleine Kugel haben, die wir kaum sehen können. Ich möchte eine große glänzende Kugel haben, die wir abfeuern können. Wenn Sie möchten, können wir eine Sortierebene für die Aufzählungszeichen erstellen. Lass uns weitermachen und das machen. Eine neue Sortierebene, wir nennen dies die Aufzählungszeichen und sie sollte vor dem Spieler gerendert werden. Ich entscheide mich dafür. Ich benenne es in die Spielerkugel um. Und ich habe das einfach zufällig gewählt. Sie können eine beliebige Kugel auswählen, die Sie möchten. Ich denke vielleicht eine rote als Schrotflinte. Ich weiß es. Noch besser als das. Sieh mal, was wir tun können. Ich kann die Spielerkugel wählen und ich kann das Sprite hier ändern, ziehen Sie die Nummer 14 über. Da sind wir los. Es ist also eine riesige Kugel. Vielleicht könnte es ein wenig geändert werden, also wird die Kugel vor dem Spieler gerendert. Und ich denke, dass ich es vielleicht 0,50,5 mache. Nein, vielleicht behalte es eins. Jep. Das sieht aus wie eine große Schusskugel. Okay, großartig. Jetzt müssen wir dazu ein paar Dinge hinzufügen. Wir müssen zuerst einen starren Körper hinzufügen, weil wir sein werden, was ist das, Entschuldigung, Raum. Wir werden einen starren Körper hinzufügen, weil sich diese Kugel offensichtlich bewegen wird. Wir werden sicherstellen, dass wir die Rotation einfrieren. Wir werden sicherstellen, dass die Schwerkraftskala 0 ist. Und da sind wir los. Dann werden wir dazu einen Collider hinzufügen. Also füge ich einen Collider hinzu. Mal sehen, welches sollten wir benutzen? Ich denke, der Capsule Collider funktioniert nicht, weil er invertiert ist in der Horizontalen gipfelt. Lass uns weitermachen und einen Box Collider benutzen. Ich denke, es ist gut genug. Wo ist der Box Collider? Machen wir es ein bisschen kleiner. Jep. Da sind wir los. Und ich empfehle Ihnen immer, die Box Collider um Dinge wie Kugeln etwas kleiner zu machen , als sie sein müssen. Also los geht's. Oh, okay. Das ist gut genug, glaube ich. Und jetzt müssen wir das Verhalten der Kugel ändern. Wir wollen es fliegen lassen. Wie machen wir das? Wir tun das, indem wir ihm ein Skript hinzufügen. Also gehe ich hier in unsere Drehbücher ein. Ich klicke mit der rechten Maustaste und erstelle ein neues Skript, das der Player Bullet Controller sein wird. Warten wir, bis dieser Punkt kompiliert sofort ein Skript öffnet, wenn Sie eines erstellen. Warten Sie einfach, bis es kompiliert ist. Und jetzt können wir das Skript auf die Spielerkugel ziehen. Und wir können in der Spielerkugel sehen, dass wir den Sprite-Renderer über den starren Körper, den Box Collider und natürlich das Player Bullet Controller-Skript haben. Doppelklicken wir also und öffnen das Skript. Wir haben also ein brandneues Skript. Was machen wir hier drin? Nun, zuerst wollen wir eine Möglichkeit, die Geschwindigkeit dieser Kugel zu kontrollieren. Also erstelle ich ein serialisiertes Feld vom Typ float, das ist die Geschossgeschwindigkeit. Und lassen Sie es uns einfach standardmäßig 25 F setzen, da wir niemals einen Standardwert von 0 haben wollen. Also 55, aber die Geschwindigkeit der Kugel. Also wenn es niedrig ist, aber es ist besser als nichts. Und das nächste, was wir tun wollen, ist, dass wir dieser Kugel die Geschwindigkeit verleihen möchten. Um dies zu tun, brauchen wir einen Hinweis auf den starren Körper. Und ich habe keine Lust, dies zu tun, also möchte ich es dir als Herausforderung geben, du musst einen Hinweis auf den starren Körper bekommen. Erstellen Sie also eine Variable vom Typ starrer Körper, um sicherzustellen, dass sie privat ist. Und fangen Sie an, die Komponente des Typs starrer Körper zu holen. Wenn Sie bereits wissen, wie das geht, pausieren Sie das Video und machen Sie die Herausforderung. Wenn nicht, gebe ich Ihnen einen kleinen Hinweis darauf, wie Sie eine Komponente erhalten. Verwenden Sie Get-Komponente mit einem Typ zwischen den zwei etwas größeren oder kleineren Zeichen. Also pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Also hier drin werde ich einen privaten starren Körper 2D und den starren Körper der Kugel erstellen . Spar dir das auf. Und jetzt, weil wir den Player Bullet Controller auf einem Spielobjekt haben , das auch den starren Körper hat. Wir können sofort darauf zugreifen, indem wir sagen, dass der starre Körper der Kugeln gleich der Schuldenkomponente ist, starrer Körper 2D. Und jetzt haben wir einen Hinweis darauf. Jetzt und aktualisiere was werden wir tun? Nun, genau wie wir es mit dem Spieler getan haben, werde ich weitermachen und sagen, dass die starre Körpergeschwindigkeit der Kugeln gleich dem neuen Vektor 2 ist, da die Geschwindigkeit ein Vektor 2 ist. Wenn wir in den Raum arbeiten, behalte ich einen für das x. Und ich behalte 0 F als y. Und ich werde es mit der Geschossgeschwindigkeit multiplizieren. Warum mache ich das? Nun, weil ich nicht möchte, dass sich die Kugel in der Y-Achse bewegt. Ich will nicht, dass es sich vertikal bewegt. Ich möchte die Kugel vorerst nur waagerecht verschieben. Also lasst uns das aufheben. Okay, also lasst uns zurück zu Unity gehen und lassen Sie uns ein wenig herauszoomen und lassen Sie uns die Geschwindigkeit zu den beiden machen, damit wir klar sehen können, was passiert. Lasst uns den Arbeitgeber und die Kugel zurückbringen und unser Spiel ausführen. Also los geht's, du kannst sehen, dass die Kugel durch den Weltraum reist und wenn sie trifft, also hört alles komplett auf, so großartig. Unsere Kugel bewegt sich perfekt. Wir können es aufteilen. Wir können tun, was wir wollen. Aber was passiert zum Beispiel, wenn das Buch diagonal ist, wenn wir unser Spiel ausführen? Mal sehen, was passiert. Ja, so soll sich eine Kugel also eindeutig nicht bewegen. Was wir tun wollen, ist, dass sich die Kugel immer in die Richtung bewegt, in die wir uns gesetzt haben. Wie werden wir das machen? Sagen wir zum Beispiel, wir haben unsere Schrotflinte genau hier, unseren Arm, und sie ist nach oben gedreht. Unsere Kugel wird auch nach oben gedreht. Wenn wir es also bewegen, ist es etwas Ähnliches. Aber wenn wir hier oben klicken , können Sie das Zentrum und das Globale sehen. Dies ist für die Rotation, dies ist für die, naja, wie die Achsen dargestellt werden. Wenn ich also auf das Lokale klicke, siehst du, dass dies die Richtung ist, in die sich die Kugel gerade befasst. So wird die Kugel herauskommen und fliegen. Und Sie können sehen, dass es das Rot ist, das die x-Achse ist, die nach oben schaut und die Richtung der Kugel. Wenn wir also unsere Schrotflinte drehen, wollen wir, dass die Kugel sie auch damit dreht. Also wollten wir immer in Richtung x fliegen. Wie werden wir das machen? Nun, zum Glück gibt es einen Vektor, der Transformationspunkt genannt wird, oder? Und lass mich dir zeigen, was das ist. Ups, tut mir leid, das ist für später. Transformieren Sie also, dass das Recht die rote Achse des Transports im Weltraum ist. So können wir auf diese Achse zugreifen, wann immer wir wollen. Und das ist die Richtung, in die wir unsere Kugel fliegen lassen werden. Also zurück in unserem Code und hier werde ich den neuen Vektor zwei entfernen. Und das werde ich stattdessen tun. Sag, dass die Richtung transformiert wird Punkt, oder? Jetzt fliegt sie jedes Mal und das Update, wenn die Kugel fliegt, wenn die Kugel fliegt, mit der Geschwindigkeit der von uns festgelegten Geschossgeschwindigkeit und in Richtung der transform.py, rechts, die rote Achse ist. Testen wir das mal. Wenn ich das Spiel jetzt führe, bewegt sich die Kugel gut. Großartig. Mal sehen, ob wir das speichern. Und wenn die Kugel nach oben zeigt, wenn ich das Spiel führe, ja, los geht's, die Kugel bewegt sich nach oben. Wie cool ist das? Großartig. Jetzt noch eine Sache. So verhält es sich nicht. Normalerweise eine Kugel Wann immer es so ist. Lass es mich einfach strecken. Nun, es funktioniert. Jep. Da gehst du. Es hat das Gebäude einfach geliebt und es wird ewig bis zur Ewigkeit weitergehen. Und das ist ein Problem. Wann immer Sie eine Kugel haben, die irgendwann nicht zerstört wird, wenn sie auf eine Wand trifft. Das müssen wir beheben. Das ist das erste Ding. Die zweite Sache ist, dass eine Kugel nicht nur eine Wand trifft und dort bleibt. Eine Kugel sollte in der Lage sein, durch eine Wand zu reisen. Vielleicht bin ich vielleicht durch eine Mauer gereist. Also klicken wir auf die Spielerkugel. Wir gehen runter und zum Collider und wir werden es zum Auslöser machen. Was ist ein Auslöser? Ein Auslöser, ob sich der Collider als Trigger verhält oder nicht, das ist nicht sehr hilfreich. Ein Auslöser bedeutet, dass diese Kugel, wenn diese Kugel auf eine Art Oberfläche trifft, sie nicht physisch beeinflusst. Aber es gibt uns die Möglichkeit, etwas namens Ursache zu nennen, etwas namens That ist sehr klug. Und bei Trigger Enter zum, was das tut, können Sie die Beschreibung lesen, die gesendet wird, wenn ein anderes Objekt in einen ausgelösten Collider eintritt , der nur an die Physik an diese Objekte angeschlossen ist. Was passiert also, wenn diese Kugel ein Auslöser ist, wenn sie durch den Weltraum fährt? Wenn es hier drin auf die Wand trifft, was im Hintergrund steht. Wenn es diese Wand trifft, wird eine Sugar Enter Methode aufgerufen, die auf dem Bullet-Spieler Bullet Controller und Vorsicht Gold erzeugt, wir können weitermachen und alles tun, was wir wollen. Und eines dieser Dinge ist „Zerstöre die Kugel“. Lassen Sie mich das demonstrieren. Das ist viel Reden, nicht genug Action. Mal sehen, was passiert. Ich schreibe auf Trigger, gib 2D ein, drücke die Tabulatortaste. Wie Sie sehen können, ist es eine private Leere. Machen Sie sich keine Sorgen, wenn Sie nicht wissen, was das Wort ist. Später werden wir alles erklären und wie wir Methoden erstellen können. Keine Sorge. Und dann haben wir den Onsager eingegeben und wir haben hier etwas, das als Parameter bezeichnet wird. Wir werden uns auch tiefer damit befassen. Aber alles, was Sie wissen müssen, dass diese Kollision das Objekt ist, das wir gerade getroffen haben. Wenn diese Kugel zum Beispiel den Spieler fliegt und trifft, ist der Spieler die Kollision genau hier. Aber wie auch immer, was wollen wir tun, wenn die Kugel etwas trifft? Nun, wir wollen, dass diese Kugel sich selbst zerstört. Wir wollen, dass diese Kugel verschwindet. Wir brauchen in unserer Welt nicht mehr. Es gibt eine sehr gute Methode, dies zu tun, würde einfach schreiben, das Spielobjekt zerstören, und das war's. Also zerstören wir was sollen die Steroide oder entfernen ein Spielobjekt, eine Komponente oder einen Vermögenswert? Und was wollen wir entfernen? Wir möchten das eigentliche Spielobjekt entfernen. Und wenn Sie den Mauszeiger darüber bewegen, können Sie das Spielobjekt lesen. Diese Komponente ist an Komponenten eines Spielobjekts angehängt. Also lasst uns das aufheben. Gehen wir zurück zu Unity, die hier Doublet gesetzt hat. Und jetzt, wenn die Kugel einen der Collider trifft, sollte sie aus unserer Szene verschwinden. Lass uns das Spiel laufen. Behalten Sie die Szenenansicht im Auge. Da gehst du. Es bekommt Steroid. Hast du in der Hierarchie bemerkt, dass wir die Kugel nicht mehr haben? Entschuldigung, das ist ein nerviges Update. Versuchen wir es noch einmal ohne Updates. Das hat versucht, die Kugel genau hier zu setzen. Führen Sie das Spiel aus, behalten Sie die Hierarchie im Auge, wenn es trifft, damit die gesamte Kugel verschwindet. Wenn wir also eine Zone betreten, wird die Kugel zerstört, weil es ein Auslöser ist, was bedeutet, dass es die Onsager-Enter-Methode auslöst , wenn sie tatsächlich auf irgendeine Art von Wand trifft Hier können Sie mehr darüber lesen die Unity-Dokumentation. Ich hoffe, Sie haben es genossen, Ihre brandneue Kugel zu kreieren. Ich hoffe, es stört Sie nicht, dass die Kugeln an der Stelle der Eigenart des Spiels, das wir kreieren, glänzend und sehr futuristisch sind. Und wir verwenden auch kostenlose Sprites. Wir müssen also die Einschränkungen umgehen, die wir haben. Im nächsten Video werden wir diese Kugeln tatsächlich aus der Waffe schießen , indem wir erfahren, was kurz ist. Vergiss niemals, deine Änderungen zu übernehmen. Ich hoffe es gefällt dir und wir sehen uns im nächsten Video. Und bevor ich übrigens gehe, gibt es etwas, das wir nicht inszenieren wollen und unser Spiel, nämlich die Sprites, die wir gerade hinzugefügt haben. Was wir also tun werden, denn dies ist keine notwendige Inszenierung, die Sprites zu begehen. Was ich tun werde, ist, dass ich hier reingehe. Ich klicke mit der rechten Maustaste und ignoriere alles unter Vermögenswerten, Sprites. Wir wollen nichts retten, was sich in den Sprites befindet. Denn zum einen werden wir immer die Sprites auf unserem Computer haben, haben wir die Sprites vielleicht nie versehentlich gelöscht. Und selbst wenn wir das tun, können wir sie immer zurückbringen. Und 3, sie nehmen viel unnötigen Platz ein. Also ignoriere alles unter den Vermögenswerten Sprites Hit Okay, alles sollte weg sein, nur die Kugeln und so weiter und so weiter. Ich hoffe, du hast alles genossen und wir sehen uns im nächsten Video. 18. Bulletin (Prefabs und instantiation): Willkommen zurück meine Spieleentwickler zu einem brandneuen, extrem aufregenden Video. Wir haben zuvor Kugeln erstellt, wir haben sie zum Fliegen gebracht, aber jetzt nutzen wir die Kraft der Aufklärung, die Macht der Instanziierung, die Macht der Instanziierung. Ich meine, wir haben in diesem Video so viel gelernt, wir mit dem Schießen von Kugeln in verschiedene Richtungen beginnen können. Wie cool ist das? Wie Sie sehen können, schießen mehrere Kugeln aus unserer Schrotflinte. Verschwenden wir also keine Zeit mehr. Und lass uns anfangen. Oh, okay, also Zeit, Stundenkugeln abzufeuern. Aber wir wollen, dass mehrere Kugeln abgefeuert werden. Wir wollen nicht nur eine Kugel haben. Was sollen wir also tun? Sollen wir diese Kugel mehrmals duplizieren? Übrigens mache ich das mit Control D. Nun, offensichtlich nicht, das ist keine gute Idee. Was wir tun müssen, ist, dass wir etwas erstellen müssen, das als Prefab bezeichnet wird. Was ist ein Präfix? Lass mich es dir zeigen. Ein Prefab bedeutet im Grunde genommen, dass es ein zuvor hergestelltes Spielobjekt handelt, das wir mehrmals verwenden können. Es gibt viele, viele Vorteile, Prefabs zu haben, wenn es darum geht, neue Szenen zu erstellen und verschiedene Dinge zu tun. Lassen Sie uns ein paar wichtige Dinge über Prefabs durchgehen. Es ist eine Vorlage für ein bestimmtes Spielobjekt. Genau wie wir die Kugel mit seinen spezifischen Komponenten an einem bestimmten Collider haben, können wir daraus ein Prefab erstellen und mehrere Aufzählungszeichen mit denselben Komponenten erstellen, mit denselben Sprites , demselben Collider usw. Prefab-System können Sie ein Spielobjekt mit all seinen Eigenschaften speichern. Genau wie gesagt, kannst du ein Prefab der Kugel erstellen und dann mehrere Kugeln mit den gleichen Eigenschaften, Spielkomponenten usw. erstellen. Wofür benutzen wir es? Wir können ein auf eine bestimmte Weise konfiguriertes Spielobjekt wiederverwenden. Daher die Kugel, die wir mehrere erstellen können, aber mal sehen, wir werden sehen, wie wir viele Objekte gleichzeitig bearbeiten können. Nehmen wir zum Beispiel an, wir wollen die Kugeln schneller machen. Sollten wir alle Kugeln oder jedes Mal wechseln? Nein, wir können nur das Prefab ändern und jede andere Form dieses Prefabs wird geändert. Wir können dasselbe Objekt in verschiedenen Szenen verwenden, viel einfacher, wenn wir mit der Erstellung mehrerer Ebenen beginnen. Du weißt, was ich damit meine, und das war's. Also lasst uns ein Prefab erstellen. Jetzt ist der Prozess der Erstellung eines Prefabs extrem, extrem schwierig. Also sei sehr, zieh deine Mützen an, hör auf alles und sieh zu, was ich mache. Das ist sehr wichtig. Zunächst erstellen wir einen Ordner, der die Prefabs ist. Ich gehe hier rein und jetzt erstelle ich ein Prefab aus dieser Kugel. Was wir also tun müssen, ist, dass wir diese Kugel zuerst hierher ziehen müssen. Und das war's. So erstellen wir ein Prefab. Was wir jetzt tun können, ist, dass wir dieses Aufzählungszeichen einfach hierher ziehen und mehrere Aufzählungszeichen erstellen können. Und Sie können sehen, dass die Kugel drei, zwei Bullet 1, alle die gleichen Komponenten im Inspektor haben. Und Sie können wissen, dass ein Spielobjekt ein Prefab ist, indem Sie sich seinen Gelehrten ansehen. Sie können also sehen, dass der Hintergrund kein Prefab ist, aber die Spielerkugel liegt daran, dass er ein bisschen blau ist. Sagen wir zum Beispiel, ich möchte ein Prefab aus dem Zimmerspieler erstellen. Da sind wir los. Jetzt ist die Dump-Layer ein Prefab und ich kann eine weitere und eine dritte hinzufügen. Und wenn ich das Spiel führe, haben wir jetzt drei Doom Spieler, die am A herumlaufen. haben wir jetzt drei Doom Spieler, die am A herumlaufen. Da gehst du. Wir haben eine coole Armee. Die drei Musketiere, wir nennen sie die drei. Ich bin mir nicht sicher. Okay. Musketiere, das reicht. Lassen Sie uns alle Kugeln löschen, die wir haben. Wir können dieses Original sogar löschen und wir können es immer noch aus unseren Prefabs hinzufügen. Und lasst uns den Spieler als Prefab hier behalten. So sehr nett. Jetzt haben wir alles fast eingerichtet und wir können anfangen zu kreieren und die Kugeln abzufeuern. Gehen wir also in den Spieler-Controller und fangen genau damit an. Jetzt werde ich diese Kugeln vom Spieler-Controller abfeuern. Aber denken Sie später daran, dass wir ein anderes Skript brauchen werden, um das Feuer für uns zu erledigen. Von jetzt an nur eine Vorwarnung. Zuallererst erstelle ich ein serialisiertes Feld, das vom Typ Spielobjekt ist. Und dies wird der Hinweis auf die Kugel sein, oder wir können es als spielbar bezeichnen. Keine Sorge. Lassen Sie es uns vorerst als Kugel behalten. Wir werden einen Hinweis auf etwas brauchen, das als Transformation oder Transformations-Feuerposition bezeichnet wird . Und warum brauchen wir das? Nun, woher kommt unsere Kugel heraus? Offensichtlich wird es aus unserer Schrotflinte herauskommen. Und wo ist der Brennpunkt der Schrotflinte? Sollte es aus der Mitte der Schrotflinte herauskommen, wäre das nicht so schön. Was wir tun werden, ist, dass wir einen Feuerpunkt hinzufügen. Und dieser Feuerpunkt wird ein leeres Spielobjekt sein, das ein Kind der Waffen sein wird. Also Feuerpunkt. Und beachte, was jetzt passiert, denn sie schichten nicht, ist ein Prefab. Sie werden feststellen, dass die Aktenanleihe ein kleines Plus hat. Was heißt das? Wenn ich hier auf die oberste Ebene klicke, kann ich auf ihn doppelklicken und ihn separat öffnen. Sie werden feststellen, dass er den Feuerpunkt nicht hat , weil das Prefab noch nicht angepasst wurde. Und man sieht es an der Farbe des Feuerpunktes und des kleinen Pluspunkts. Also können wir in den Do-Spieler gehen. Hier drin haben wir die Überschreibung. Wenn wir nach unten klicken, werden Sie feststellen, dass Dinge, die wir geändert haben, aber noch nicht auf das Prefab angewendet haben. Und Sie können sehen, dass wir entweder die spezifische Sache anwenden können oder wir können, können alles anwenden. Wenn wir also auf alle anwenden klicken, der Untergangsspieler, wenn wir auf ihn doppelklicken, hat der Untergangsspieler, wenn wir auf ihn doppelklicken, den Feuerpunkt, das Prefab des Untergangsspielers hat auch den Feuerpunkt. Also bewegen wir den Feuerpunkt hier und vor die Schrotflinte. Aber wenn wir noch 11 der Kuppelspieler hinzufügen, werden Sie feststellen, dass sich der Feuerpunkt noch in der Mitte befindet, während sich der Feuerpunkt des Untergangs hier vor der Schrotflinte befindet. Oh, und Sie können auch sehen, wenn ich auf den Feuerpunkt klicke, die Transformation, die Position hat diese kleine blaue Linie und dies bedeutet, dass wir etwas vom Prefab geändert haben. Also gehe ich in den Doom Player, klicke auf Override und wende alle an. Aber wir wenden nicht immer alle an. Behalte das im Hinterkopf. Wenn ich auf Alle anwenden klicke. Wenn ich hier zum Doom Player zurückkehre, wähle ich den Dateizeiger aus und er erschien magisch am Ende der Schrotflinte. Sie beginnen also zu verstehen, wie nützlich ein Prefab sein kann wenn es darum geht, mehrere Elemente von Prefab zu ändern, die wir erstellt haben. Später. Während wir den Kurs durchlaufen, machen wir komplexere Dinge. Sie werden sehen, wie effizient das System ist. Im Moment löschen wir den Doom Player und lassen uns weitermachen. Also haben wir unseren Feuerpunkt, wir haben unsere Kugel. Das nächste, was wir tun wollen, ist, dass wir anfangen wollen, 0 zu feuern. Also habe ich das an der falschen Stelle hinzugefügt, entschuldigen Sie mich. Wir haben im Player Bullet Controller gearbeitet und wir hätten im Layer-Controller arbeiten sollen, nicht im Player-Bullet-Controller. Das ist ein bisschen verwirrend. Ich habe die Spielerkugel nicht bemerkt. Keine Sorge. Wir kontrollieren einfach X, wodurch sie von hier aus geschnitten werden, und wir fügen sie hier ein. Entschuldigung für die Verwirrung. Ich entschuldige mich für meinen Mangel an Konzentration. Spar dir das auf. Geh zurück. Jetzt werden wir sehen, dass wir einen Verweis auf das Aufzählungszeichen haben, einen Verweis auf die Dateiposition oder den Feuerpunkt , der der Feuerpunkt sein sollte. Spar das wieder in unserem Spiel auf. Bitte verschwende nicht meine Zeit und nichts klebt. Feuerpunkt und die Kugel werden das Vermögen sein. Prefabs. Ziehen Sie die Kugel hinein. Und da sind wir los. Wir können die Änderungen auch anwenden und hier. Was müssen wir also tun? Wir wollen jedes Mal, wenn wir einen Knopf drücken, der die linke Maustaste sein wird, eine Kugel abfeuern. Also lasst uns das machen. Wir werden eine Bedingung und das Update erstellen , bei dem wir prüfen, ob wir eine bestimmte Maustaste drücken. Aber wie wenn wir in die Einheit gehen, sind Dokumentationen. Wir können sehen, dass wir eine Eingabe haben, um die Maustaste herunterzubekommen. Wenn wir die Beschreibung lesen, können wir sehen, dass sie während des Frames ein True zurückgibt, den der Benutzer der angegebenen Maustaste gedrückt hat, und wir können sogar ein Beispiel hier sehen. Wenn der Eingabepunkt den Boss Button nach unten 0 bekommt , drücken wir die primäre Taste , die die linke Maustaste sein wird, die als d rechte Maustaste. Und die beiden sind die Mitte, die das kleine Rad ist. Also hier drin lösche ich dieses Debug-Punktprotokoll. Ich überprüfe, ob der Eingabepunkt die Maustaste auf 0 erhält. Was machen wir hier drin? Nun, wir wollen etwas tun, das als Instanziierung bezeichnet wird. Was ist das? Zurück? Und Unity's Dokumentation können wir sehen, dass wir ein Objekt instanziieren können. Lasst uns die Beschreibung lesen. Es gibt ein Objekt zurück, das Kleidung instanziiert hat , oder wir erstellen einen Klon des Prefabs, das wir haben. Klont das Objekt original und gibt den Klon zurück. Diese Funktion kann ein Objekt ähnlich dem Duplikat usw. kopieren. Sie können alles darüber lesen, und so können wir es verwenden. So können wir das Objekt einfach instanziieren, was auch immer es ist, ohne jeglichen Zusatz. Wir können ein Objekt instanziieren und es zu einem Kind eines bestimmten Elternteils machen, das wir wollen, was sehr hilfreich ist. Wir können in einer bestimmten Welt und einem bestimmten Raum instanziiert werden. Wir können Positionsdrehung und ein Elternteil hinzufügen. All dies ist also sehr wichtig. Jetzt, da Sie wissen, wie Instanziierung funktioniert, ist es Zeit für eine Herausforderung. Und Ihre Herausforderung wird darin bestehen, die Bullet-Präfabs zu instanziieren. Sehen Sie sich also das Beispiel der Instanziierung in Unity's Dokumentation an. Objekte sollten sein oder das ursprüngliche Objekt sollte das Prefab der Aufzählung sein. Stellen Sie sicher, dass sich die Position an der Fünf-Position befindet. Die Rotation befindet sich ebenfalls an der Fünf-Position. Und ich gebe dir einen kleinen Hinweis, wenn du ihn nicht brauchst, du weißt, wie man kreiert. Mach weiter und mach die Herausforderung. Wenn nicht, verwenden Sie die oberste Position und die Drehung des Feuerpunktes, um auf die Position und Drehung zuzugreifen . Also pausiere das Video sofort. Ich weiß, dass Sie noch nicht wissen, wie man Instanziierungen erstellt, aber dies ist der perfekte Zeitpunkt, um sich selbst zu testen, über Ihre Grenzen zu gehen oder was Sie für Ihre Grenzen halten. Also pausiere das Video sofort. Geh zum Shalon. Was wir tun werden, ist, dass wir instanziieren, die Klammern öffnen werden. Und wir können genau hier alle Möglichkeiten sehen, die wir haben. Aber wir wissen bereits aus den Dokumentationen, wie man es benutzt. Welches ist das Originalobjekt, das wir verwenden werden? Es wird die Kugel sein, auf die wir den Hinweis bekommen haben. Was ist die Position, die wir dieses Aufzählungszeichen hinzufügen möchten. Es wird die Punktposition des Feuerpunkts hinzugefügt. Und weil wir eine Position hinzugefügt haben, möchten wir auch eine Rotation hinzufügen, und es wird einfach die Drehung des Feuerpunktes sein. Spar dir das auf. Wenn wir jetzt mit der Maustaste klicken, die ungleich Null ist, werden wir die Kugel instanziieren, die wir an der Feuerpunktposition verweisen , die wir mit der Drehung der fernen Punkte erstellt haben. Warum geben wir die Feuerpunktrotation an? Denn wenn ich auf den fernen Punkt klicke, siehst du genau hier, wie er gedreht wird. Wenn ich den Arm gerade drehe, weil der Feuerpunkt ein Kind der Waffen ist, werden Sie jetzt feststellen, dass dies die Richtung ist, obwohl die Rotation immer noch 0 ist. Aber die Richtung, die Sie genau hier sehen können, wenn Sie sehen können, hat sich dies von global zu lokal geändert. Sie werden sehen, wie der Feuerpunkt gerichtet ist. Also werde ich wieder auf 0 zufrieden stellen. Und die Rotationen sind manchmal komisch. Es geht nicht nur um 0. Wenn wir uns die Position ansehen, wenn wir die Drehung ändern, werden Sie feststellen, dass sich auch die Position ändert. Es ist ein bisschen verwirrend. Deshalb verwenden wir normalerweise Quaternions-Rotationen in Unity sehr zweifelhaft. Wie auch immer, das sparen wir uns. Wir werden unser Spiel ausführen und jetzt können wir unsere Kugeln abschießen. Wie cool ist das? Schau dir an, wie viele Kugeln wir erstellt haben. Aber wie Sie sehen können, zerstören sie sich selbst, wenn wir viele Kugeln abschießen. Das ist also ein No-No. Wenn das erledigt ist, hoffe ich, dass es Ihnen gefällt. Stellen Sie sicher, dass Sie die Änderungen im nächsten Video Wir machen unsere Aufzählungszeichen weit automatisch, ohne die Taste jedes Mal drücken zu müssen. Obwohl dies eine Schrotflinte ist, machen wir es zu einer automatischen Schrotflinte. Also übernehme die Änderungen und wir sehen uns im nächsten Video. 19. Zünde: Willkommen zurück, meine Spieleentwickler. In diesem Video werden wir ein automatisches Brennen hinzufügen. Sie können also genau hier sehen, dass wir eine Zeit zwischen den Schüssen haben. Wie viel Zeit willst du zwischen den Aufnahmen? Ich höre dich. Du willst 0.5 sagen? Okay, Sir, da sind Sie los. Wir spielen Run. Wir hatten den Play-Button. Wir führen den Gewinn und halten die linke Maustaste gedrückt. Und da gehst du. Sie können sehen, dass wir jeden einzelnen Frame sollten und Sie können sehen, dass sie sehr konsistent sind. Also spiele ich kein Spiel und hier halte ich den Knopf gedrückt und er feuert alle 0,5 Sekunden oder jede Sekunde, wir feuern weiter in der Lage. Verschwenden wir also keine Zeit mehr. Wir werden etwas über Zähler lernen. Und lasst uns anfangen. O k. Wir möchten also die Möglichkeit haben, Kugeln automatisch abzufeuern , wenn die Maustaste gedrückt gehalten wird. Also, wann immer wir den Knopf drücken, sobald wir schießen können, aber was wir wollen, ist eine Art automatisches Schießen zu haben , während wir den Knopf gedrückt halten, genau wie ein Gewehr, obwohl wir es sind Mit einer Schrotflinte genau hier nutzen wir einfach unsere Fantasie und stellen uns vor, dass dies eine automatische Schrotflinte ist. Und während wir den Knopf gedrückt halten, feuert er weiter. Wie werden wir das machen? Wenn Sie gerade hier hinschauen, können Sie sehen, dass diese Methode, die Schaltfläche „Maustaste abrufen“, während des Frames, den der Benutzer mit der angegebenen Maustaste gedrückt hat, einen True zurückgibt. Es gibt also nur einmal wahr zurück , wenn der Player oder der Benutzer die Taste gedrückt hat. Was wir wollen, ist, dass wir etwas verwenden möchten, das als Eingabepunkt get-Maustaste bezeichnet wird. Beachten Sie also, dass dies mit der Maustaste gedrückt war. Dies ist die gekommene Maustaste. Und wenn Sie die Beschreibung lesen, können Sie sehen, dass sie einen True zurückgibt, ob die angegebene Maustaste gedrückt gehalten wird. Während wir also festhalten, wird dies immer wieder wahr. Und dies wird es uns ermöglichen, immer wieder Kugeln zu instanziieren, in jedem einzelnen Frame. Aber wir stoßen auf ein Problem. Du hast bemerkt, dass wir, wenn wir das Spiel starten, wenn du dich erinnerst, die Statistiken genau hier sehen können. Wir haben also etwa 800 bis tausend Bilder pro Sekunde. Bei jedem einzelnen Frame, während wir die Maustaste gedrückt halten, werden wir eine Kugel instanziieren, was sehr schlecht ist. Wir werden also jede Sekunde rund die 1000 Kugeln haben. Jetzt macht es Spaß. Es ist eine sehr OOP-Waffe, aber das wollen wir nicht. Wir wollen eine gewisse Zeit zwischen dem Abfeuern jedes Buches haben , während wir uns wie eine echte Waffe festhalten. Was ist hier wichtig? Okay, also keine Sorge. Ich denke, das wird sich von selbst klären. Wie auch immer. Fangen wir an. Das erste, was wir tun werden, ist, dass wir ein serialisiertes Feld erstellen, das ein Float sein wird, und es wird die Zeit zwischen den Schüssen sein. Eine zweite Variable, die wir als privaten Float und den Schusszähler haben werden. Und was wir tun werden, ist, sobald wir anfangen, werden wir den Schusszähler auf 0 einstellen, oder wir können ihn sofort hier einsetzen, anstatt ihn und den Start einzustellen. Also fangen wir bei 0 an. Wenn wir jetzt hier nach unten scrollen, werden wir eine andere Bedingung schaffen. Und wir werden sagen, wenn der Eingabepunkt die Maustaste bekommt, die zurückgibt, ob die angegebene Modi-Taste gedrückt gehalten wird. Und wir verwenden auch den Index 0 für die linke Maustaste. Wir werden anfangen, den Schusszähler zu benutzen und die Zeitpunkt-Delta-Zeit daraus zu entfernen. Erinnern Sie sich also, wann wir das Plus irgendwo hier oben verwenden , als wir die Transformation verwendet haben, jetzt haben wir es nicht. Nun, das ist ähnlich wie das Plus ist gleich. Dies stellt also den Schusszähler minus time.Deltatime dar. Und weißt du was, ich werde das duplizieren, kommentiere das. Und dann mache ich das zu einem Minuss gleich. Sie werden sich also daran erinnern, dass es sich um dieselben Dinge handelt. Und ich schiebe es sogar direkt hier neben der Linie nach unten. Sie können dies als Erinnerung daran behalten, warum wir Minus gleich setzen, plus Gleiche und all diese Dinge. Es ist viel einfacher zu lesen und es ist viel cooler und wird Sie viel professioneller aussehen lassen , wenn wir jemandem Ihr Spiel zeigen. Also lasst uns eins fortsetzen, was brauchen wir hier drin? Während wir die Maustaste gedrückt halten, wird der Schusszähler heruntergezählt. Was wir also wollen, ist, wann immer dieser Schusszähler endet oder 0 wird, wir eine Kugel abfeuern und dann den Schusszähler wieder auf die Zeit zwischen den Schüssen aktualisieren möchten . Wie werden wir das machen? Anstatt sofort zu instanziieren, ich eine Herausforderung an. War das ein besserer Übergang als beim letzten Mal? Wie auch immer, Ihre Herausforderung besteht darin, zu überprüfen, ob der Zähler hat, und so eine If-Bedingung zu erstellen, die den Schusszähler überprüft. Wenn der Schusszähler kleiner oder gleich 0 ist, warum ist er kleiner oder gleich 0? Du fragst dich vielleicht warum nicht sofort 0? Nun, weil wir zählen. 20. Bullets gegeneinander: Willkommen zurück, Meine Lieblingsspielentwickler in diesem Video, wenn wir die Zeit zwischen den Schüssen auf 0,1 einstellen und wir anfangen, unsere Vögel zu schießen. Sie werden feststellen, dass sie, obwohl sie übereinander stehen, nicht selbst zerstören, aber sie werden immer noch zerstört, wenn sie irgendeine Mauer treffen. Nicht nur das, wenn ich viele Kugeln abgefeuert habe und den Spieler durch sie hindurchführe, wirst du feststellen, dass auch der Spieler oder die Kugeln und der Spieler nicht miteinander interagieren und sie nicht zerstört werden, wenn sie auf die Ebene treffen, was ein guter Mechaniker ist. Wir wollen nicht, dass der Spieler die Kugel benutzt, um sich selbst umbringen zu können. Dies ist ein Spielmechaniker. also keine Zeit mehr verschwenden, und lassen Sie uns damit Lassen Sie uns also keine Zeit mehr verschwenden, und lassen Sie uns damit beginnen, Layer und Physik 2D-Matrix k zu lernen. Wenn wir jetzt unser Spiel ausführen, werden Sie sehen, dass wir unsere Bücher feuern können. Aber das Problem ist, wenn wir versuchen, es mehrmals zu drücken oder wenn wir die Zeit zwischen den Schüssen einstellen, zum Beispiel 0.1, werden Sie feststellen, dass keine Kugeln davonfliegen sehen. Warum? Weil wir auf der linken Seite bemerken, dass die Kugeln sich selbst abfeuern und zerstören , weil sie miteinander interagieren. Und das wollen wir nicht. Wir wollen dieses Problem beheben. Wie werden wir das machen? Bevor wir fortfahren, ist es vielleicht etwas, das Sie in Ihrem Spiel behalten möchten. Aber ehrlich gesagt ist es für mich irgendwie nervig, dass deine Kugeln zerstört werden. Also nochmal, wie werden wir das beheben? Nun, wenn wir genau hier rechts und den Inspektor eines Spielobjekts schauen, können wir sehen, dass wir etwas haben, das als Layer bezeichnet wird. Und ich habe dir das vorher gezeigt, als wir über das Sortieren von Layern gesprochen haben, aber wir haben uns nicht tief damit befasst. Wenn ich also zurück zu Ebenen gehe, kannst du sehen, dass ich Tags habe, über die wir in Zukunft sprechen werden. Wir haben die Sortierebenen, die bestimmen, welcher Sprite oder welcher Layer vor welcher anderen Ebene gerendert wird. Und wir haben auch die Schichten. Und Sie können sehen, dass wir bereits die standardmäßigen transparenten Auswirkungen haben , ignorieren Sie erneut gegossenes Wasser. Ihr seid all diese verschiedenen Ebenen, die bereits in Unity vorhanden sind. Was wir also tun werden, ist, dass wir die Kugeln auf eine bestimmte Ebene setzen werden. Sie fragen vielleicht, aber warum sollten wir diese Aufzählungszeichen auf eine bestimmte Ebene setzen? Nun, lass mich dir zeigen, indem ich zuerst die Spielerkugel-Layer erstelle. Jetzt wollen wir in die Projekte eingehen. Geh in unsere Wo sind die Prefabs, die Genussvoll es? Und lasst uns einfach die Spielerkugel auf die Spielerkugel-Layer setzen. Okay, das war also das Prefab. Alle nachfolgenden Erstellungs- oder Klone dieses Prefab befinden sich also auch auf der Spieleraufzählungsebene. Aber wie hilft uns das? Nun, wenn wir in unsere Bearbeitung gehen, in unsere Projekteinstellungen und wenn wir in die Physik 2D gehen und nach unten scrollen, können wir genau hier diese Layer-Kollisionsmatrix sehen. Und wenn du, tut mir leid, wenn du deinen Kopf neigst, kannst du sehen, lass mich das maximieren. Sie können sehen, dass wir die standardmäßigen transparenten Re-Cast-Player-Kugeln, Wasser-Benutzeroberfläche und auf dieser Seite auch haben. Wie funktioniert diese Matrix? Nehmen wir an, wir haben die Standardebene, die zuvor der Bullets-Layer war. Und wir können sehen, dass es auch hier mit der Standardebene auf dieser Seite interagiert. Was wir also tun können, ist, dass wir das tatsächlich ausschalten können. Jetzt interagiert der Standardlayer nicht mit den anderen Standard-Layern. Aber offensichtlich wollen wir nicht, dass dies geschieht, denn wenn Sie ein Spielobjekt erstellen, werden Sie es als Standard haben. Und vielleicht möchten wir, dass einige der Standardspielobjekte mit anderen Standardspielobjekten interagieren. Und deshalb haben wir die Spielerkugel erstellt. Was wir tun können, ist, dass wir sagen können, dass die Spielerkugel, die genau hier ist, nicht mit der Spielerkugel interagiert. Also schalten wir das aus. Und jetzt sollten sich die Spielerkugeln nicht gegenseitig zerstören , weil sie nicht miteinander interagieren können. Testen wir das mal. Ich geh zurück. Ich führe das Spiel aus. Und ich gehe zum DOM-Spieler und okay, also wird die Zeit zwischen den Schüssen 0,1 sein. Und lasst uns versuchen, die Maustaste gedrückt zu halten. Wenn ich jetzt die Maustaste gedrückt halte, los geht's. Sie können sehen, dass die Kugeln, obwohl sie übereinander stehen, sich nicht selbst zerstören, aber sie werden immer noch zerstört, wenn sie gegen eine Wand stoßen. Das sieht man also deutlich, wenn wir auf die Wand schießen, aber sie sind übereinander und sie zerstören sich nicht selbst. Wie cool ist das? Wir haben jetzt dieses leistungsstarke Tool in unserem Arsenal, wo wir verschiedene Objekte auf verschiedene Ebenen einstellen und sicherstellen können verschiedene Objekte auf verschiedene Ebenen , dass sie nicht miteinander interagieren. Eine andere Sache, die wir vielleicht ändern möchten, sind die Spielerkugeln, die den Spieler treffen. Schon wieder. Ich sage dir, wenn du diese Mechanik in deinem Spiel behalten willst, es gerne tun. Wenn nicht, ändern wir die Art und Weise, wie Kugeln mit dem Spieler interagieren. Derzeit ist der Player Capsule Collider sehr klein. Was wir tun können, ist, dass wir einen weiteren Capsule Collider hinzufügen können. Wir werden es später tun müssen, denn was passiert, wenn einer der Feinde eine Kugel auf unseren Kopf schießt und wir dort keinen Collider haben , der nicht registriert, dass wir erschossen wurden. Das werden wir reparieren. Aber im Moment halten wir die Dinge einfach und versuchen, den Spieler auf seine Beine zu treffen. Also führe ich das Spiel aus. Ich schieße eine Kugel ab. Und wenn ich dort aufhöre, siehst du, dass es den Spieler trifft und ihn töten kann. Schon wieder. Du willst diese Mechaniker behalten. Du willst, dass die Spielerkugeln dem Spieler helfen. Das ist okay. Aber Sie werden sich dieser Herausforderung stellen müssen. Sie müssen sicherstellen, dass der Spieler und die Kugeln nicht interagieren. Erstellen Sie also eine Ebene, eine Ebene. Weisen Sie den Spieler dieser Ebene zu und stellen Sie sicher, dass der Spieler und die Spielerkugeln nicht über die Physikmatrix interagieren. Pausieren Sie das Video jetzt erstellen Sie die Playerebene. Stellen Sie sicher, dass die Kugeln unseren Spieler nicht töten. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Bevor ich fortfahre, möchte ich einfach etwas tun. Ich habe dir gesagt, dass ich es nicht tun will, aber lass es uns vorerst machen. Ich füge dem Spieler einen Box Collider hinzu. Hier interagiert der Spieler nicht. Dies wird nur ein Box-Collider sein, um festzustellen, dass der Spieler getroffen wird. Also werde ich es um die Größe des Players schaffen und es zu einem Auslöser machen , weil ich nicht möchte, dass dieser Box Collider physisch mit der Welt interagiert. Ich möchte diesen Box Collider als registriert behalten, wenn jemand eine tiefe Schicht oder eine Art Ebene hat. Also werde ich das speichern. Ich führe das Spiel aus. Offensichtlich müssen wir das Prefab außer Kraft setzen. Ich werde das schießen und wenn ich auf die Kugel zugehe, siehst du, dass sie den Spieler trifft. Gehen wir also weiter in die Ebenen erscheinen. Öffnen Sie auf Ebenen die Ebenen. Ich füge die Spielerebene hinzu. Und jetzt gehe ich in den Doom Player. Ich gehe in die Ebenen und setze diese Ebene auf die Spielerebene. Und Sie können sehen, dass Sie die Option erhalten, wenn Sie die Ebene eines übergeordneten Elements ändern. Möchten Sie den Spieler, den Spieler für den Spieler auch für alle untergeordneten Objekte einstellen . Würdest du das machen wollen oder nicht? Ich denke, es würde nicht schaden, wenn wir die Kinder auch setzen würden. Also werde ich das einstellen, ich werde das speichern. Ich gehe in die Projekteinstellungen und die Physik ein und stelle sicher, dass die Spielerkugeln und der Spieler nicht interagieren. So kannst du sehen, wo es eine Kreuzung zwischen den Spielerkugeln gibt. Der Spieler. Ich sorge dafür, dass es hier kein Zeichen gibt. Da sind wir los. Wenn wir jetzt das Spiel ausführen, sollten die Kugeln durch den Spieler reisen. Und ja, los geht's. So können wir die Kugeln so oft schießen, wie wir wollen, und sie treffen den Spieler nicht. Sie schweben weiter, bis sie eine Art Feind treffen. Ich hoffe, es gefällt Ihnen, ich hoffe, Ihnen gefällt dieses neue Tool, das Sie haben. Wir können auch alle unsere Änderungen auf das Prefab anwenden, das wir vom Dome-Spieler haben. Und im nächsten Video wirst du feststellen, dass wir diese Kugeln haben, okay, sie feuern. Es ist, alles ist schön, aber wenn sie gegen eine Wand stoßen, passiert nichts. Die Kugel verschwindet einfach und das ist nicht sehr aufregend. Wir wollen eine Art von Wirkung haben, irgendeine Art von Effekten, oder wir können das Gewicht dieser Kugeln spüren, die auf eine Wand treffen. Und genau das werden wir im nächsten Video tun, indem wir die Spezialeffekte der Kugel beim Aufprall hinzufügen. Vergessen Sie also nicht, Ihre Änderungen zu übernehmen. Und wir sehen uns im nächsten Video. 21. Bullet Impact-Effekt: Willkommen zurück, meine Spieleentwickler. Also haben wir unser Spiel gerade viel cooler gemacht. Wenn wir jetzt vergeben sollten, verschwinden unsere Kugeln nicht nur. Wir haben unsere Kugel in einen Hauch von Rauch. Wenn wir also herumschießen, sieht man, dass wir diesen kleinen coolen Effekt haben, der zerstört wird. Beachten Sie genau hier, dass es nach einer gewissen Zeit zerstört wird , was wir berücksichtigen müssen. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, also Zeit, unseren Kugelschlägen etwas Gewicht hinzuzufügen. Und das tun wir, indem wir einen Wirkungseffekt hinzufügen. Also gehe ich in die Assets und gehe in den Sprites-Ordner, und ich werde hier einen neuen Ordner erstellen, die Tatsache der Aufzählungszeichen sein wird. Und hier drin werden wir auf die Ressourcen eingehen. Und ich habe dir ein paar Fakten zur Verfügung gestellt, die ich gefunden habe. Sie können verwenden, was Sie wollen. Oder Sie finden einige auch auf der Website, Open Game art.com oder einer anderen Website. Sie können also genau hier sehen, dass wir drei Effekte haben. Dieser mit ein bisschen Rauch, dieser mit etwas weniger Rauch, aber es ist ein bisschen komisch. Und das hier, jetzt werde ich das OH benutzen, also siehst du, dass es die Auswirkungen auf Metall hat. Metall Schlagmetall keine Sorgen. Wir haben einfach mit dem zu tun, was wir haben. Wir benutzen das Schlagmetall. Ich benutze den ersten. Klar. Warum nicht? Wie werden wir das machen? Wir werden das Sprite aufschneiden. Wir werden eine Animation erstellen und dann spielen wir sie ab, wenn wir das Objekt treffen. Ich schneide das auf, wenn du willst. Wir können das gleichzeitig zusammen machen und sehen, wer es schneller oder besser macht. Als erstes wählen wir die erste aus. Erster Einfluss, mach es mehrfach. Wenden Sie Änderungen an. Lasst uns darauf hinweisen. Vielleicht müssen wir es nicht klarstellen. Lass uns weitermachen und Sprite Editor. Okay, das Rauchpartikel oder nicht sichtbar, aber wir werden es nach Rastergröße aufschneiden. Mal sehen, wie groß dieses Raster ist. Also haben wir 1, 2, 3. Okay, also hole ich meinen praktischen Taschenrechner. Und die Art, wie ich das aufschneiden werde, ist, weil wir diesen 960 haben. Sie sehen es genau hier unten rechts, 960 in der Horizontalen und 576 in der Vertikalen. Also 576 geteilt durch, weil es drei Zeilen gibt, glaube ich, dass es 192 ist. Auf der Y-Achse ist es also 192. Und hier haben wir 12345, also 960 geteilt durch 5 auch 192. Großartig, hätte das kommen sehen sollen. Also haben wir Quadrate aufgeschnitten. Sehr nett. Wenden Sie die Änderungen an. Da sind wir los. Jetzt haben wir all diese. Ich werde hier ein neues Spielobjekt erstellen, und das wird der Aufzählungseffekt sein. Also Aufprall der Kugel auf die Wand. Und da sind wir los. Hier ist es. Ich füge weiter und füge einen Sprite-Renderer hinzu. Also Sprite Renderer, und ich werde ihm diesen Effekt genau hier geben. Wo ist es? Lassen Sie uns diesen Einfluss der Tatsache gleich hier hinzufügen. Können wir es sehen? Ist es sichtbar? Es ist dahinter. Sollten wir eine Sortierschicht erstellen? Klar. Warum nicht? Lassen Sie uns weitermachen und erstellen oder wir können eine Sortierschicht für tiefe Ebenen erstellen. Die Kugeln. Klar, lasst uns das behalten, weil es offensichtlich Teil der Kugeln ist, also ist es logisch, es auf den Bullets-Layer zu schaffen, der es hier einsetzt. Ist das groß genug? Vielleicht wollen wir es größer machen. Lasst uns weitermachen und sie denken lassen, dass 50 viel ist. Lass uns 75 machen und sehen, wie groß das ist. Okay, vielleicht können wir hinzufügen, 50 machen, das anwenden und vielleicht den Punkt entfernen, ihn bilinear machen, damit es etwas glatter ist. Ja, das gefällt mir mehr. Also los gehst du. Dies wird unsere Wirkung sein. Ich füge hier eine Animator-Komponente hinzu. Und lasst uns dieses wählen. Eigentlich Animationen. Klar, lass uns weitermachen und erschaffen. Dies wird in den Asset-Animationen enthalten sein. Und das wird Bullet Impact Wall genannt. Und ich nenne es die Kugel wirkungsvoll. Nun, denn später werden wir verschiedene Arten von Auswirkungen haben. Also hier drin werden wir die Kugel haben. Kugel trifft auf Wand. Spar dir das auf. Da sind wir los. Sie können also sofort sehen, weil wir bereits die Animatorkomponente hatten, wird der Controller hierher gesendet, der die Animation ein wenig nach oben verschoben hat , damit wir all dies abrufen, sie hier setzen und nun die Animation zurücklegen können . Jetzt lasst uns das spielen. Okay, sehr nett. Ich denke, es ist ein bisschen schnell. Oder vielleicht ist das perfekt. Mal sehen. Ich mache es nur ein bisschen breiter. Okay, großartig. Ich glaube, das reicht. Aber ich denke immer noch, dass 50 ein bisschen zu viel sind. Vielleicht lasst uns 18 nein machen, außer das. Und Animationen. Lass uns das spielen. Okay, ich denke, das ist gut genug. Also werde ich das speichern. Ich gehe in die Vermögenswerte ein, gehe zu den Prefabs, und ich werde dies zu einem Präfix machen oder der Aufzählungseffekt ist jetzt ein Prefab. Es ist auf dem Besuch, die Sprites sind auf der Bullet-Ebene und wir haben alles eingerichtet. Ich hoffe, du hast dein Bestes gegeben und das geschaffen oder wenn du es nicht getan hast, hoffe ich, dass du mitgekommen bist und ich war nicht zu schnell für dich. Was werden wir jetzt tun? Jetzt müssen wir diesen Effekt jedes Mal instanziieren, wenn eine Kugel auf eine Wand trifft. Die Art und Weise, wie wir das tun, besteht darin, Ihnen eine Herausforderung zu stellen. Ihre Herausforderung besteht also darin, den Effekt zu instanziieren. Finden Sie also bei Bedarf Ihren eigenen Impact-Effekt. So können Sie das offene Spiel, unsere Website oder über HIO durchlaufen oder einfach bei Google suchen. Wenn Sie ein guter Künstler sind, können Sie vielleicht Ihren eigenen erstellen und einen Verweis auf die Auswirkungen auf das Bullet-Controller-Skript erhalten . Und stellen Sie sicher, dass Sie den Effekt instanziieren, bevor die Kugel einen Schlaganfall bekommt. Also pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Zurück in unserer Spielerkugel hier drin werde ich einen Verweis auf das serialisierte Feld auf die Kugel erstellen. Oder es wird ein Spielobjekt sein, der Aufzählungswirkungseffekt. Spar dir das auf. Und was wir tun werden, ist, bevor wir zerstören oder zerstört werden oder bevor die Kugel zerstört wird, werden wir den Aufzählungseffekt instanziieren. Und wo wird es sein, wo sollte es sein? Es wird sich um die Transformationsposition, die Kugelspitze und die Transformationsdrehung dieser Kugel befinden. Also werde ich das alles retten. Ich gehe zurück in Unity. Ich wähle die Spielerkugel aus. Jetzt haben wir einen Einfluss auf die Tatsache. Wir können es gleich hier hinzufügen. Das können wir retten. Wir werden den Feind nur auf 1 Sekunde überprüfen. Was passiert hier drin? Warum sind wir so zuversichtlich und schaffen das? Und warum gibt es ein kleines Problem. Was jedoch passiert, ist, sobald wir instanziiert haben, sehen Sie, dass die Standardebene genau hier die Kugel ist, die auf die Wand trifft. Also sofort nach dem Eintritt fingen wir an, die Kugel zu treffen, tatsächlich. Mal sehen, wie das funktioniert. Lass mich das einfach von hier entfernen. Ja, ich glaube, ich kann es entfernen. Und noch eine Sache, die ich tun wollte, aufgefallen, dass diese Z auf 0 war, dass ich mir aufgefallen, dass diese Z auf 0 war, dass ich einfach all diese zurücksetze, speichere das, führe das Spiel aus. Also jetzt sollte ich eine Wand schießen und beim Aufprall sieht man, dass es eine Explosion gibt, aber aus irgendeinem Grund kann man sehen, dass es immer noch läuft. Wenn ich also viele Kugeln habe, wirst du feststellen, dass wir viele Fakten haben und keiner von ihnen verschwindet. Sie können es genau hier auf den Kugeln sehen, die auf die Wand einwirken. Was wir also tun werden, und das liegt an der Art der Animation, die wir gerade erstellt haben. Wenn ich in die Animationen gehe, wenn ich in die Kugel gehe, siehst du genau hier, dass wir den Controller haben und die Animation haben. Und ich habe dir vor ein paar Videos schon vor ein paar Videos erzählt , als wir die Player-Animationen gemacht haben, dass es genau hier diese Loop-Zeit gibt. Also werde ich es einfach entfernen, speichere das, führe das Spiel aus. Sollte die Kugel. Los geht's, es explodiert an der Wand. Da gehst du. Sie können jetzt sehen, dass der Aufprall nur einmal gespielt wird, aber es gibt ein kleines Problem, und das ist, dass die Aufschläge der Kugeln auf die Wand alle noch vorhanden sind und nicht zerstört werden. Wie werden wir das beheben? Und es gibt eine sehr einfache Möglichkeit, dies zu tun. Und während ich Ihnen beibringe, wie das geht, zeige ich Ihnen ein äußerst effektives Werkzeug innerhalb der Animation. Was wir also tun werden, ist, dass wir in die Vermögenswerte eingehen. Wir gehen zu Prefabs. Wir fügen den Aufzählungsschlag wieder hinzu. Und hier. Und was wir tun werden, ist, dass wir Assets und Skripte zurückgehen und hier ein neues C-Sharp-Skript erstellen, das der Auswirkung, Effekt, Zerstörer sein wird . Und es wird ein extrem, extrem einfaches Skript sein. Lasst uns Enter drücken. Und später werde ich daran erinnert, jedes Skript und einen Ordner zu platzieren , denn während wir gehen, werden wir viel mehr Skripte haben. Ich füge den Auswirkungseffekt-Zerstörer hinzu. Ich öffne das. Ich werde den Start und das Update entfernen und ich mache nur eine Methode. Und das wird eine öffentliche Leere sein. Zerstöre. Und was wir tun werden, nein, nicht aufZerstöre, zerstöre einfach. Und was wir hier machen werden, ist, dass wir das Spielobjekt einfach zerstören werden. Großartig, wie nennen wir das? Nun könnten wir diese Methode von hier aus aufrufen, aber das ist nicht sehr effektiv. Warum? Denn wenn wir das Bulletin hier instanziieren, okay, lasst uns einfach die Logik durchgehen. Wir instanziieren die Kugel beim Aufprall und zerstören dann das Spielobjekt, das die Kugel ist, weil der Spieler Bullet-Controller auf der Kugel ist. Also die Aufprallplatten. Nachdem wir dieses Spielobjekt zerstört haben, haben wir den Spieler Bullet Controller nicht mehr. Es ist nicht verfügbar und wir können dies demonstrieren. Also werde ich diese Impact-Tatsache erzeugen. Also habe ich einfach die hier erstellte Kugel gesetzt. Und nachdem wir das Spielobjekt zerstört haben, werde ich versuchen den Impact Effect Dot Get Component zu erhalten, und ich werde auf den Impact Destroyer zugreifen. Und von hier aus greife ich auf die Zerstörung zu. Das ist also die Methode. Und wenn ich jetzt mein Spiel spiele, wirst du feststellen, dass wir einen Fehler haben werden. Also verschiebe ich das und stelle sicher, dass du die Änderungen übernimmst. Also haben alle Aufschläge auf die Wand diese Methode und schauen Sie, was passiert, wenn wir in der Konsole schießen. Da sind wir los. Was passiert? Wir sehen die Auswirkungen nicht einmal. Warum ist das so? Weil wir zerstört wurden. Und wenn wir das versuchen, bevor wir das Spielobjekt zerstören, schauen wir uns das an. Führe das Spiel aus. Da sind wir los. Es gibt also keine Wirkung. Es wird zerstört, bevor wir es überhaupt sehen. Also werde ich das kommentieren und wir können das so behalten, wie es ist. Das ist kein Problem. Aber ich glaube, ich werde das entfernen. Und das wird zum Testen sein, vielleicht werden Sie sich später daran erinnern, wie wir es versucht haben, aber nicht geklappt haben. Jetzt haben wir hier die Zerstörungsmethode, die das Spielobjekt zerstört. Und wie werden wir das nennen, nachdem wir unsere Animation beendet haben, das ist der knifflige Teil. Wenn ich jetzt zur Animation gehe, während ich den Bullet-Impact-Effekt habe, kann ich es spielen und ich sehe, dass Sie am Ende bemerken werden, dass wir nichts mehr zu tun haben, wenn der ganze Rauch verschwunden ist . Was wir tun können, ist hier drin, dass wir diesen kleinen Schlüssel haben und hier und ich habe, okay, also füge ein Event hinzu. Wir können irgendwann in der Animation eine Veranstaltung hinzufügen, und dies wird später entscheidend sein, wenn wir den Kurs durchlaufen. Ich hatte nicht erwartet, das Solo früh zu machen, aber darüber mache ich mir keine Sorgen. Wir können eine Veranstaltung hinzufügen. Und wenn wir ein Ereignis hinzufügen, sehen wir genau hier, dass wir Animationen, Ereignisse und Funktionen haben , aus denen wir wählen können. Und wenn wir hier anklicken, sehen wir, dass wir den Strohhalm haben. Warum müssen wir nur zerstören? Das ist der Zerstörer , der genau hier ist. Was passiert also, wenn wir auch ein Ereignis hinzufügen, die Animation, die wir für ein bestimmtes Objekt haben, können wir auf alle Methoden zugreifen, die der öffentlichen Methoden vorhanden sind. Und mach dir keine Sorgen, wenn du ein bisschen überrascht bist, wie wir das später im Kurs erstellt haben , werde ich jeden einzelnen Schritt der Erstellung von Methoden durchlaufen. Aber im Moment wissen Sie einfach, dass wir auf alle öffentlichen Methoden zugreifen können, die uns für das Objekt zur Verfügung stehen. Was wird jetzt passieren? Während wir unsere Animationen spielen, werden wir die Explosion sehen, den Rauchzug. Und wenn wir zum letzten Frame kommen, wird dieses Ereignis ausgelöst, welches der Zerstörer ist. Und was macht das Zerstören? Es geht hier rein und zerstört das Spielobjekt, das den Aufpralleffekt-Zerstörer hält, der Aufprall der Kugeln auf die Wand ist. Stellen Sie also sicher, dass Sie alle Änderungen und die Überschreibung anwenden. Ich führe die Kugel Impact an. Ich führe das Spiel aus. Und wenn ich eine Wand schieße, sollten wir den Effekt sehen, aber das tun wir nicht. Warum ist das so? Lasst uns wieder hier rein gehen. Haben wir diese Änderungen gespeichert? Versuchen wir es noch einmal. Ich denke, das liegt daran, dass wir das Skript nicht gespeichert haben. Wir führen das Spiel aus. Wir sehen den Hauch von Rauch. Und da gehst du. Sie können sehen, dass es aus der Hierarchie verschwunden ist. Testen wir das jetzt ein bisschen besser. Da können Sie den Auswirkungen sehen, wie sich der Effekt um uns herum auswirkt. Und dann verschwindet der ganze Effekt. Und es ist viel effektiver. Es ist besser, als viele Spielobjekte in unserer Hierarchie zu haben, Platz zu beanspruchen, entscheidenden Arbeitsspeicher zu belegen und das System zu verstopfen. Ich hoffe, es hat dir gefallen, ich hoffe, du gibst bei jeder Herausforderung dein Bestes. Ich hoffe, Ihnen gefällt die neuen Dinge, die wir jedes Mal hinzufügen. Ich werde all das inszenieren. Ich werde sagen, dass das Bullet Impact Tatsache hinzugefügt und zerstört, danach zerstört wurde. Die Verwendung von Ereignissen mit einem Ausrufezeichen, da Ereignisse ein unglaubliches Werkzeug sind, das Sie nicht oft sehen werden, dass die Leute verwenden. Ich hoffe, es gefällt Ihnen und wir sehen uns im nächsten Video, in dem wir unseren Kugeln die Trail-Effekte hinzufügen die Orgel viel cooler machen. 22. Spuren zu Bullen hinzufügen: Willkommen zurück, meine Spieleentwickler. In diesem Video haben wir einen Trail-Renderer zu unserer Kugel hinzugefügt. Ich werde es etwas übertrieben machen, damit Sie deutlich sehen können , was passiert, wenn wir unser Spiel ausführen. Wenn wir unsere Kugel abschießen. Da gehst du. Man sieht, dass es eine Art hinter sich hat. Ich werde es ein bisschen größer machen. Du siehst also deutlich, was los ist. Ich schieße eine Kugel ab. Nun, da gehst du. Sie können unseren cool aussehenden Trail sehen, die Trails hinter der Kugel. Eigentlich ist es nicht perfekt. nett ist es nicht. Aber ich habe dir den Teil der Kreativität überlassen, denn obwohl ich mich selbst kenne, bin ich nicht so kreativ damit, lass uns keine Zeit mehr verschwenden. Wir beheben ein kleines Problem, das wir hatten, aber wir haben es nicht gesehen, bevor Sie es vielleicht bemerkt haben und dachten Moon, Michael hätte etwas vergessen. Was ist E eine solche Belastung strukturiert dich. Nein, nein, ich mache Witze. Das verschwendet keine Zeit mehr und lasst uns anfangen. Okay, also wollen wir eine kleine Spur hinter unserer Kugel hinzufügen, während sie durch den Weltraum fliegt. Wie werden wir das machen? Es ist eigentlich sehr einfach. Wir gehen einfach in die Spielerkugel ein. Und hier können wir eine Komponente hinzufügen, die der Trail-Renderer ist. Wenn wir also darauf klicken, können Sie sehen, dass wir einen Trail hinzufügen können. Wie testen wir diesen Trail? Wenn wir auf das Prefab doppelklicken, öffnen Sie es hier und sehen Sie, was wir tun können. Zuallererst kenne ich nicht alle Elemente hier drin. Du kannst alles herumspielen. Sie können das eines der Dinge sehen, die wir als Sortierschicht haben. Also können wir wählen, ob es sich um eine Kugel handelt, ob es sich um einen Spieler handelt, mit dem was immer Sie wollen, ich werde beides wählen. Wie sehen wir den Trail? Wir nehmen einfach unsere Kugel und fangen an, sie zu bewegen. Im Moment ist dies die Spur, die wir haben. Jep. Ich weiß, dass es nicht so gut ist. Wogegen werden wir tun? Das erste, was ich machen möchte, ist, dass ich das Material ändern möchte. Wenn Sie also in Einheit dieses rosa Ding hinter sich haben, bedeutet das, dass etwas mit dem Material nicht stimmt. Also scrolle ich nach unten und finde heraus, wo wir Material haben, wenn ich es vollständig entferne, du wirst sehen, dass wir keine Spur mehr haben. Sie können hier mehrere Arten von Material hinzufügen. Übrigens gibt es eine Menge und es gibt Dinge, die Sie in Unity importieren können, wie zum Beispiel Rock, wie zum Beispiel, ich weiß nicht, Blitze oder irgendetwas, was Sie wollen. So können wir zum Beispiel diesem dunklen Material eine Art dunkles Material hinzufügen. Ich weiß nicht was das ist. Es ist eines der Standardmaterialien, die wir haben. Ich werde nur verwenden, dass wir zum Beispiel das Standardpartikelsystem verwenden können . Es sieht also so aus, als gäbe es eine Rauchspur dahinter, was nicht schlecht ist. Ich behalte es vielleicht. Und übrigens habe ich einfach Spaß. Ich weiß nicht, was wir tun werden. Und mal sehen, was können wir tun? Und du kannst sehen, dass dieser Weg irgendwie komisch ist. Wie auch immer. Das nächste, was ich tun möchte, ist, dass ich die Breite dieses Trails ändern möchte, damit Sie sehen können , dass ich ihn vergrößern oder verringern kann, wenn wir uns durch den Weltraum bewegen. Und wir können hier auch einen weiteren Punkt hinzufügen. So kannst du zum Beispiel anfangen, dass es dick ist und dann diese kleine Spur am Ende hat, so dass er kleiner wird, wenn wir vorwärts gehen. Und mal sehen, was wir sonst noch in diesem Teilchen haben? Wir können diese Art von Partikeln hinzufügen, diese Art von Materialien tatsächlich. Okay, nett, nicht schlecht. Du kannst das hinzufügen, ein normales Sprite. Und was das bewirkt, ist, dass wir die Farbe tatsächlich ändern können. Und hier können Sie sogar gemischte oder feste Farben haben. Also 11, einfarbig oder eine Mischung von Farben. So kannst du zum Beispiel hier wählen, die erste Farbe sollte sein, lass es uns fast rot machen. Und die Endfarbe sollte vielleicht weiß sein. Okay, jetzt wirst du feststellen, dass wir beim Umzug am Anfang gelesen haben und dann genau hier am Ende haben wir eine weiße Farbe. Sie können die Breite ändern. So können Sie zum Beispiel genau hier sehen, dass es ein bisschen groß für die Kugel ist und so wird sich das Boot bewegen, weil es sich nur in die richtige Richtung bewegt. Machen wir es also etwas kleiner, dünner. Da sind wir los. Jetzt haben wir diese kleine Spur, während wir uns durch den Weltraum bewegen. Mal sehen, wie das aussehen wird. Okay? Und ein anderes Problem ist die Zeit. Wenn wir also darüber schweben, wie lang wird der Schwanz B? Es sind also fünf Sekunden. Ich glaube nicht, dass fünf etwas sind, das wir wollen. Ich denke, dass wir genug tun werden, vielleicht noch weniger. Also los gehst du. Das ist der Trail. Ich denke sogar 0,5 werden ausreichen. Also los gehst du. Bring mir die Kugel. Entfernen. Dies wird unsere Spur hinter der Kugel sein. Eigentlich weiß und nicht so gut wie eine Farbe. Ich wähle einfach eine Art Orange, Gelb, so etwas aus. Mal sehen. Da sind wir los. Also denke ich, dass es gut genug aussieht. Vielleicht möchte ich es etwas dünner machen. Nur ein bisschen dünner. Und probieren wir ein anderes Material aus, nur zum Spaß. Sieh dir an, wie das aussieht. Nett. Nicht schlecht, glaube ich. Nein, nein, eigentlich nein, es gefällt mir nicht. Vielleicht sollte ich es etwas dicker machen. Wir können die Dicke am Ende erhöhen. Deshalb ist das der Anfang, wie Sie sehen können, und dann ist er sehr klein. Sie können herumspielen, getestet, wie viel Sie hinzufügen möchten, Dicke, die Sie sogar ändern können, Sie können sehen, dass es niedrig beginnt. Sie können hier einen weiteren Wendepunkt hinzufügen. So zum Beispiel so. Denken Sie daran, als wir die Animationen gemacht haben. Also los gehst du. Diese Art von Fuchsschwanz dahinter. Schau, wie cool das ist. Sie können viele nette Effekte mit Trail erstellen , wenn Sie die Zeit haben, all dies zu testen, löschen Sie dies einfach. Und lass es uns wieder normal machen. Also los gehst du. Das ist unsere Spur. Eigentlich war der letzte viel bessere Ehrlichkeit, aber keine Sorgen darüber im Moment, Mal sehen wir was. Sie können auch die Schatten ändern. Sie können eine automatische Zerstörung haben. Es gibt eine Menge, viele Dinge, mit denen man herumspielen kann. Sie können in Unity's Dokumentation gehen und sich alles ansehen, um zu sehen, welche anderen Optionen Sie haben. Zum Beispiel die Sonden, Kamerabewegung, so etwas. Ich bin mir nicht sicher. Klar. Also werde ich das speichern. Ich gehe zurück in unser Spiel und mal sehen, ob wir einen guten Trail haben. Wenn ich also die Kugel schieße, sieht man, dass ich eine kleine Spur dahinter habe. gut ist es nicht. Es ist nicht so, wie ich es gerne hätte. Aber man sieht, dass es nur eine kleine Spur dahinter ist. Warte also, bis die Kugeln zerstört wurden. Versuch es noch einmal. Und wenn Sie bemerkt haben, dass es keine einzige Kugel gibt, gibt es hier zwei Kugeln. Und warum ist das so? Was denkst du ist das Problem nicht da? Und der Grund, warum wir zwei Aufzählungszeichen haben, ist direkt hier in unser Skript zurückkehren Sie feststellen, dass wir eine Aufzählung instanziieren, wenn wir während eines Frames die Maustaste drücken oder es weiter drücken, wenn wir . Um dies zu beheben, geben wir dem Spieler die Möglichkeit, zu entscheiden, ob sich um eine automatische oder nicht um eine automatische Waffe handelt. Jetzt werde ich Sie daran erinnern, dass dies in ein anderes Skript verschoben wird , da wir dies im Player-Skript nicht behandeln wollen. Wir werden uns tiefer mit dem Warum befassen. Denn lassen Sie mich es Ihnen von jetzt an einfach sagen, denn eine automatische Waffe zu haben ist nicht der Spieler-Controller-Job. Es sollte sich um ein anderes Skript handeln. Aber jetzt beheben wir dieses Problem einfach. Ich erstelle ein serialisiertes Feld, das vom Typ Boolean sein wird. Und ich nenne es ist Waffen-Auto-Magie. Wenn die Waffe also automatisch läuft, werden wir die Bedingungen ändern. Wenn die Waffe also nicht automatisch ist und wir die meiste Taste nach unten drücken, werden wir sofort instanziieren. So wie wir das oder welches Skript hatten, bin ich mir nicht sicher, war es das Drehbuch? Welches Skript fügen wir ein oder hinzu? Oder wir haben nicht alle, okay, also haben wir das Ende. Was bedeutet dieses Symbol? Lass mich einfach fertig werden. Ist Waffe automatisch? Und genau wie bereits erwähnt, bedeutet dies, wenn wir ein Ausrufezeichen haben, wenn wir ein Ausrufezeichen haben, dass, wenn diese Waffe automatisch ist, diese ganze Bedingung falsch ist. Wenn also automatisch wahr ist, macht dieses Ausrufezeichen dahinter falsch. Aber das hat verstanden, dass dies n bedeutet, dass beide Bedingungen wahr sein müssen, um instanziieren zu können. Was haben wir also hier? Wenn die Waffe mit dem Ausrufezeichen nicht automatisch erfolgt die Waffe nicht automatisch erfolgt, wird diese ganze Bedingung erfüllt. Warum ist das so? Denn wenn die Waffe nicht automatisch ist, dies automatisch, ohne dass das Ausrufezeichen falsch ist. Mit dem Ausrufezeichen wird es wahr. Und wenn wir den Knopf drücken, instanziieren wir die Kugel sofort. Und wenn wir den Knopf gedrückt halten und die Waffe automatisch ist, dann haben wir unseren Schusszähler. Lass mich das nochmal machen. Und lass mich eigentlich weitermachen und hier im Debug-Punkt-Log drucken. Wenn das Ausrufezeichen automatisch ist. Damit du es selbst sehen kannst, heb dir das auf. Also nochmal, was passiert hier drin? Wir können jetzt gehen und entscheiden, ob eine Waffe automatisch ist oder nicht. Wie hilft uns das, wenn die Waffe automatisch läuft? Und diese beiden Symbole genau hier, und wir halten die Maustaste gedrückt. Wir werden den Schusszähler haben und je nach Zeit zwischen den Schüssen ständig schießen. Wenn die Waffe oder die Waffe jedoch nicht automatisch ist, bedeutet das, dass die Waffenautomatik falsch ist. Was bedeutet, wenn wir ein Ausrufezeichen dahinter hinzufügen, wird es wahr. Diese gesamte Bedingung hier ist also wahr und wir drücken die Maustaste, sobald wir sofort und ohne Verzögerung zwischen ihnen instanziieren. Und wir müssen dies auch anzeigen, um sicherzustellen, dass Sie verstehen, wie das Ausrufezeichen funktioniert. Sie können genau hier das Ausrufezeichen automatisch sehen. Zurück in unserem Spiel. Wir führen unser Spiel aus. Du wirst die Konsole bemerken, da geht's. Dies ist ein kleiner Fehler. Mach dir darüber keine Sorgen. Ich werde das klären und du kannst sehen, dass es falsch ist. Falsch, falsches Wild ist automatisch, stimmt. Wenn ich es ausschalte, sieht man, dass es wahr wird. Sie können sehen, dass die Nachrichten, die direkt hier gesendet werden, aufeinander reduziert sind. Wenn ich also keine Waffe als falsch habe, kann man sehen, ich nur einmal schieße, wenn ich die Maustaste gedrückt halte dass ich nur einmal schieße, wenn ich die Maustaste gedrückt halte. Wenn ich es automatisch habe, halte ich die Maustaste gedrückt. Ich hab viele Schüsse. Und das Tolle daran ist, nur zu warten, bis die Kugeln alle zerstört werden. Wenn ich jetzt einmal den Knopf drücke , dann haben wir nur eine Kugel. Also haben wir das Problem behoben, eine magische Kugel zu haben, um zu speichern, dass wir den Trail anpassen können, wenn Sie möchten . Ich habe es einfach ein bisschen schnell gemacht. Haben Sie Zeit, viel Spaß, genießen Sie es, einen seltsamen Trail mit vielen Farben zu kreieren und so weiter. Und ich glaube, dies ist das letzte Video in diesem Abschnitt, und im nächsten Abschnitt werden wir die Feinde einrichten, die wir töten möchten. Denn was ist der Sinn, Kugeln zu haben, wenn wir niemanden haben, mit dem wir sie töten können. Stellen Sie also sicher, dass Sie Ihre Änderungen immer übernehmen. Und wir sehen uns im nächsten Video. 23. Teil 4: Feinde - Feinde - Ein Feinde einrichten: 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. 24. Die Seite auf den Spieler bewegen: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und wie Sie sehen können, haben wir jetzt einen gelben Kreis. Was macht dieser gelbe Kreis, wenn wir unser Spiel ausführen? Man sieht, dass wenn ich in den gelben Kreis gehe, nichts passiert und den Feind nur ein bisschen weniger beschleunigen lässt. Wenn ich wie gewohnt in den roten Kreis gehe, fängt er an, uns zu jagen. Ich habe versucht zu entkommen. Ich bin im gelben Kreis, aber er jagt uns immer noch. Was passiert? Der einzige Weg, um zu gewinnen, besteht darin, den gelben Kreis zu verlassen. So entkommen Sie dem Feind auch, weil er jetzt angefangen hat, dass er Sie nicht mehr verfolgen will. Verschwenden wir also keine Zeit mehr. Lasst uns anfangen. Und ich habe vergessen, Ihnen mitzuteilen, dass Sie Ihre Änderungen am Ende übernehmen müssen. Vergiss das nicht zu tun. Also lasst uns mit k anfangen. Jetzt wissen wir, wo der Spieler auf einer bestimmten Distanz basiert, die er von ihm hat. Wenn der Spieler eine bestimmte Distanz erreicht, eine bestimmte Verfolgungsreichweite, wird der Feind es wissen und er wird anfangen, den Spieler zu jagen. Nun, er macht das nicht physisch, aber wir können anhand der Logik und dem Code, den er kennt, erkennen, wie werden wir das machen? Als erstes werden wir bestimmen, in welche Richtung sich dieser Feind bewegen wird. Wenn also die Entfernung kleiner ist als der Verfolgungsbereich des Spielers, stoppe ich das Debuggen und speichere die Richtung, in die man sich bewegen soll, es wird gleich dem Verfolgungsbereich des Spielers oder der Nichtausrichtung Eclair sein, um die Ebene zu jagen um zu jagen Punktposition abzüglich der Transformationsposition. Das ist also genau wie die Formel, die wir verwenden. Die 2 die Waffe und die richtige Richtung, wir wählen die Position, wir entfernen die Position des Spielers, den er jagen soll. Wir subtrahieren die Position des Feindes vom Spieler, um die Position zu verfolgen, und auf diese Weise bekommen wir die Richtung. Es ähnelt also der Art, wie wir auf unser Gange hinweisen, du kannst zurückgehen und sehen, wie das funktioniert. Was wir jetzt tun werden, nachdem wir die Richtung kennen, in die wir uns bewegen, werden wir diese Richtung normalisieren. Weil wir nicht wollen, dass der Feind schneller ist, wenn er sich diagonal bewegt. Also normalisieren wir uns. Und dann werden wir auf den starren Körper zugreifen. Der feindliche starre Körper erhält also die Geschwindigkeit und er wird gleich der Richtung sein, um das n-fache des Feindes zu bewegen. Sprechen Sie. Spar dir das auf. Und jetzt gehen wir zurück zu unserem Spiel. Mal sehen, wie das funktioniert. Ich stelle die Spielansicht neben der Szenenansicht ein, damit wir sehen können, wie der Bereich funktioniert. Wenn wir in Reichweite kommen, führe ich das Spiel aus. Jetzt, wenn ich mich dem Feind nähere, ja, los geht's, passiert nichts. Warum ist das so? Nun, weil wir den kleinen Fehler hier haben und dass das Objekt ist, haben wir keinen Verweis auf die Breite. Warum ist das so? Weil wir versuchen, auf den feindlichen starren Körper zuzugreifen, aber wir haben ihn nicht festgelegt. Also der NMI-starre Körper, der Punkt ist gleich der Schuldenkomponente, starrer Körper 2D. Da sind wir los. Okay, jetzt sollte alles gut funktionieren. Stoppen wir das Spiel, führe es nochmal aus. Und jetzt sind wir nah dran. Und da gehst du. Sie können sehen, dass der Feind uns tatsächlich verfolgt. Und offensichtlich müssen wir ein paar Dinge reparieren, aber es funktioniert. Was passiert, wenn wir außerhalb der Reichweite sind? Ich versuche aus der Reichweite zu kommen. Okay. Es funktioniert also nicht. Lassen Sie mich zuerst erst, zumindest funktioniert es. Es ist nicht perfekt, aber es funktioniert. Also lass mich das einstellen. Lassen Sie mich die Reichweite etwas kleiner machen, weil ich etwas demonstrieren möchte. Und lasst uns auch die Geschwindigkeit erreichen, damit wir fliehen können. Ich führe das Spiel aus. Ich komme dem Feind nahe und dann höre ich auf, ich bin Start- und Landebahn. Wie Sie sehen können, läuft der Feind immer noch und schließlich trifft er gegen eine Wand. Also was ist das Problem hier drin? Das Problem ist, dass der Feind immer noch den Schwung bei sich haben wird. Also komme ich nah dran, ich gehe weg. Und selbst wenn ich es nicht bin und die Reichweite immer noch gedankenlos läuft, wäre das jetzt nicht sehr schlimm, wenn er ein Zombie wäre, aber anscheinend ist er ein Skelett, also sollte er aufhören. Okay, ich sollte aufhören, obwohl Witze. Und mal sehen, was wir tun können. Was wir also tun sollten, ist, wenn wir in Reichweite sind, jagen wir den Feind. Wenn wir außerhalb des Bereichs liegen, entspricht die Richtung, in die Sie sich bewegen möchten, Vektor 3, 0. Da sind wir los. Das war die Richtung zu bewegen und Vektor drei, okay, ja, das war es. Also spar dir das auf. Jetzt, wenn wir aus der Reichweite kommen, sollten wir aufhören, den Spieler zu jagen. Also lass mich wissen was. Verwenden wir eine andere Ansicht, ein anderes Layout. Wir können das Zwei-mal-Drei-mal benutzen. Da gehst du. Dies ist eine gute Möglichkeit, auch die Unity-Engine zu sehen. Sie können also sehen, dass Sie dies von drei Aspekten auf 19 bis 1920 bis 1080 ändern. Jetzt können wir die Szenenansicht klar und die Spielansicht klar sehen. Wir führen das Spiel durch und wir kommen nah an die Verfolgungsjagd. Da sind wir los. Du kannst sehen, dass er uns immer wieder verfolgt, wenn ich außerhalb dieses Bereichs bin. Man sieht, dass er sofort aufhört. Da gehst du. Du siehst, sobald ich drin bin, hört er auf. Wenn ich draußen bin, hört er auf zu jagen. Okay, großartig. Also was hat das gemacht? Ich hoffe es gefällt dir. Jetzt können wir die Verfolgungsreichweite etwas größer machen weil wir wissen, ob wir weit genug vom Feind entfernt sind. Da gehst du. Du kannst sehen, dass er aufhört, Mädchen zu jagen. Jetzt können Sie dem Feind eine zusätzliche Intelligenzschicht hinzufügen, wenn Sie möchten, Sie können einen Stoppbereich erstellen. Nehmen wir zum Beispiel an, wir haben diesen Bereich, wir haben eine andere Reichweite. Und wenn der Spieler, wenn wir diese Reichweite verlassen können, der zweite, dann hört der Feind auf, uns zu jagen. Und das wird eine Herausforderung für dich sein. Wie gefällt Ihnen die Übergänge zur Herausforderung jetzt, es gibt Besseres, oder? Ich hab dich dort unvorbereitet, oder? Also hoffe ich, erstellen Sie eine Variable für die Verfolgungsjagd. Sie müssen diesen Bereich mit den Gizmos zeichnen. Sie müssen einen booleschen Wert erstellen, der jagt. Das stimmt beim Jagen und falsch, wenn wir außerhalb des bestimmten Bereichs sind. Und schließlich müssen Sie eine andere if-Anweisung erstellen, die prüft, ob wir jagen, und wir befinden uns im Bereich „Verfolgungsjagd“. Ich hoffe, du hast die Herausforderung verstanden. Es ist ein bisschen schwer. Es wird ein bisschen konfiguriert werden müssen, aber ich bin mir sicher, dass Sie der Herausforderung gewachsen sind. Also pausiere das Video sofort und gehe zum Fall Shalon. Das erste, was wir tun werden, ist, dass wir hier eine neue Variable erstellen werden, die immer weiter jagen wird. Und wir nennen es den Spieler, der Chase Range hält. Und dann erstellen wir einen Booleschen Wert. Und hier, was wir anrufen werden, mache ich es privat oder weiß was, lass es uns öffentlich machen, damit wir es sehen können und dann machen wir es privat. Und der öffentliche boolean jagt. Also der nächste Schritt, was war der nächste Schritt und die Herausforderung, die wir sehen, zeichnen , okay, also werden wir den Kreis genau hier zeichnen. Ich nehme das einfach und dupliziere es. Also kontrolliere D wie immer, lass es uns gelb machen. Und das wird der Keep Chases-Bereich sein. Spar dir das auf. Und was müssen wir als Nächstes tun? Wir müssen einen Booleschen Wert als Tracing damit erstellen. Und okay, also wann stimmt es? Es stimmt hier, wenn wir uns innerhalb des Bereichs befinden und wir anfangen, den Spieler zu verfolgen. So ist das Jagen gleich wahr. Was passiert dann, wenn wir diesen Bereich verlassen? Das Jagen wird falsch. Aber zwischendurch wollen wir ein wenn sonst oder sonst, wenn. Andernfalls, wenn der Vektor oder die Entfernung des Spielers und des Feindes immer noch kleiner als v0 ist, halten Sie Chase-Reichweite. Und so ist das für, jagt. Was wir tun werden, ist, dass wir die Richtung so behalten werden, wie sie ist. Da gehst du. Lasst uns das aufheben. Schauen wir uns noch einmal und diesen Code an und sehen, ob alles funktioniert. Also haben wir das Sortiment erstellt, wir haben es gelb gemacht. Was hier passiert, ist, wenn der Spieler den Bereich der Verfolgung betritt, wird die Richtung der Spieler, den er jagen muss. Und dann werden wir die Jagd auf wahr setzen. Dann prüfen wir, ob der Spieler nach draußen gehen kann oder ob sich der Spieler noch im Bereich „Chase“ befindet. Und wir jagen, dann werden wir die Richtung haben, uns zu bewegen und immer noch im Spieler. Sonst. Wenn wir draußen sind, jagen beide Spieler die Reichweite und sie behalten Chase-Reichweite, dann ist das Jagen falsch. Und das Tolle daran ist, wenn wir innerhalb des Spielers gehen, Chase Reichweite halten, wird der Feind uns nicht folgen, weil er als falsch jagt. Mal sehen, ob das tatsächlich funktioniert. Und ich werde die Keep Chase Reichweite erhöhen. Lass es uns schaffen. Ja, da sind wir los. Ich denke, das ist gut genug. Ich führe das Spiel aus. Und jetzt mal sehen, ob ich in den Keep Chase Bereich gehe. Nichts passiert. Wenn ich in den Verfolgungsbereich gehe, fängt der Feind an zu jagen. Wenn ich es bin, kann ich ihn tatsächlich drängen. Wenn ich außerhalb des Verfolgungsbereichs bin, folgt er mir immer noch. Was ist, wenn ich aus beiden Bereichen gehe? Er hört auf zu folgen. Und Sie können genau hier sehen, dass das Jagen falsch ist. Also jagt er mich nicht. Wann ist Jagen wahr? Er jagt weiter, bis ich den gelben Kreis verlassen habe. Ich hoffe also, dass Sie die Herausforderung meistern. Ich hoffe, es war nicht allzu schwer. Ich weiß, als ich diese Herausforderung gemacht habe, hatte ich das Gefühl, dass es ein bisschen zu schwer, ein bisschen zu verwirrend sein könnte . Aber ich hoffe, Sie haben verstanden, was der Sinn des Booleschen war. Ich hoffe, Sie haben verstanden, wie die sonst if-Aussagen hier funktionierten. Wenn du das Video nicht noch einmal gesehen hast, denke ich, dass ich es gut genug erklärt habe, also hoffe ich, dass es dir gefällt und ich sehe dich im nächsten Video, in dem wir unseren Feind tatsächlich animieren werden. Denn wie Sie sehen können, ist er derzeit sehr langweilig. Bis dahin habt ihr einen schönen Tag und wir sehen uns dann. 25. Feinde animieren: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video, in dem wir unserem Feind Animationen hinzufügen werden. Sieh mal, er ist im Leerlauf. Ich bin im Leerlauf. Wenn ich nah genug komme und merke, dass er nach mir schaut. Wenn ich nah genug bin, dann gehst du hin. Du kannst sehen, dass er anfängt zu laufen versucht mich umzubringen. Ich kann ihn immer noch zurückdrängen. Ich renne weg. Er steht da. Ich renne weg. Er hört auf. Er fängt an, die Augen zu öffnen. Ich komme nah dran. Er fing an zu unterrichten. Ich kann ihn erschießen. Er fühlt nichts. Okay, also lasst uns aufhören, Zeit zu verschwenden und lasst uns anfangen, unsere Feinde zu animieren. 0 Fall. Lasst uns also unseren Feind animieren. Wenn wir also in die Sprites und zu den Feinden gehen, haben das Monster, Monster und du das Skelett und du hast all diese verschiedenen Sprites. Was ich also tun werde, ist, dass ich all das seziere. Und ich zeige dir nur, wie ich diese Animation anders machen werde. Und dann wirst du den ganzen Rest machen , weil du bereits weißt, wie man Animationen erstellt. Nun, der einzige Unterschied dieses Mal, da ich weitermachen werde und die Animationen sofort am Körper machen werde. Und ich greife dann vom feindlichen Skript aus auf den Animator zu. Wir werden auf den Animator am Körper zugreifen. Warum? Ehrlich gesagt ist es immer besser, die Animationen zu verwenden und sie so zu erstellen, wie wir es mit dem Doom Player gemacht haben. Aber zum einen denke ich, dass eine Änderung der Art und Weise, wie wir Dinge schaffen, Ihnen eine bessere Perspektive und ein umfassenderes Verständnis dafür geben wird , wie die Dinge funktionieren. Außerdem haben wir die Möglichkeit, eine neue Methode zu verwenden, nämlich die Komponente und das Kind zu bekommen, die ich Ihnen gerne alle Methoden zeigen möchte, die möglich sind und einfach so. Lassen Sie uns also eine Komponente hinzufügen und dann können Sie wählen, welcher für Sie der bessere Weg ist. Während das Animationsfenster, okay, gehen wir zu Windows. Wenn wir also das Layout ändern, ist die Animation vielleicht verschwunden. Ich stelle die Animation genau hier ein. Ich werde weitermachen und eine Animation über den Körper des Feindes erstellen. Erstellen Sie also und die Feinde Assets Animationen, klicken Sie mit der rechten Maustaste, erstellen Sie das Skelett und die Animationen. Dies wird das Skelett sein. Skelett im Leerlauf. Spar dir das auf. Ich entscheide mich für den Leerlauf. Wo ist es? Ich wähle all diese aus und ziehe sie hier rein. Wenn wir jetzt rennen, sieht man, dass er sehr schnell im Leerlauf ist. Er freut sich sehr darauf, im Leerlauf zu sein. verschiebe ich. Mal sehen, wie das aussieht. Und aus irgendeinem Grund. Also denke ich, dass die erste, zweite 1 gleich sind. Und warum ist das so? Das ist es. Also lasst uns rennen. Nein, warte. Oh, okay, also die erste, zweite 1 aus irgendeinem Grund, dass ich den Schwan nicht wähle. Keine Sorge. Lass uns weitermachen und das machen. Okay, großartig. Sie können also sehen, dass der letzte bereits dem ersten ähnelt. Oder nein. Lassen Sie uns das kopieren. Setze es als das letzte ein. Sieh dir an, wie das aussieht. Ja, da sind wir los. Das sieht viel besser aus. Sollten wir es schneller machen? Ich weiß es nicht. Aber wir werden das retten. Und dieser ist der Eintrag. Also wollte ich dir nur zeigen, wie wir das machen. Wir werden weitermachen und ich habe Skelett falsch geschrieben, keine Sorgen darüber. Und wir werden diesen Weg am Körper fortsetzen. Und dann werde ich die Magie der Bearbeitung nutzen, um all dies in ein paar Sekunden zu erledigen. Aber du nimmst dir Zeit, erstelle das Animationsstück der Sprites. Und ich wollte dir eine Herausforderung zeigen, die darin besteht, einen der Feinde zu wählen. Es muss nicht das Skelett sein. Erstellen Sie also den ICD-10-Gehangriff. Du hast den Angriff, eine Seele zu werfen, und du hast die Schwert werfende Animation. Also glaube ich, dass es eine Schwert wirfende Animation gibt. Also pausiere das Video sofort. Schleudert die Sprites auf, erstelle die Animationen. Wir sehen uns in ein bisschen. Hey, wie bist du damit zurecht gekommen? Also habe ich Sprites aufgeschnitten. Ich habe Animationen erstellt. Lass mich dir zeigen, was ich getan habe. Wenn ich auf den Feind klicke, auf den Körper, du, siehst du, dass ich die Sorte im Leerlauf habe, angreife, gehe und wirfe. Also werfe ich das Schwert einfach so. Ich greife diesen Kerl an. Laufen und Gehen ziemlich einfach. So habe ich alles gemacht. Ich hoffe, es war nicht allzu schwer für dich. Ich hoffe, Sie haben dafür gesorgt, dass alle 150 mal 150 waren. Sie können also sehen, dass alle Slices genau gleich sein müssen , genau wie ich es Ihnen gesagt habe, als wir zum Doom Play geschnitten haben. Okay, und lass mich dir den Animator zeigen, damit du sehen kannst, dass ich all diese vier habe , jetzt werden wir nichts tun. Wir werden nicht das Salz geworfen oder das Skelett-Angriff wird das behalten. Später werden wir laufen. Also werde ich einen Übergang vom Skelett schaffen, das zum Skelett im Leerlauf geht. Ich werde beide auswählen, indem ich die Kontrolle halte und beides auswähle. Entfernen Sie bei der Austrittszeit auf beiden, entfernen Sie die Übergangsdauer bei beiden. Ich werde hier einen Parameter erstellen, der als Walking bezeichnet wird. Es ist also das Gleiche. Oh, nein, warte, ich habe den falschen Parameter erstellt. Ich habe eine Ebene erstellt. Ich werde einen booleschen Parameter erstellen, der hier läuft. Da gehst du und ich bleibe. Okay, also bin ich in diesem Übergang, ich füge die Parameter hier hinzu. Wenn ich also gehe, stimmt, fangen wir an zu laufen und zu gehen, falsch, ich höre auf zu laufen. Sag das alles. Gehen wir nun zurück zu unserer Szene und öffnen wir unsere Drehbücher hier. Was sollen wir also tun? Das erste, was wir brauchen, ist ein Verweis auf den Animator. Also im feindlichen Controller hier werde ich einen privaten erstellen und es wird der Feind sein. Und er machte dazu, ups, es ist vom Typ Animator. Und er könnte, um das zu retten. Ich hole die Komponente. Aber wie Sie gesehen haben, der Animator nicht wirklich auf den Feind, daher kann ich nicht darauf zugreifen. Wenn ich, wie gesagt, Komponente abrufen, sollten sich die Komponenten auf demselben Objekt wie das Skript befinden. Um das zu beheben, muss ich auf den Animator am Körper zugreifen. Um das zu tun. Ich werde einfach sagen, dass der Animator, ich meine der feindliche Animator, gleich ist, um eine Komponente bei Kindern zu bekommen. Und du kannst jetzt sehen, lass mich das einfach beenden. Lasst uns den Mauszeiger darüber bewegen. Okay, also gibt es keine Erklärung, aber ich denke, es ist ziemlich selbsterklärend, eine Komponente wie diese zu bekommen , aber bei Kindern, also finden wir den Animator bei den Kindern, und weil wir nur einen Animator haben, ist das kein Problem. Aber wir benutzen das vorsichtig. Als Nächstes werden wir also prüfen, wann wir eine Geschwindigkeit hinzufügen. Also hier drin werden wir prüfen, ob die Richtung zu bewegen ist und anders ist als Vektor zu 0 oder Vektor 3, entschuldigen Sie mich, denn ich erinnere mich, dass es ein Faktor drei war. Oh, da gehst du. Wie hat das automatisch vervollständigt? Ich weiß es nicht mal. Ich greife auf den gegnerischen Animator-Punktsatz Bool zu. Das ist also extrem einfach. Ich glaube, wir haben das alle fertig gemacht. So bekommt man einfach einen kleinen Gipfel hinter den Kulissen. Kopieren Sie dies, fügen Sie es hier und wir setzen es auf „true“. Dann sonst Aussage. Wir werden diese Zeile hier drin duplizieren und auf false setzen und das zusätzliche Leerzeichen entfernen. Was passiert hier drin? Sobald wir eine Richtung haben, in die wir uns bewegen können, ist es anders als Vektor 3 0. Die Animation läuft ist auf true eingestellt und wir wechseln zur Animation. Wenn wir nicht laufen, ist es falsch. Okay, großartig. Testen wir das noch einmal in unserem Spiel. Stellen wir den Animator ein. Wo sollen wir sie alle hinstellen? Lasst ihn uns hier drin behalten. Spiel, führe das Spiel aus. Mal sehen. Okay, also ist der Feind im Leerlauf. Wenn ich ihm nahe komme, fängt er an zu laufen. Und da gehst du. Sie können sehen, dass er läuft, aber es gibt ein kleines Problem. Ich fühle mich, als gäbe es etwas. Okay. Also schwebt er ein bisschen. Warum schwebt er immer noch, waren wir nicht okay. Offensichtlich haben wir die Übergangszeit nicht von dieser entfernt. Führen Sie das Spiel erneut aus, er sollte sofort anfangen zu laufen, sobald er sich bewegt. Da gehst du. Er geht auf uns zu. Exzellent. Nun, noch eine Sache, die wir brauchen, um den Pfeil zu nehmen , und das ist die Richtung, in die der Feind schaut. Also werde ich etwas Ähnliches machen, genau wie hier. Wenn sich die Mausposition nicht so verhält, wie wir unseren Spieler umgedreht haben, werden wir unseren Feind umdrehen. Aber anstatt auf den Bildschirmpunkt zu schauen, vergleichen wir die Richtung oder das X des Spielers mit den Handlungen des Feindes. Wenn also die Ebene Punkt jagen soll, der Spieler, der Punktposition jagt, ist Punkt x kleiner als die Position transform.py x. Was wir tun werden, ist, dass wir auf die lokale Transformation zugreifen. Und es wird gleich einem neuen Vektor 3 und minus1 f sein. Was ist das? Minus1 f. Und wir behalten das Y gleich. Und das Z, Z, Z, Z, Z, wie auch immer du es nennen willst, dasselbe. Und wenn der Spieler auf der anderen Seite ist, ist die lokale Transformation gleich einem neuen Vektor, drei Punkt eins. Wenn ich mich nicht irre, Nr. 1, eins, was ist das Problem? Vektor 3. Okay. Also sollte ich nicht sagen, lass es mich sehen. Okay, also kein neues, entschuldigen Sie mich. Wenn wir also keinen neuen Vektor 1 erstellen, haben wir nur einen Vektorgrafik , bei dem wir den lokalen Maßstab festlegen , um diesen wieder in unserem Spiel zu speichern. Lass uns das in Aktion sehen. Führe das Spiel aus. Und da gehst du. Man sieht, dass er in die richtige Richtung schaut. Sobald wir uns nähern, geht er auf uns zu. Okay, Großartig. Ich habe versucht wegzulaufen. Er schaut uns an und er jagt weiter. Jetzt ist das einzige Problem, das mir aufgefallen ist, dass der Feind die Wände trifft oder genau wie wir das Problem zuvor hatten. Denk daran, wann wir die Feinde haben wollten. So können Sie sehen, dass er wegen des Colliders auf den Feind nicht an dieser Wand vorbeigehen kann, Sie können sehen, dass dies seine Grenzen sind. Wenn Sie Ihr Spiel detaillierter gestalten möchten, empfehle ich Ihnen, zwei Collider hinzuzufügen, genau wie wir es beim Doom Player getan haben. Einer von ihnen wird nur sein, um gehört zu werden. Der zweite wird genau dort sein, wo wir laufen. Wo ist unsere Einschränkung? Fühlen Sie sich frei, das zu tun. Ich ermutige dich, das zu tun. Das ist dein Spiel. Du kannst es so perfekt machen wie du willst. das erledigt ist, werden wir offensichtlich alles hier reinstellen. Sie können sehen, wie viele Animationen ich erstellt habe. Ich hoffe es gefällt dir. Ich werde das alles inszenieren und wir sehen uns im nächsten Video, in dem wir unseren Feind tatsächlich schädigen werden. Wir können ihn derzeit erschießen, aber er fühlt nichts. Das werden wir in Zukunft reparieren. Und ich empfehle Ihnen, auch die Animation für das Ticket und die Animation für Gehörlose zu erstellen , was sehr viel Spaß macht, das nächste Video zu machen. Also sehe ich dich dann. 26. Beschädigung von Feinde (Methoden): Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und in diesem Video, wenn wir unser Spiel ausführen, wenn wir auf den Feind klicken, werden Sie feststellen, dass er hier eine zusätzliche Variable hat, nämlich die feindliche Gesundheit und Phi schießt ihn mit ein paar Kugeln. Beachten Sie, wie sich sein Gesundheitszustand von 100 auf 40 verschlechtert. Und wenn ich ihn immer wieder von 40 auf 0 erschieße und er verschwindet, weil er tot ist. Also werden wir in diesem Video eine Menge Dinge lernen. Zieh deine Denkkappen an und lass uns anfangen. Oh, okay, jetzt ist es an der Zeit, unsere Feinde mit der Methode zu beschädigen. Das erste, was wir tun werden, ist, dass wir eine Möglichkeit schaffen zu erhöhen oder die Gesundheit von unserem Feind zu entfernen. Also gehe ich in den feindlichen Controller. Und hier, Lasst uns Visual Studio öffnen. Und ich werde eine ganzzahlige Variable erstellen, die die Gesundheit des Feindes darstellt. Warum ist es eine Ganzzahl? Nun, weil wir die Dinge einfach halten wollen. Wir wollen nicht, dass es ein Schwimmer wird. Also füge ich es hier unter der Geschwindigkeit hinzu. Also erstellen wir ein serialisiertes Feld, das vom Typ Integer sein wird. Und es wird „Gesundheit“ genannt. Und ich werde es am Anfang auf 100 einstellen, also haben wir nie die Gesundheit bei 0. Ich schaue zurück in den Inspektor und sehe, wie das aussieht. Und sie jetzt, okay, großartig. Jetzt können Sie sehen, dass ich hier die Möglichkeit habe, die Gesundheit unseres Feindes zu verändern. Nun, wie werden wir sicherstellen, dass wir jedes Mal, wenn der Feind getroffen wird, ein Gesundheitsgesetz entfernen. Dafür werden wir eine Methode erstellen. Was sind Methoden? Nun, du hast schon gesehen, wie ich Methoden erstelle. Das Update ist eine Methode. Wir beginnen als Methode und auch das Gizmo wählen als Methode aus. Aber lassen Sie uns etwas tiefer in die tatsächliche Struktur einer Methode eintauchen und sehen, wie wir sie verwenden. Lassen Sie mich also meinen Laser aufsetzen, und das ist die Methodenstruktur. Es ähnelt also der Art und Weise, wie wir Variablen erstellen, da es eine Zugänglichkeit hat. Also ein Zugriffstyp, was ist das? Ist es ein Privat, ein Publikum? Wir können es nicht zu einem serialisierten Feld machen, aber wir können entweder ein öffentliches Feld erstellen, was bedeutet, dass wir von überall in unseren Skripten und in anderen Skripten auf diese Methode zugreifen können . Wenn es privat ist, können wir nur innerhalb der Klasse zugreifen, in der wir verwenden. Dann haben wir den Rückgabetyp. Zum Beispiel gibt void zurück, nichts. Was ist ein Rückgabetyp? Während wir den Kurs durchlaufen, werden Sie alle verschiedenen Rückgabetypen verstehen. Dies bedeutet jedoch, dass wir tatsächlich einen Wert von dieser Methode zurückgeben können. Wenn es nichts zurückgibt, bedeutet das, dass es ungültig ist. Lassen Sie mich Ihnen zum Beispiel hier drin zeigen. Dies ist eine Lücke, da wir keinen Wert zurückgeben. Wir erwarten nicht, dass später ein Wert von dieser Methode zurückgegeben wird , wenn wir eine Methode haben, die etwas zurückgibt Vielleicht werde ich darauf hinweisen, dass Sie darauf hinweisen. Als Nächstes haben wir den Methodennamen. Wenn Sie also eine Methode benennen möchten, müssen Sie sie normalerweise nach dem benennen, was diese Methode tatsächlich tut. Und Sie können feststellen, wie wir den Namen einer Methode erstellen. Im Gegensatz zu den Variablen muss das erste Wort immer in der unteren Klasse sein, oder der erste Buchstabe des ersten Wortes muss niedriger sein. In einem Methodennamen müssen alle Wörter innerhalb des Methodennamens groß geschrieben werden. Sie können also sehen, dass die Geschwindigkeit hinzugefügt wird, also ist diese Methode eine private Methode, daher verwenden wir sie nur in einer Klassenlücke. Es gibt nichts zurück und sein Name fügt Geschwindigkeit hinzu. Das bedeutet, dass es einigen Arten von Objekten Geschwindigkeit verleiht. Und was sind die Klammern am Ende? Während diese als Parameter bezeichnet werden, bedeutet der Parameter, dass wir einen bestimmten Wert an diese Methode senden können. Und es kann es verwenden, um Berechnungen oder alles, was es will, durchzuführen. Wir werden zeigen, wie das alles in der Methode funktioniert, die unseren Feinden schaden wird. Also genug reden, lass uns anfangen. Ich werde Visual Studio öffnen und hier, und ich werde eine Methode innerhalb des feindlichen Controllers erstellen. Ich scrolle auf der Erde nach unten, das Update. Und hier drin werde ich eine Methode schaffen, um den Feind zu beschädigen. Erstes, was muss ich sein? Muss es ein Privat sein? Also kann ich es nur hier und den feindlichen Controller benutzen, oder muss es öffentlich sein? Das bedeutet, dass ich von überall darauf zugreifen kann. Nun, höchstwahrscheinlich werde ich es brauchen, um öffentlich zu sein, weil ich möchte, dass die Kugeln den Feind beschädigen, wenn sie den Feind treffen. Was wird eine öffentliche Leere sein, und ich nenne es den Schadensfeind. Und es ist eine Leere, weil wir nichts vom Schadensfeind zurückgeben müssen. Alles, was wir tun müssen, ist ein bisschen Gesundheit zu entfernen, die wir bereits haben. Und hier, also die feindliche Gesundheit. Und lass uns das ändern oder nein, ich zeige dir einen sehr coolen Trick und bleib einfach ein bisschen. Wie auch immer, lassen Sie uns mit unserem Hauptaugenmerk fortfahren. Ich möchte ihnen auch einen Parameter vom Typ integer senden , der der Schaden sein wird. Das können sie. Was ich jetzt tun kann, ist, dass ich auf die Gesundheit zugreifen kann und davon entfernen kann. Entschuldigung, der entstandene Schaden. Also was passiert jetzt? Du weißt bereits, was das Minuszeichen bedeutet. Das bedeutet, dass wir den erlittenen Schaden von der Gesundheit entfernen. Und schließlich müssen wir sicherstellen, dass die Gesundheit kleiner oder gleich 0 ist. Das bedeutet, dass Sie hier einfach ein bisschen Leerzeichen hinzufügen. Das bedeutet, dass unser Feind gestorben ist und ich das Spielobjekt zerstören möchte. Okay, schauen wir uns das ein anderes Mal an. Und bevor wir das tun, denke ich, dass der Name Health einer Variablen nicht so spezifisch ist. Ich denke, wir müssen es in Gesundheit von Feinden ändern. Was kann ich hier machen? Ich kann den Namen hier in feindliche Gesundheit ändern. Okay, und dann scrolle hier runter und ändere diese beiden genau hier. Aber das ist ein bisschen umständlich, besonders wenn wir in unserem Code vielleicht 10 Mal Gesundheit verwendet haben. Wie können wir das vermeiden? Doppelklicken Sie einfach auf Gesundheit, klicken Sie auf Control R, R und jetzt werden Sie sehen, dass Sie dies hinzufügen können. Also nenne ich das die feindliche Gesundheit. Ich drücke Enter. Und wenn ich nach unten scrolle, wirst du sehen, dass sich die feindliche Gesundheit verändert hat. also zur Erinnerung, zur Steuerung oder zum zweimaligen Klicken Steuerung R gedrückt. Und Sie können den Variablennamen ändern und ihn überall und im Spiel ändern. Das nächste, was wir tun werden, ist, dass wir diese Methode tatsächlich aufrufen werden. Und woher nennen wir es? Wir müssen zum Bullet-Controller gehen. Und lass mich einfach den Bullet-Controller hier irgendwo finden. Wo ist es in den Drehbüchern? In den Kugeln, im Gesetz schrecklich bei Controller. Und hier drin, wenn wir etwas auslösen, damit wir ein Objekt treffen , was wir tun werden, lassen wir mich diese Zeile einfach von hier entfernen. Also instanziieren wir die Auswirkungen und wir werden auf die Kollision zugreifen. Was ist die Kollision genau hier? Wie Sie sehen können, ist dies ein Parameter, der an die Methode bei Trigger Enter gesendet wird. Was ist die Kollision? Es ist das Objekt, mit dem wir gerade kollidiert haben. Wenn wir zum Beispiel auf eine Wand stoßen, wäre die Kollision die Wand, die wir getroffen haben. Und in unserem Fall wird die Kollision der Feind sein, den wir getroffen haben. Und ich hole die Komponente, entschuldigen Sie mich. Also bekomme ich die Komponente, die sich bei dieser Kollision befindet , und es wird der feindliche Controller sein. Und im feindlichen Controller, weil ich diese Methode hier öffentlich gemacht habe, kann ich direkt hier darauf zugreifen, was der Schaden und das Amin kann ich direkt hier darauf zugreifen, ist. Und was soll ich diesem Schadensfeind schicken? Sie können jetzt sehen, keine Argumente gibt, also müssen wir den erlittenen Schaden anrichten. Das wirst du genau hier bemerken. Also schicke ich ihm den Schadensbetrag. Aber wir haben keinen Schadensbetrag verursacht. Also lasst uns weitermachen und es hier drin erstellen. Das Bullet wird also auch eine Variable haben, die eine ganze Zahl sein wird. Und das wird einfach das kopieren, was der Schadensbetrag sein wird, und ich setze es auf etwa 10 ein. Also was passiert hier drin? Jedes Mal, wenn die Kugel mit etwas kollidiert, erhalten wir die Informationen über diese Kollision. Wir bekommen die Kollision, wir bekommen die Komponente des gegnerischen Controllers und greifen dort auf die Schadensfeind-Methode zu. Wir haben ihm den Schadensbetrag geschickt. Wir gehen zum feindlichen Controller. Es ist öffentlich, alles, was wir die feindliche Gesundheit bekommen, wir entfernen die beschädigten Abgenommenen. Der erlittene Schaden ist offensichtlich der Schadensbetrag genau hier. Und dann prüfen wir, ob die Gesundheit kleiner oder gleich 0 ist. Wenn ja, zerstören wir das Spielobjekt, weil der Feind es getan hat. Also. Lasst uns das alles retten. Und lasst uns weitermachen und es in Unity testen. Also klicke ich auf den Feind und sorge dafür, dass wir die feindliche Gesundheit sehen. Ich führe den Code aus. Ich versuche unseren Feind zu erschießen. Also habe ich es gezeigt, bis die Kugeln Dritter werden. Lass uns die feindliche Gesundheit sehen. Es war erledigt. Da gehst du. Es wurde 90. Lassen Sie mich zweimal versuchen, ihn zu erschießen, jetzt sollte seine Gesundheit genau hier 70 werden. Behalte die 80, 70, los geht's. Der Feind wird beschädigt. Und wenn ich ihn weiter mit all meinen Kugeln erschieße, wirst du feststellen, dass 70 0 wird und der Feind verschwindet. Aber beachte, was gerade passiert. Zuallererst flogen unsere Kugeln überall weiter. Warum ist das passiert? Lass mich rauszoomen. Sie können sehen, dass die Kugeln nicht mit der Wand interagierten. Sie wurden nicht zerstört. Und wir haben genau hier einen Fehler. Und lass mich das Konsolenfenster öffnen, damit wir sehen können, was das Problem ist. Da gehst du. Sie können sehen, dass wir Fehler für die vier Kugeln hier haben , die mit der Wand interagiert haben. Und doppelklicken wir auf diesen Pfeil und sehen, was passiert ist. Oh, also kannst du sehen, dass es uns zu der Zeile bringt, dass wir einen Fehler haben und lass mich dir das noch einmal zeigen. Doppelklicken. Wir sind auf dieser Linie. Du siehst genau hier. Und weil diese Linie nicht richtig ausgeführt wurde, wurde die Zerstörung nicht richtig lösbar ausgeführt, sie ist weiter geflogen. Dies ist nur eine Randnotiz. Wie auch immer, was ist das Problem? Das Problem ist, dass wir auf die Kollision zugreifen, oder? Die Kollision sollte der Feind sein, da wir versuchen, auf den NMI-Controller zuzugreifen. Aber das Problem ist, dass wir gerade an eine Wand gestoßen sind und auf dieser Wand nicht das feindliche Skript drauf ist. Interessant. Wie werden wir das also retten? Nun, zum Glück haben wir ein sehr, sehr mächtiges Werkzeug. Lass mich das genau hier reden. Lassen Sie mich all diese bösen Fehler klären. Wir haben ein extrem leistungsfähiges Tool, über das wir noch nicht gesprochen haben. Wenn ich in die Editierebenen gehe, haben wir, wie wir gesehen haben, die Ebenen der Physik-Layer, wir haben die Sortierebenen. Wir haben dieses Tag auch genau hier. Und was wir tun können, wir können den Feind markieren, war ein feindliches Etikett. Und wann immer wir versuchen, nach dem gegnerischen Controller zu suchen, können wir vorher eine Bedingung schaffen, die überprüft, ob das Etikett der Kollision ein Feind ist, dann können wir weitermachen und ihn beschädigen. Wenn es kein Feind ist oder das Objekt, das wir passen, nicht als Feind gekennzeichnet ist, können wir nicht auf den feindlichen Controller zugreifen. Also lass mich wieder hier reingehen. Lass mich dir zeigen, wo wir Dolch erschaffen können. Wir können einfach auf diesen Plus-Button klicken, das Tag benennen, was immer wir wollen, speichern Sie das, gehen Sie zurück zum Feind. Und Sie können genau hier sehen, dass wir ihn mit einem Tag markieren können, das wir gerade erstellt haben. Lass mich zurückgehen. Lösche den Stapel genau hier. Jep. Okay. Auch weil der Feind markiert wurde, kann der nicht markiert werden. Ich weiß nicht, warum ich es getan habe. Also los gehst du. Wird beim nächsten Laden des Projekts aus dieser Liste entfernt. Okay, das war also ein großer Fehler, aber keine Sorge darüber, denn jetzt ist es Zeit für eine Herausforderung und deine Herausforderung besteht darin, unsere Feinde zu markieren. also zuerst ein feindliches Tag, Erstelle also zuerst ein feindliches Tag, genau wie ich es dir gezeigt habe. Stellen Sie sicher, dass Sie den Feind im feindlichen Tag markieren. Bevor Sie den gegnerischen Controller erhalten, prüfen Sie nach einer Bedingung, ob das Kollisionsobjekt, damit Sie bereits wissen, was das Kollisionsobjekt ist, das feindliche Tag auf sich hat. Und ich empfehle Ihnen, Google zu besuchen, Sie finden einen Weg, wie wir nach dem Tag suchen und das Tag vergleichen können. Wenn du alleine weitermachen willst, mach es weiter. Wenn nicht, gebe ich dir einen kleinen Hinweis. Sie können etwas namens the.com DAG verwenden, es in Unity Dogs anschauen, Ihre Informationen verwenden, Ihre eigenen Recherchen durchführen. Es gibt eine andere Möglichkeit, nach dem Tag zu suchen. Ich empfehle dir, es zu finden. Pausieren Sie das Video jetzt und gehen Sie einkaufen. Hey, willkommen zurück. Wie bist du damit zurecht gekommen? Dies ist also die Einheit der Dokumentationen, component.com, DAG-Deklaration. Es gibt einen Bool zurück, ob es wahr ist oder nicht oder kein öffentlicher Bool. Auch das Vergleichs-Tag ist ein Bool und wir werden es in unserer if-Anweisung verwenden, da eine Bedingung in der if-Anweisung, wie wir wissen, eine Bedingung in der if-Anweisung wahr oder falsch ist. So können wir auch sehen, wie es verwendet wird und es im Trigger Enter verwendet wird, wie praktisch für uns ist. Also benutzen wir das andere, sie nannten es anders, wir haben es als Kollision. Es ist das Gleiche, darüber machen Sie sich keine Sorgen. Mal sehen, wie wir hier drin damit umgehen können. Bevor wir also nach einer Kollision suchen, habe ich hier einen Tab hinzugefügt. Ich werde sehen, ob die Kollision, die wir gerade getroffen haben, ein Feind ist. Und bevor wir das tun, müssen wir diesen Typ schaffen, der der Feind ist. Drücken Sie Enter. Also stelle ich sicher, dass wir es richtig schreiben. Also Feind, und ich werde unseren Feind als Feind markieren. Also jetzt hier drin, wenn es ein Feind ist, dann werden wir die Kollision und weitere raffinierte Tricks machen Dieses Video ist voller raffinierter Tricks. Wenn Sie nur eine Zeile unter der if-Bedingung haben, müssen Sie diese Klammern nicht direkt hier hinzufügen. Wenn Sie also nur eine Zeile haben, müssen Sie die Klammern nicht hinzufügen, wenn ich eine weitere Zeile hinzufüge. Zum Beispiel ist der Zerstörer nicht Teil der if-Bedingung. Selbst wenn ich es nehme und es genau hierher lege, wird es immer noch nicht Teil der Bedingung sein. Und wenn Sie davon etwas verwirrt sind, machen Sie sich keine Sorgen. Sie können Ihre eigenen Klammern hinzufügen. Dies ist nur ein kleiner Test. Sie können hier sogar einen Kommentar hinzufügen, um zu sagen, dass dies passiert. Also werde ich das jetzt speichern. Und nur wenn die Kollision ein gegnerischer Tag darauf ist. Nun, wir rufen den feindlichen Controller an und geben ihn ihm. Testen wir das mal. Ich laufe das Spiel und fange an, die Wände zu schießen. Und da gehst du, du kannst sehen, dass wir keine Fehler haben. Wenn ich den Feind erschieße , sehe ich mir den Schaden an, den der Feind erlitten hat. Da gehst du. Man sieht, dass es bei 40 ist. Ich werde ihn noch dreimal erschießen, also wird er 30, 20, 10. Und schließlich werde ich ihn zum letzten Mal erschießen und er wird fehlerfrei zerstört. Ich hoffe, es gefällt Ihnen, ich hoffe, Sie begehen alle Änderungen, die wir vornehmen. Es ist sehr wichtig. Manchmal mache ich das außerhalb des Bereichs des Videos. Und damit hoffe ich, dass es Ihnen gefällt. Wenn Ihnen dieser Kurs gefällt, hinterlassen Sie mir bitte eine Bewertung. Es hilft mir sehr. Es lässt alle wissen, dass dies ein guter Kurs ist. Stellen Sie also sicher, dass Sie mir eine Bewertung hinterlassen. Vielen Dank fürs Zuschauen. Wir sehen uns im nächsten Video, in dem wir die Tiefe unserer Feinde ein bisschen brutaler machen werden . Also sehe ich dich dann. 27. Blood: Willkommen zurück, meine Spieleentwickler. In diesem Video haben wir, wie versprochen, der Art und Weise, wie unser Feind stirbt, ein bisschen Brutalität hinzugefügt. Wenn ich ihn jetzt mit DO-Kugeln erschieße, schau was passiert. 1, 2, und du kannst sehen, wie das Blut von ihm spritzt. Obwohl er ein Skelett ist, hat er technisch gesehen kein Blut. Aber lasst uns unsere Fantasie nutzen und etwas herausfinden. Wie auch immer, verschwenden wir keine Zeit mehr. Die Herausforderung in diesem Video wird eine Art sein, sagen wir mir gegen Sie, die die Herausforderung schneller bewältigen können. Also brauche ich deine volle Aufmerksamkeit und Konzentration. Verschwenden wir keine Zeit mehr. Lasst uns anfangen. Was ist eine neue Art von Herausforderung. Und wer kann schneller anfangen? Warum? Weil Sie über alle notwendigen Werkzeuge verfügen. Wir machen etwas, das wir schon oft gemacht haben. Mein Ziel ist es jetzt also zu sehen, wer es schneller machen kann. Kannst du es schneller machen als ich? Und wir werden eine kleine Tasse Petition haben, bevor wir anfangen , ein Splatter-Sprites zu erstellen. Die Animation erstellt also ein serialisiertes Feld des Death Splatters, wo sollte es sein? Und schließlich, bevor wir den Feind zerstören, werden wir diesen Todesspritzer instanziieren. Ich hoffe also, dass Sie der Herausforderung gewachsen sind. Verschwenden wir keine Zeit mehr und fangen wir an. Pausiere das Video nicht. Lass uns gehen. Lass uns gehen. Okay, also zuerst kein Druck, kein Druck. Es ist nicht so, als würdest du gegen den Instruktor gehen. Wie auch immer, Blutspritzer, wir sind in diesem Brights. Ich gehe hier hin und wir haben schon alles in Scheiben geschnitten. Ich füge diese Datei hinzu. Da sind wir los. Du siehst es genau hier. Gehen wir fort und klicken Sie mit der rechten Maustaste auf ein leeres Spielobjekt. Ich werde seine Position genau hier zurücksetzen. Ich gehe in die Animationen ein, großartige Animation. Dies wird in den Assets und Animationen enthalten sein. Rechtsklick. Da gehst du. Seite von V, mit der rechten Maustaste klicken. Oh, nein, so viel Spritzer. Danach. Feind. Ein sehr langer Name für eine Animation. Jetzt wähle ich alle Sprites aus, füge sie hier hinzu. Lass uns das machen und sehen, wie das aussieht. Okay, das ist eine Menge. Also werde ich all das auswählen und vielleicht die Pixel pro Einheit etwas mehr machen, vielleicht 120 oder 150. Wende das an. Versuchen wir diese Animation noch einmal. Buch. Oh, okay. Es ist ein bisschen kleiner. Lass es uns zehn Sekunden machen. Okay. Vielleicht behalte ich es sogar für 20 Personen. Mal sehen. Okay, also denke ich, dass 20 gut genug sind. Los geht's, los geht's, los geht's. Das nächste, was wir tun werden, ist, dass wir hier in den NMI-Controller gehen. Wir bekommen einen Hinweis auf den Blutspritzer. Ich gehe weiter und nach dem Schaden. So nennt das serialisierte Feld, das ausgereift sein wird, es ein Spielobjekt als Death Splatter. Warum ist Butter? Ich bin mir nicht mal sicher. Ich behalte es einfach am Ende, weil es bei allen Effekten immer besser ist, die Effekte am Ende hinzuzufügen. Spar dir das auf. Was sollen wir sonst noch tun, wenn wir hier zerstört werden? Oder, oh, ich, naja, ein großer Fehler von mir, nicht im Spieler-Controller genau hier und dem Feind, rette das. Oh, okay, also hast du jetzt einen Vorsprung vor mir wegen meiner dummen Fehler. Keine Sorge, wir speichern diesen Scroll zum Feind. Wo ist er gestorben, bevor er zerstört wird, ich instanziiere den tauben Splatter an der Transformationspunkt-Position. Also hoffe ich, dass du auf deinem Weg bist, denn ich bin fast fertig mit der Transformation Dot Rotation und vielleicht wartest du nur auf mich und lachst. Also spar dir, dass alles gut ist. Geh zurück hier, das Spielobjekt, das sind die Load Splatters. Spar dir das auf. Und auch der Feind, das werden wir bevorzugen, also gehen wir auf die Rückerstattungen ein. Da sind wir los. Blut spritzte, hinzugefügt und hier geht's zum Feind. Er lässt den Todesspritzer aus der Hierarchie entfernen, außer das, führe das Spiel aus. Sollte der Feind zweimal? Das tut er. Und ich kann den Blutspritzer sehen, aber oh, ich denke, wir haben vergessen sicherzustellen, dass der Sprite-Renderer auf dem wo soll ich ihn hinzufügen? Welches, oder ich kann eine Sortierebene hinzufügen. Mal sehen, lass uns eine Sekunde darüber nachdenken. Ich kann 0 hinzufügen, also die Feinde, okay, großartig. Also spar dir das für den Feind auf. Und jetzt, wenn wir den Feind zweimal erschießen, sollten wir das Blut sehen. Okay, großartig. Also, aber wie Sie sehen können, haben wir es auf Schleife. Also gehe ich in die Animationen, Blut und entferne die Loop-Zeit, speichere das, führe das Spiel erneut aus. Und wir sollten einen sehr schönen, sehr schönen Spritzer Blut haben. Und los geht's, verschwindet. Wir müssen sicherstellen, dass es ein paar Unannehmlichkeiten gibt. Am Ende möchten wir vielleicht weitermachen und dies zerstören. das zu tun, lassen Sie uns hier in unsere Drehbücher eingehen. Und wir haben bereits eine Art Skript erstellt, das der Impact Effect Destroyer war. Wir können übrigens weiter gehen und in die Prefabs gehen, den Blutspritzer wählen. Wir haben diese kleine Sperre hier drin, also ist dies nicht mehr Teil der Herausforderung. Dies ist etwas Extra, das hinzugefügt wird. Ich habe sogar die Zerstörung vergessen. Und wir können weitermachen und den Aufpralleffekt, den Zerstörer, den Zerstörer hinzufügen. Jetzt kann ich genau hier darauf zugreifen und ich kann es sagen, dass wenn wir zum letzten Frame kommen und vielleicht sogar für ein paar Millisekunden hier behalten können , also liegt das Blut auf dem Boden. Nachdem wir fertig sind, fügen wir diese kleine Tatsache hinzu, entfernen das Schloss und das Animationsereignis. Was scheint hier das Problem zu sein? Irgendeine Art Schlüssel, er ist geöffnet. Okay, also haben wir das zerstört, aber aus irgendeinem Grund spritzt das Blut nach dem Feind. Hey, willkommen zurück. Es gab also ein winziges Problem, als ich das Event hinzufügte, ich hatte etwas anderes. Das Problem war, dass wenn Sie den Blutspritzer nicht haben, zum Beispiel in der Hierarchie, wenn Sie ein Ereignis hinzufügen, es etwas seltsam aussieht. Lass mich es dir nochmal zeigen. Also wählte ich den Blutspritzer und die Animation wählte den Blutspritzer. Sie können also sehen, dass es keine Animation gibt. Wir müssen es zuerst hier in der Hierarchie und unserer Szene hinzufügen. Dann können wir weitermachen und das kleine Ereignis hinzufügen , dass ich das noch einmal mache. Also los gehst du. Und ungefähr 50, ich füge diese Funktion genau hier hinzu. Ich greife auf das Zerstören zu, speichere das, führe das Spiel aus. Jetzt töte ich den Feind mit ein paar Kugeln. Der Splatter passiert Buch, und dann wird es von selbst entfernt. Wir haben es nicht mehr in unserer Hierarchie. Also hoffe ich, es gefällt dir. Ich hoffe, du hast die Herausforderung bewältigt. Vielleicht hast du es nicht so schnell gemacht wie ich. Du pausierst das Video, du hast selbst ein paar Dinge ausprobiert. Es ist ein bisschen fortgeschritten. Alles was wir benutzt haben, kennen wir bereits die Instanziierung. Was ist der Effekt, den wir erzeugt haben, die Animation, die transformierte Position, all das, was wir getan haben, vielleicht die einzige Herausforderung, vielleicht wussten Sie nicht, wo Sie das hätten hinzufügen sollen. Vielleicht hast du nach dem Zerstören hinzugefügt. Ich glaube nicht, dass das funktioniert, wenn Sie es hinzugefügt haben, nachdem Sie so gut gemacht zerstört haben, stellen Sie sicher, dass Sie Ihre Änderungen übernehmen, ich hoffe, es hat Ihnen gefallen. Und im nächsten Video werden wir der Art und Weise, wie wir unseren Feind verletzen, etwas Brutalität hinzufügen. Wenn wir ihn gerade erschießen, fühlt er nichts, aber wir werden sicherstellen, dass er es tut. Und übrigens haben wir auch die Todesanimation, die Sie für den Feind erstellen und ihm hinzufügen können , wenn er stirbt, eine Art Auslöser. Vielleicht machen wir es später. Wenn du nicht zu spät für mein faules Hintern willst, kannst du es jetzt zwischen den Videos machen. Also sehe ich dich im nächsten. 28. Feinde Blood (Arrays): Willkommen zurück Meine Lieblingsspielentwickler zu einem brandneuen sehr langen Video. Und dieses hier haben wir Animationen für das Blut erstellt. Wir haben etwas über Arrays erfahren. Und jetzt können Sie in der Hierarchie sehen, wenn wir unseren Feind erschießen, Sie können sehen, dass verschiedene Arten von Blut instanziiert werden. Also zum Beispiel, jetzt haben wir das Blut dafür, dann haben wir die drei. Was passiert also? Wir haben viele Bloods und sie instanziieren irgendwie zufällig, weil wir ein Array verwenden. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Also Zeit, unseren Feinden einen Herdeneffekt hinzuzufügen. Lassen Sie uns weitermachen und zuerst all diese Effekte erzeugen. Also gehe ich in die Sprites, wir haben den Blutspritzer. Ich erstelle einen Ordner für den Blood Impact Splatter. Vielleicht hätten wir das den Tod nennen sollen, aber keine Sorge, wir nennen das die Impact Splatters. Wir wissen also, dass Frankreich und ich auf die Ressourcen eingehen werden und Sie sehen, dass ich Ihnen mehr Blut zur Verfügung gestellt habe. Sie können diese entweder verwenden und aufschneiden oder Sie können diese fünf genau hier verwenden. Wählen wir alle aus und ziehen sie hier in den Ordner. Warum benutzen wir alle von ihnen? Weil wir ein bisschen Diversifikation zwischen 1D 2D, 3D und so weiter haben wollen. Sie können also sehen, dass jeder von ihnen nur ein bisschen anders ist als die anderen. Also speichere ich das und erstelle die Animationen. Und es ist ziemlich einfach, denke ich. Also mache ich mit der Magie des Editierens und benutze es in 1 Sekunde. Also o k, willkommen zurück. Wie hast du das alles bekommen? Lass mich dir zeigen, was ich getan habe. Zunächst einmal habe ich fünf Blut für die 55 Blutwirkungen geschaffen, die wir jetzt haben, sie unterscheiden sich nicht sehr voneinander, aber es gibt einen leichten Unterschied. Wenn wir das ausführen, können Sie sehen, dass dies der erste ist. Dies ist der zweite, der ein bisschen anders ist. Der erste ist etwas spritziger. Die dritte, mal sehen. Sie können sehen, dass es mehr fällt als das zweite. Sie können also sehen, dass dies die beiden sind. Dieser ist drei. Es fällt ein bisschen mehr runter. Ich weiß nicht, wie ich es nennen soll. Der vierte, man sieht, dass es sehr klein und sehr konzentriert ist. Und der fünfte, den Sie sehen können, ist sehr GUI. Was werden wir also tun? Das werden wir alles retten. Ich gehe hier in die Prefabs und erstelle einen Ordner für die Lot-gesicherten Wimpern und ich werde das Blut 1, 2, 3, 4 und 5 ziehen . Das werde ich alles retten. Ich lösche sie aus der Hierarchie. Und jetzt haben wir das Blut hier drin. Jetzt denke ich, dass wir sie wahrscheinlich zerstören müssen und nur ein bisschen, aber im Moment machen wir uns darüber keine Sorgen. Wir beheben das, wenn das Problem auftritt. Was werden wir also tun? Wir wollen diese Blutungen jedes Mal instanziieren, wenn der Feind verletzt wird? Und die Art und Weise, wie wir das tun, besteht vor allem darin, offensichtlich einen Hinweis darauf bekommen, genau wie wir es mit dem Todesspritzer getan haben. Dies wird also als Schaden-Effekt bezeichnet. Wegen des Schadens. Der Schadenseffekt. Lass es uns einfach dabei behalten oder du kannst den Schaden Blutspritzer nennen, wie du willst. Und jetzt werden wir es einfach jedes Mal instanziieren, wenn wir verletzt werden. Also hier unten werden wir das duplizieren. Bewegen Sie es ein bisschen nach oben. Und wenn Sie sich daran erinnern, wie wir Control D duplizieren, wie haben wir dies sehr gut bewegt, indem wir Alt gedrückt halten und die Pfeiltasten benutzt haben. Jetzt instanziieren wir v. Was sollen wir den Schadenseffekt instanziieren? Und es liegt an der Transformationsposition des. Also werde ich das alles retten. Ich gehe zurück in unser Spiel. Ich wähle den Feind hier aus, wir haben die schädliche Wirkung, und lass uns einen blauen wählen. Spar dir das auf. Und jetzt werden wir das Spiel starten. Und jetzt erschieße ich unseren Feind. Da sind wir los. Du kannst das Blut sehen. Offensichtlich wird es wiederholt. Okay, jetzt müssen wir diese Effekte jedes Mal instanziieren, wenn der Feind verletzt wird. Wo instanziieren wir also den Effekt oder die Auswirkungen der Kugeln? Nun, wir instanziieren sie im Layer Bullet-Controller. Sie können also sehen, dass wir sie hier instanziieren. Was wollen wir jetzt tun, wenn wir auf eine Wand stoßen, wir haben diesen Bullet-Impact-Effekt. Aber wenn wir einen Feind treffen, wollen wir einen Lasteffekt haben. Also werde ich diese Zeile genau hier duplizieren. Und ich nenne das „Reife“. Ich nenne es die Schadensfakt. Weil dies bedeutet, dass es eine Art Schaden geben wird, wenn wir Schaden haben, bedeutet, dass es Blut gibt, bedeutet, dass es etwas anderes gibt. Und was wir hier drin tun werden, ist, dass ich jedes Mal, wenn wir einen Feind treffen , die Klammern auföffne. Und ich werde gleich hier hinzufügen, dass wir den Schadenseffekt auf die Transformationsposition und die Transformationsdrehung instanziieren und instanziieren. Aber was wir nicht haben wollen, als wenn wir den Feind treffen und trotzdem einen Kugeleffekt instanziieren. Was ich also tun werde, ist, dass ich hier eine andere Aussage mache. Und ich werde diese ganze Linie in diese andere Aussage verschieben. Wie mache ich das? Indem Sie Alt gedrückt halten und die Pfeiltasten auf einer der Zeilen verwenden, die ich bewegen möchte. Was passiert jetzt, wenn die Kugel Auswirkungen hat oder eine Kollision hat und diese Kollision einen Tag eines Feindes hat, dann werden wir diesen Blutspritzer haben und wir werden auf den Tierkontrolleur zugreifen und Schaden verursachen. Wenn nicht, wenn es nicht der Feind ist, was bedeutet, dass wir schlagen, weiß ich nicht, was es ist. Wir werden den Kugel- und Rückeneffekt haben. Also werde ich das speichern. Ich gehe hier wieder rein. Und hier werde ich nach meiner Kugel in den Prefabs suchen, Prefabs V Bilayer Kugel hier drin, wir sollten den Spieler haben, aber ich sollte den Schaden-Effekt haben. Ich sperre das im Inspektor damit du diesen kleinen Login hier hast, du kannst darauf klicken. Was auch immer Sie drücken, Sie wechseln nicht vom Spielerbuchinspektor. Und das ist hilfreich. Warum? Weil wir diese Datei jetzt öffnen können, wählen Sie das Blut und fügen wir sie hier in den Sachschaden ein, speichern Sie das alles, führen Sie das Spiel aus. Und jetzt sollten wir sehen, dass wir diese Auswirkungen haben, wenn wir auf die Wand schießen. Wenn wir einen Feind erschießen. Da sind wir los. Wir haben das Blut wiederholt, was bedeutet, dass wir die Animationen ändern müssen. Und ich habe dir nicht gesagt, dass ich Animationen erstellt habe. Kann das einfach entfernen. Und lass mich diesen Ordner löschen. Ich hatte es versehentlich. Also spritze eins, entferne das. Splash, um das vom Looping des zu entfernen, oops, ich habe es versehentlich eingeschaltet. Schalt es aus. Schalten Sie aus. Also los gehst du. Wir haben alle Animationen nicht auf Looping, okay, außer das, führe das Spiel jetzt aus, wenn wir den Feind sollten, wir sollten den Blutspritzer von Blut sehen. Okay, das ist also in Ordnung und Dandy und alles ist gut. Aber wir haben aus gutem Grund fünf Fakten. Wie werden wir sicherstellen, dass einer von ihnen gerendert wird? Und nicht nur das, wie werden wir sicherstellen, dass eine Zufallszahl davon gerendert wird? Wir brauchen also mehrere Blutgegenstände hier drin. Was wir tun können, ist, dass wir dies einfach fünfmal duplizieren können. Schaden 123 usw. Wir haben also fünf Schäden, die wir nach dem Zufallsprinzip anrufen können. Das ist eine Lösung, aber es ist nicht die optimale Lösung, denn zum Beispiel wollen wir vielleicht 17 Schadenseffekte haben. Müssen wir 17 Variablen erstellen? Nun, das kannst du, aber zuallererst ist es sehr umständlich. Zweitens ist es keine gute Möglichkeit, die Ressourcen zu nutzen. Was ist eine gute Möglichkeit, Ressourcen zu verwenden, um etwas zu erstellen, das als Array bezeichnet wird? Was ist ein Array? Mit einem Array können Sie mehrere Objekte desselben Typs in einer einzigen Variablen speichern. So können wir weitermachen und einen int erstellen. So zum Beispiel ein Array von Ganzzahlen, nämlich die Anzahl der Feinde. So kann ich zum Beispiel 4, 6, 11 und 71 lagern . Und jede dieser kleinen Daten ist im Array. Sie können sehen, dass wir zuerst den Typ wie eine Variable haben , aber den einzigen Unterschied, wir fügen diese beiden eckigen Klammern hinzu. Wir haben den Namen und wir haben die Werte. Und jeder dieser Werte ist oder hat einen Index. So sind die vier beispielsweise bei 0 indiziert. Und denken Sie daran, dass wir immer bei 0, nicht bei 10 anfangen zu indexieren. Die Sechs liegt bei Index eins, die 11 liegt bei Index zwei und die drei sind am Index. Ich meine, 71 ist bei Index 3 und wir können so viele haben, wie wir möchten. Jetzt, da Sie ein wenig verstehen, was Arrays sind, und noch eine Sache können wir die Länge eines Arrays bestimmen. Die Länge dieses Arrays beträgt beispielsweise vier, da wir vier Werte haben. Also aus dem Weg, diese kleine Erklärung, versuchen wir es ein wenig zu implementieren und Sie können sehen, wie das funktioniert. Also gehe ich zurück und Einheit oder eigentlich nicht hier drin. Und wie konvertieren wir diesen Schadenseffekt in ein Array? Wir fügen einfach diese beiden eckigen Klammern hinzu. Und jetzt denke ich, dass es angebracht ist, diesen nicht Schadenseffekt zu nennen, sondern Schadenseffekte mit einem S am Ende, weil es jetzt Plural ist. Also verwenden wir unser praktisches Kontrollwerkzeug oder, und wir fügen am Ende einfach ein S hinzu, drücken Sie die Eingabetaste. Jetzt ist der Schadenseffekt hier anders, aber Sie können sehen, dass die Instanziierung jetzt falsch ist. Warum? Weil wir versuchen, eine Reihe von Effekten zu instanziieren, die nicht gut funktionieren , aber wir werden das beheben, oder Sie werden das später in der Herausforderung beheben. Lassen Sie uns zunächst den gesamten Schaden hinzufügen und sehen, wie er im Inspektor aussieht. Wenn ich also zu meiner Kugel gehe, in der Prefabs-Spieler-Kugel, siehst du genau hier, wo ist es? Also stimmt etwas nicht. Was ist das Problem? Und die Konsole? Doppelklicken und sehen wir uns an. Oh, lass mich das einfach auskommentieren. Speichern Sie, dass das Skript manchmal, wenn Sie einen Fehler haben , nicht richtig zusammengestellt wird. Jetzt, wo wir dieses Problem beheben, können wir genau hier sehen, dass wir Schadenseffekte haben, kein einziges Element mehr, aber wir können es öffnen und eine Liste von Elementen haben. Was wir tun können, ist, dass die Array-Größe zwei ist. Drücken Sie Enter. Jetzt haben wir zwei Elemente, oder wir können es auf altmodische Weise machen und genau hier das Plus treffen und ein Objekt hinzufügen. Aber ich zeige dir einen noch raffinierten Trick. Ich sperre den Inspektor hier ein. Ich gehe zu meinen Prefabs. Ich klicke auf den ersten, halte gedrückt, umschalt, klicke auf den letzten. Also habe ich alle ausgewählt und ziehe sie auf den schädlichen Effekt. Und voila, jetzt hast du warum habe ich Wasser benutzt? Jetzt haben wir die 50 Bloods und Sie können die Elemente sehen, die von 0, 1, 2, 3 und 4 nummeriert sind. Jetzt besteht der nächste Schritt darin, einen von ihnen nach dem Zufallsprinzip zu instanziieren. Und ich kann Ihnen zunächst zeigen, dass dies eine Herausforderung sein wird. Ich bin mir nicht sicher, was ich dir zuerst zeigen soll. Lass mich dir das zuerst zeigen. Wir haben also etwas namens Zufallsbereich, der eine Zufallszahl zurückgibt. Los, sieh dir nach oben. Jetzt ist es Zeit für deine Herausforderung. Und Ihre Herausforderung besteht darin, einen Zufallseffekt zu erzeugen. Also Nummer eins: Erstellen Sie einen zufälligen Splash von 0 als Mindestwert und die Länge des Arrays als Maximalwert. Jetzt bist du ein bisschen verwirrt. Worüber redet Michael? Wieder gehen wir wieder zu diesem zurück. Das Minimum, das Maximum. Da gehst du. Benutze das, schau danach. Wieder hier drin. Weisen Sie diesen Wert einer Ganzzahlvariablen zu, die Sie lokal erstellen möchten. Erstellen Sie also eine zufällige Ganzzahl und weisen Sie ihr eine Zufallszahl zu. Suche nach zufälligen Latrinen 0. Okay, also habe ich das hinzugefügt. Und schließlich gebe ich dir einen Hinweis. Wenn Sie den Hinweis nicht möchten, es darum, wie wir die Länge des Arrays erhalten. Ich gebe dir den Hinweis. Wenn nicht, pausiere das Video und gehe zur Herausforderung. Sie möchten den Hinweis haben, verwenden Sie die Punktlänge, um die Länge des Arrays zu ermitteln. Man kann sogar nachschlagen ein paar Beispiele sind nein, das ist eine schwierige Herausforderung. Ich würde als Anfänger eine Skala von eins bis 10 hinzufügen, das ist eine 10, weil Sie zuerst gerade Arrays gelernt haben. Zweitens verwenden Sie Zufall. Ich weiß, dass es schwer ist. Nehmen Sie sich Zeit, pausieren Sie das Video, nutzen Sie Ihre Fähigkeiten zum Lösen von Problemen, alles, was Sie erworben haben, und machen Sie sich keine Sorgen darüber, wenn Sie die Herausforderung beenden. Wenn du nicht weißt, wie es geht, mache ich es vor dir, aber versuche es. Am wichtigsten ist, gib dir wenigstens fünf Minuten, um es zu versuchen. Also pausiere das Video jetzt und gib dein Bestes und den Chaldäer. Okay, willkommen zurück. Wenn wir also einen Feind treffen, werden wir eine zufällige Variable und lokal erstellen. Lokal bedeutet also lokal drinnen, jedes Mal, wenn wir einen Feind treffen, werde ich sagen, dass wir eine ganze Zahl haben Variable, die der ausgewählte Splatter sein wird. Und es wird einem zufälligen Bereich entsprechen. So wie wir es in den Beispielen getan haben, und Unity's Dokumentation wird zwischen 0 und dem Todesspritzer liegen oder nein, wir es nennen, scheinen die Schäden betroffen zu sein. Der Schaden beeinflusst die Punktlänge. Spar dir das auf. Was jetzt passiert, haben wir diese ganze Zahl. Es ist gleich einem zufälligen Bereich. Und Sie können genau hier sehen, dass wir das Minimum haben. Warum ist es also 0? Weil wir eine Zufallszahl aus dem Array auswählen möchten, das wir hier haben. Und der erste Index ist 0 und der letzte Index wird die Schadenslänge sein. Aber es gibt etwas sehr Wichtiges, auf das ich dich hinweisen möchte. Und wenn wir uns die Erklärung ansehen, können Sie sehen, dass das Minimum inklusive ist, während das Maximum exklusiv ist. Was heißt das? Inklusiv? Das bedeutet, dass wir einen Zufall von 0 bis zum Maximum wählen können. Also ist 0 drin. 0 kann eine dieser Zufallszahlen sein. Aber das Maximum, das ist die Länge, kann nicht. Und das ist wichtig, da die Indizierung in einem Array, wenn wir die Länge wählen, die Länge immer größer ist als der letzte Index. Denn wenn ich zurück gehe und das Beispiel hier drin, lass mich es dir zeigen. Sagen wir also, wie lang ist dieses gesamte Array? Es sind vier, weil wir vier Punkte haben. Aber wenn ich versuche, auf die vierte Zahl in diesem Array zuzugreifen, erhalte ich einen Fehler, da der Index 0, 1, 2, 3 ist, wenn ich versuche, auf die vierte zuzugreifen, also gibt es nichts, ich bekomme einen Fehler und ich fange an zu weinen. Nicht unbedingt, aber ich hoffe, du verstehst den Punkt. Das nächste, was wir tun werden, ist, dass wir instanziieren wollen. Jetzt, da wir unsere Zufallszahl haben, was wir zwischen den Effekten tun können, kann ich die Klammern öffnen und den ausgewählten Splatter zufällig verwenden. Jetzt habe ich eine Zufallszahl, die zwischen 0 und der Länge minus eins liegt, offensichtlich weil sie exklusiv ist. Und jetzt kann ich die Schadenseffekte oder einen der Schadenseffekte nach dem Zufallsprinzip mit dieser Zahl instanziieren . Also hätte ich die 0 V1 sagen können, aber ich habe den zufälligen Splatter ausgewählt. Also lasst uns das aufheben. Ich hoffe, du verstehst alles. Wenn nicht, schauen Sie es sich einfach noch einmal an, spielen Sie das Video vielleicht erneut ab, verstehen Sie alles. Ich habe versucht, so detailliert wie möglich zu sein, während ich langweilig bin. Ich denke, das ist eines der längeren Videos, aber keine Sorge. Ich gehe in mein Spiel. Wir werden das hier entfernen, ist wie der Feind. Und übrigens habe ich auch dafür gesorgt, dass all das Blut, das Sie hier sehen können, die Sortierschicht als Feind. Du kannst es also sehen. Und wo ist der Feind? Ich werde ihm tausend oder zehntausend Gesundheit geben nur damit wir alle Blutspritzer richtig sehen können. Also komme ich dorthin, aber nah dran, ich werde 12345 schießen. Also los gehst du. Du siehst, dass etwas nicht ganz stimmt, also schieße ich. Und was ist das Problem mit diesem 1, 0 Fall? Also habe ich gerade das Problem und das Blut 5 gefunden, das ich hinzugefügt habe, das Blut. Schau, wenn du die Animation spielst, der letzte ist ein roter Punkt. Also was ich tun werde, werde ich den letzten entfernen. Und da gehst du. Jetzt haben wir das nur, wenn das Blut an den Speeren endet. Spar dir das alles auf. Und lass mich einfach den Mond wählen. Das Blut 5 und ein Leben verändert sich. Löschen Sie es erneut in der Aufzählung. Lass es mich sehen. Vielleicht weil wir etwas geändert haben, vielleicht Prefabs Bullet. Okay. Arbeiten Sie immer noch, speichern Sie das, gehen Sie zurück in unser Spiel. Offensichtlich müssen wir all diese entfernen, also einen Schuh, den Feind, mal sehen. Wir haben verschiedene Blutungen. Nein, es ist aus irgendeinem Grund immer noch da. Warum ist das so? Es ist sehr nervig. Okay. Also entdeckte ich, dass das Blut für auch seinen letzten Rahmen hat wie diese roten lästigen Punkte. Also lösche ich es und speichere das. Ich lösche es sofort innerhalb des Prefab. Also gehe ich einfach zum Prefab doppelklicke auf die drei. Mal sehen, ob dieser auch den kleinen nervigen roten Punkt hat, den du nach oben gehst. Okay, also los geht's. Es hat auch das speichern und Blut, um zu zoomen und die Animation zu sehen. Okay, noch eine verdammte Arbeit. Dieses Video gerät außer Kontrolle. Also los geht's, der letzte, das löschen wir auch. Und eines ist mir aufgefallen Ich möchte alle Prefabs auswählen und sicherstellen, dass alle ihre Positionen bei 0 sind, damit sie nicht instanziiert werden. Und an einem seltsamen Ort. Wie auch immer, zurück zu unserem Spiel. Ich hoffe, dieses Mal sollte alles einwandfrei funktionieren. Also führe ich das Spiel aus und erschieße den Feind. Da gehst du. Das ist das dicke Blut. Suckt sie nochmal zu. Auch hier ist es eine andere Art von Blut. Du siehst, dass es blockiert ist. Drei. Blut für Blood eins. Da gehst du. Sie können es wieder vereinfachen, Blut eins. Wie Sie sehen können, haben wir, wann immer wir den Feind erschießen, verschiedene Blutsorten instanziieren. Sie können also sehen, dass es sich um eine Zufallszahl handelt, die ausgeschossen wird. Also hoffe ich, dass es dir gefallen hat. Offensichtlich gibt es ein paar Dinge, die wir beheben müssen, wenn unser Blut am Ende nicht zerstört wird . Wir könnten eine andere Möglichkeit finden, es zu reparieren, sobald wir ein paar zusätzliche Werkzeuge gelernt haben, oder vielleicht können wir sie einfach mit dem Events und unsere Animationen, was ebenfalls sehr hilfreich ist. Ich hoffe es hat dir gefallen, ich hoffe dir gefällt dieser Kurs. Ich hoffe, du bist nicht ein bisschen demotiviert durch die Länge der Videos, weil ich auf ein paar Details eingehe. Ich hoffe, Ihnen gefällt die Tatsache, dass ich Fehler mache und sie hier drin behalte, damit wir sie zusammen reparieren und mir eine Bewertung hinterlassen können , wenn es Ihnen Spaß macht. Ich weiß, dass ich es schon mal gesagt habe. Ich werde es vielleicht ein paar Mal sagen, also stellen Sie sicher, dass Sie die Rezension machen, damit Sie sie nicht mehr hören müssen. Und stellen Sie sicher, dass Sie die Commits machen. Wir sehen uns im nächsten Video, in dem wir dem Feind und die Fähigkeit geben werden, uns zu erschießen. Derzeit ist er also sehr schwach. Wir wollen ihm eine Möglichkeit geben, sich zu verteidigen. Wir sehen uns dann. 29. Angriff von Feinde (coroutines): Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und in diesem haben wir unsere Feinde tatsächlich leicht dämlich gemacht. Obwohl er schießen kann, aber nur das kleine Problem ist, dass er sich selbst erschießt, was manchmal gut ist, besonders wenn er ein sehr harter Feind ist. Aber in unserem Fall werden wir es später beheben. Aber im Moment müssen Sie nur wissen, dass wir die Zeit zwischen den Schüssen zum Beispiel auf drei ändern können . Und du siehst, dass es drei Sekunden dauert, um zu schießen, aber das machen wir nicht mit einem Zähler. Wir tun das mit etwas, das als Co-Routine bezeichnet wird, was sehr schwer erschreckend ist, aber glaubwürdig mächtiges Werkzeug ist, um in Unity zu lernen. Also brauche ich deine Konzentration und deine volle Aufmerksamkeit. Verschwenden wir keine Zeit mehr und fangen wir an. Okay, also Zeit, unserem Feind die Möglichkeit zu geben, den Spieler zu erschießen oder zumindest den Spieler anzugreifen. Wir haben zwei verschiedene Arten von Angriffen, die wir in unserem Spiel implementieren werden. Einer von ihnen wird der Malaier sein, einer von ihnen wird einfach aus der Ferne schießen oder das Schwert und die Skelette werfen. Aber wir werden uns vorerst mehr auf das Schießen aus der Ferne konzentrieren und später Nahkampfangriffe durchführen. Vielleicht in einem anderen Abschnitt, könnte es in der Boss-Abteilung sein, wo wir das riesige Skelett haben. Okay, damit das aus dem Weg ist, lass uns loslegen und loslegen. Das erste, was wir tun werden, ist, dass wir ein paar Variablen und den Fall des gegnerischen Controllers 0 erstellen. Also werden wir in den feindlichen Controller gehen. Und hier werden wir ein paar Variablen erstellen. Vor dem Todesspritzer hier werden wir also einen Angriff hinzufügen, nur ein üblicher, damit wir wissen, was alles ist und es wird ein serialisiertes Feld vom Typ Boolean sein und es wird ein Nahkampfangriff sein. Wenn es sich also um einen Nahkampfangreifer handelt, werden wir ihn im Inspektor überprüfen und es wird im Nahkampf angreifen. Dann werden wir ein serialisiertes Feld erstellen, das ein Spielobjekt sein wird und es wird das feindliche Projektil sein. Das wird der Feind ihm also aus der Hand werfen, wenn er schießt. Schließlich werden wir einen Transformationspunkt erstellen. Oh, tut mir leid, Feuerposition. Okay, jetzt haben wir das Projektil. Wir werden eine Aktenposition erstellen. Und wir wollen auch eine Zeit zwischen den Schüssen haben, die der Feind macht. Es ist also ähnlich wie wir mit unserer Waffe umgegangen sind. Also schweben Sie Zeit zwischen den Schüssen. Und schließlich werden wir einen privaten Bool erstellen, der bereit ist zu schießen. Was passiert hier? Wenn wir bereit sind zu schießen, schießt der Feind, und jedes Mal, wenn er schießt, und zwischen den Zeitschüssen wird berechnet. Also haben wir das benutzt, ich glaube den Zähler. Wir haben einen Zähler erstellt, bei dem wir die Zeit herunterzählen, bis wir eine gewisse Zeit zwischen den Schüssen beendet haben, wenn es fertig ist, dann können wir ihn erneut zeigen. Das war ein alter Weg. Jetzt werden wir etwas benutzen, das als Co-Routine bezeichnet wird. Bevor ich das mache und dir Coroutinen vorstelle, lass mich zuerst die bereit machen, hier zu schießen. Wann immer der Feind anfängt, ist er bereit zu schießen und zu aktualisieren. Wir werden weitermachen und hier etwas schaffen, was eine Bedingung ist. Und wenn der malaiische Angreifer oder wenn wir kein bloßer Angreifer sind, sind wir es nicht. Wenn wir das Ausrufezeichen wieder setzen und wir sind bereit zu schießen. Was wir dann tun werden, ist, dass wir weitermachen und sagen, dass wir bereit sind, als falsch zu schießen. Und dann beginnen wir hier drin mit einer Beschichtung. Was ist eine Co-Routine? Warum brauchen wir es hier drin? Lassen Sie uns eine kleine Erklärung haben. Was ist ein Coltan? Eine Co-Routine ist eine Methode, die die Ausführung von Anweisungen aussetzen kann , bis eine bestimmte Bedingung oder bestimmte Bedingungen erfüllt sind. Diese Suspensionen werden als Rendite bezeichnet. Und in unserem Beispiel wird die Zeit aussetzen, bis unser Feind bereit ist, wieder zu schießen. Gehen wir also zurück zu unserem Code und sehen, was das alles bedeutet. Also, was wir haben, checken wir das Update ein, das jeden einzelnen Frame genannt wird. Wir prüfen, ob wir keinen Angreifer zielen, und wir sind bereit zu schießen, dann bereit zu schießen, auf false gesetzt. Und zum Beispiel werden wir hier die Kugel schießen. Aber was wir wollen, genau wie wir in der Theke hatten, wollen wir nach einer gewissen Zeit schießen können. Auch hier haben wir diesen Wert auf false gesetzt, weil wir nicht jedem einzelnen Bild eine Kugel abschießen wollen und Unmengen von Kugeln haben wollen. Die Art und Weise, wie wir das beheben, besteht darin, eine Co-Routine zu verwenden. Lassen Sie mich also einfach weitermachen und erstellen Sie eine Coroutine genau hier wird vom Typ Eye Enumerator sein. Sie müssen sich keine großen Sorgen darüber machen, was unser Enumerator ist, wissen Sie nur, dass es sich um die Art von Beschichtungen handelt. Wir werden den Namen der Coroutine als Feuerfeind erstellen, Projektil. Ich öffne die Klammern und wir werden die Zeit aussetzen. Also sage ich diese Ausbeute. Okay, Fokus, Rendite. Das bedeutet, dass wir suspendieren. Kehre zurück. Neu. Warte vier Sekunden. Ich öffne die Klammern. Und wie viele Sekunden wollen wir als Zeit zwischen den Schüssen wiegen? Und danach können wir fortfahren und die Kugel instanziieren oder das Projektil instanziieren, das ist das Projektil, feindliche Projektil, wo an der Fünf-Position instanziiert wird, diese Position und die Position außer Rho-Station. Und was wir dann tun können, ist, den Rückschuss auf wahr zu setzen. Und jetzt können wir es noch einmal zeigen. Kompliziert, nicht wahr? Ich weiß es weniger erklären. Oh, und bevor ich es vergesse, und hier nach dem Dreh beginnen wir die Co-Routine, die das fernfeindliche Projektil ist. Okay, jetzt bist du noch verwirrter. Versuchen wir es noch einmal und aktualisieren Sie es. Was haben wir jedes einzelne Frame-Update als kalt, wir haben all diese Aussagen genau hier, die wir nur ein bisschen in Methoden umwandeln werden. Aber worauf wir uns konzentrieren, ist hier, wenn wir kein Nahkampfangreifer sind und bereit sind zu schießen, dann bereit zu schießen, auf falsch gesetzt und wir starten einen Colton. Was passiert hier drin, bereit, einen Satz auf falsch zu schießen? Das bedeutet, dass diese Methode oder diese Bedingung genau hier falsch ist. Also schießen wir nicht jedes einzelne Frame wieder. Deshalb haben wir es auf „false“ gesetzt. Aber wie werden wir es wieder wahr machen? haben wir früher mit dem Zähler gemacht. Jetzt verwenden wir etwas eine Beschichtung. Und genau wie gesagt, heißt Co-Routine „Verwenden von Start Coroutine“. Du gibst den Namen hier rein und nennst ihn „I Enumerator“. Keine Sorge. Mach dir darüber keine Sorgen. Vorerst. Du willst tiefer damit eintauchen? Sei mein Gast. Man muss nicht genau wissen, was das bedeutet. Wir haben das fernfeindliche Projektil, dann haben wir diese Erweiterung, die Ertrag ist. Dann haben wir die Rückkehr neu, warte vier Sekunden. Da wir also einen Ionenzähler haben, müssen wir vier Sekunden ein neues Gewicht zurückgeben. Was macht das? Genau wie es heißt, wartet es einige Sekunden, also die Zeit zwischen den Schüssen. Und nachdem es darauf gewartet hat , instanziieren wir das feindliche Projektil. Feind schießt, und er ist bereit, immer wieder zu schießen. Was passiert hier drin? Zuallererst fangen wir an, wir haben die bereit, auf wahr zu schießen. sollten wir. Es ist falsch, wir schießen nicht mehr. Und wenn die Zeit zwischen den Schüssen endet, werfen wir das Projektil und dann sind wir bereit, wieder zu schießen. Testen wir das und sehen, wie es funktioniert. Ich gehe zurück nach Unity. Ich werde sehen, wo wir eigentlich unser Messer haben 0. Also haben wir kein Messer. Was wir also tun werden, ist, dass wir einfach die Kugel benutzen, die wir bereits haben. In den Prefabs haben wir also die Spielerhefte. Benutze das jetzt einfach, die Feuerposition, lass mich mit der rechten Maustaste hinzufügen, ein leeres Spielobjekt erstellen. Und ich setze es genau hier hin, läuft fast genau hier. Dies wird also die Feuerposition auf den Feind sein. Wir geben ihm die zwischen den Schüssen definierte FAR-Position , die 1 Sekunde betragen würde. Das werden wir speichern. Und jetzt werden wir sicherstellen, dass er kein Angreifer ist. Lass uns das Spiel starten und sehen, was passiert. Also jetzt gehst du los. Sie können sehen, dass er die Kugel instanziiert, aber er schießt sich selbst und ins Gesicht. Wenn ich das also für eine Sekunde pausiere, kannst du sehen, dass die Fünf-Position so gerichtet wird. Und wir wissen, dass die Spielerkugel nur in die richtige Richtung gereist ist ist. Ich weiß, dass es irgendwie witzig ist. Versuchen wir es auf andere Weise. Aber auf jeden Fall wir uns darüber vorerst keine Sorgen, denn im nächsten Video werden wir richtige feindliche Kugeln schaffen, die tatsächlich weit auf den Spieler zugehen oder nicht. Sogar Kugeln werden das Projektil erzeugen, das das neunte des Feindes ist. Er wird es als Spieler werfen und sich nicht selbst erschießen. Aber Sie können jetzt sehen, dass dies mit dem Colton funktioniert. Wenn ich hier wieder auf den Feind klicke, kannst du sehen, dass ich die Zeit zwischen den Schüssen auf 2 erhöhen kann. Jetzt haben wir alle zwei Sekunden diesen Angriff. Ich hoffe, dir hat das Video gefallen. Ich weiß, dass der Schießmechaniker nicht perfekt ist, aber wie ich im nächsten Video sagte, werden wir bessere Kugeln erstellen. Ich hoffe, Sie begehen alle Ihre Änderungen. Und im nächsten Video machen wir richtige feindliche Kugeln, Heiden oder wie auch immer du es nennen willst. Also sehe ich dich dann. 30. Richtige Making: Willkommen zurück, meine Spieleentwickler. In diesem Video werden wir Kugeln hinzufügen. Wir nennen sie Kugeln, aber es sind Schwerter für unser Skelett. Wenn wir also unser Spiel ausführen, schauen Sie, was passiert. Man sieht, dass das Skelett jetzt tatsächlich Sorten wirft. Und nicht nur das, wenn wir herumlaufen, folgen uns die Schwerter. Und wenn Sie bemerken, wenn wir die Quelle ändern, die bereits fliegt, fliegen Sie weiter in die Richtung, denn es gibt etwas ganz Neues, das passiert ist. Sie entdeckten, dass die Arten in der Luft nicht die Richtung ändern. Erstaunliche Entdeckung. Verschwenden wir keine Zeit mehr mit unseren, nennen wir sie nicht dumme Witze. Und lasst uns anfangen. Oh, okay, also Zeit, ein paar richtige feindliche Kugeln zu erschaffen. Das erste, was wir tun werden, ist, dass wir weitermachen und die Sprites unseres Schwertes oder die Art des Feindes holen werden. Wenn ich also in die Sprites gehe, wenn ich in die Feinde, die muslimischen Feinde, das Skelett gehe . Und hier drin habe ich das Sprite für wo ist es? Wo sind die fliegenden Gedanken? Also los gehst du. Das ist das Fliegen sortiert. Wir schaffen alles dafür. Ich glaube, das haben wir nicht. Also erstelle ich ein leeres Spielobjekt und setze seine Position zurück. Und ich gebe ihm eine der, wo ist es, die Arten? Also lass uns ihm das einfach geben. Ich füge vier hinzu. Ich kann das Schwert einfach hier hinzufügen. Entferne einfach dieses Spielobjekt und ich nenne das das fliegende Skelett-Schwert. Da gehst du. Und ich erstelle eine Animation. Also gehe ich zu den Assets und Animationen und gehe zur Skelett-Animation. Und nennen wir es einfach die fliegende Untertasse. Klicken Sie auf Speichern. Da sind wir los. Jetzt haben wir den Animator und lassen mich einfach alle Sprites auswählen. Und lasst uns weitermachen und sie hierher ziehen. Wenn wir jetzt die Animation ausführen, gehen wir los, du kannst sehen, dass wir ein extrem schnelles Schwert haben, das es bewegt. Okay, das ist also fast okay. Also los gehst du. Sie können sehen, dass unsere Sorte so funktioniert. Und es explodiert, bevor es zum Feind kommt. Es hat also ungefähr 40 Frames Flugzeit. Und das ist gut. Wir wollen, dass das Schwert zumindest aus einiger Entfernung zerstört werden kann. Wir wollen nicht, dass das Salz die ganze Zeit fliegt Wenn Sie Ihr Salz ständig fliegen lassen möchten, müssen Sie ein paar Dinge hinzufügen. So kannst du ihn zum Beispiel einfach auf eine Schleife setzen und das Salz fliegt und fliegt weiter, ohne jemals zerstört zu werden , bis er den Spieler erreicht. Und schließlich kann fair unter bestimmten Bedingungen zerstört werden. Aber machen wir uns jetzt keine allzu großen Sorgen. Was wir tun werden, ist, dass wir die Skripte hier öffnen werden. Wir werden in die Kugeln gehen und klicken mit der rechten Maustaste und erstellen ein neues C-Sharp-Skript, das der gegnerische Bullet Controller sein wird. Und nennen wir es einfach Kugel oder Projektil, aber im Moment werden wir es Kugel nennen. Also werde ich das speichern. Und ich doppelklicke und öffne das. Das erste, was wir brauchen werden, ist ein serialisiertes Feld, das ein Schwimmer für die Geschossgeschwindigkeit ist. Und ich werde Kugel benutzen und irgendwie projiziert, während wir weitermachen. Und wir werden einen Hinweis auf die Spielerrichtung benötigen. Also erstelle ich einen privaten Vektor 3 und es wird die Spielerrichtung sein. Wie funktioniert die feindliche Kugel eigentlich? Was wir tun werden, ist dann zu beginnen, wir werden die Richtung der Spieler bestimmen. Es wird also gleich sein, Objekte vom Typ zu finden. Und es wird der Layer-Controller sein. Und von hier aus werden wir die Transformationspunkt-Position des Spielers verwenden , den wir finden, abzüglich des Positionspunkts transform.py o. Das war's. Nein, nicht normalisiert, nein, jetzt nicht. Warum machen wir das installiert und kein Update? Weil wir nicht wollen, dass die Kugel dem Spieler weiter folgt. Wir wollen nur die Spielerrichtung haben, sobald die Kugel abgefeuert wird. Wenn die Kugel abgefeuert wird, instanziieren wir diese Kugel. Und diese Kugel. Sobald es aufwacht. Beginne. Wir fangen an. Es wird das Spieler-Objekt finden, die Richtung des Spielers ermitteln. Und dann werden wir sicherstellen, dass sich die Spielerrichtung normalisiert. Da sind wir los. Auf diese Weise ist es nicht schneller, wenn es sich in einer Diagonale bewegt. Okay, großartig. Als Nächstes wollen wir sicherstellen, dass diese Kugel zerstört wird, wenn sie auf ein Hindernis trifft. Aber nicht nur das, wir wollen auch die Gesundheit des Spielers später reduzieren, wenn er ihn trifft. Also eines der Dinge, die wir tun müssen. Ist das Problem Sie eine Herausforderung? Wie wär's mit diesem Übergang? Der Strohhalm, die Kugel und überprüfe den Spieler. Sie müssen also erstellen, dies sollte M bei Trigger Enter to D für das Aufzählungszeichen sein. Sie müssen prüfen, ob wir den Spieler nach seinem Tag getroffen haben, der die Kugel zerstören muss, wenn er etwas trifft. Und ich gebe dir einen kleinen Hinweis, du musst den Strohhalm benutzen. Nun, das ist eigentlich nicht, es war ziemlich einfach, aber ich dachte, dass Sie das vielleicht brauchen, weil es das erste Mal ist, dass Sie zerstört benutzen . Denken Sie also daran, dass Sie diesem auch einen Trigger hinzufügen müssen. Pausiere das Video jetzt und mach den Shalon k. Also gibt es etwas, das ich von der Herausforderung verlassen habe. Ich habe es ein bisschen erwähnt und ich hoffe, dass der Schuh, dass ich das alleine hinzufügen muss, einen Collider hinzufügen muss. Also ein kreisförmiger Collider 2D, Es ist ziemlich groß. Ich lege den Radius oben, nimm groß. Ich werde es tun, okay, also denke ich, dass dieser Radius gut genug ist. Mal sehen, wie das fliegen wird. Das ist also der vollständige Kreis. Also werde ich es ein bisschen nach unten bewegen, ein bisschen so oder okay, großartig. Jetzt haben wir den Collider, wir sorgen dafür, dass es zu einem Auslöser wird. Ich werde das speichern und ich gehe in das O und füge auch die Skripte des feindlichen Bullet-Controllers hinzu. Da sind wir los. Die Bootsgeschwindigkeit wird sein, lass es uns 34. Doppelklicken Sie nun darauf und öffnen Sie dies. Und jetzt werden wir ein auf Zucker erstellen, also auf Trigger Enter to D Und hier werden wir prüfen, ob das collision.com-Tag. Und wenn es der Spieler ist, müssen wir den Stack natürlich ein wenig erstellen. Wenn es der Spieler ist, wird der Spieler einfach das Debug-Punktprotokoll verwenden. Die Ebene wurde getroffen. Und dann werden wir einfach das, was auch immer das Ziel war, das Seelen-Zerstörungsobjekt. Spar dir das auf. Der letzte Schritt ist, dass wir unsere Kugel verschieben wollen. Und wie bewegen wir unsere Kugel? Nun, offensichtlich können wir den starren Körper wieder benutzen, genau wie wir es mit der Spielerkugel getan haben. Aber ich denke, ich bin dieser Fall, es ist viel besser, die altmodische Art und Weise zu benutzen, die die Transformation des Buches bewegt wird. Zuallererst gibt es viele Gründe. Zuallererst können wir das ziemlich einfach machen und es ist sehr effektiv. Und der zweite Grund ist, dass wir nicht viele starre Körper und unser Spiel haben wollen, denn wann immer Sie einen starren Körper haben, bedeutet das, dass die Physik-Engine funktioniert. Und wenn eine Physik-Engine funktioniert, bedeutet das, dass es mehr Rechenleistung gibt. Also das letzte, was wir die Butter benutzen, läuft unser Spiel. Also ein Update, ich werde auf die Transformation zugreifen. Ich werde es tun, ich meine die Position bei der Transformation. Und ich werde es weiter erhöhen. Gehen Sie in die Richtung des Spielers, messen Sie die Geschossgeschwindigkeit. Also diese Geschwindigkeit, und ich werde natürlich Zeit nutzen, Delta-Zeit. Sobald die Kugel instanziiert wird, wird die Richtung des Spielers gefunden. Und in jedem einzelnen Frame wird die Transformation auf diesen Spieler zubewegt. Und sobald es den Spieler trifft, wird das Spielobjekt zerstört. Und wenn wir eine tiefe Schicht oder ein anderes Objekt hatten, das zerstört wird, aber wenn wir den Spieler speziell hatten, dann wird der Spieler getroffen oder auf die Konsole gelegt oder gedruckt. Also werde ich das speichern. Ich gehe wieder in meine zurück. Und mal sehen, wir werden das zu einem Prefab machen. Prefab. Ich klicke mit der rechten Maustaste und hier und erstelle einen Ordner, 40 Aufzählungszeichen. Und die Spielerkugel hier drin. Doppelklicken Sie hier hinein und legen Sie hier die Sortierung des fliegenden Skeletts fest. Ich lösche es. Lasst uns das aufheben. Und lasst uns weitermachen und das Spiel laufen und sehen, was passiert. Also, okay, wir haben den Haufen nicht geändert. Wir haben die tatsächlichen Spielerkugeln nicht geändert. Also los geht's. Lass uns dieses fliegende Skelett hinzufügen und das Spiel astron sortieren. Und wie Sie sehen können, passiert nichts, weil sich das Aufzählungszeichen auf den falschen Sortierebenen befindet. Auf der feindlichen Sortierschicht sollten wir das jetzt retten. Wenn wir jetzt rennen, sollten wir es tun. Ja, da sind wir los. Sie können sehen, dass diese Art auf den Spieler zufliegen. Und als wir den Player hatten, haben wir nichts auf der Konsole ausgedruckt. Warum ist das so? Nun, lasst uns nachsehen, wird das speichern. Also habe ich den wichtigsten Schritt vergessen und was Sie bei der Herausforderung hätten tun sollen. Ich nehme an, dass Sie wissen, was zu tun ist und welche Herausforderung ist, weil wir nach dem Spielertag suchen, aber anscheinend nach dem Gedächtnis, ist das nicht großartig? Das Problem hier ist also, dass wir den Spieler, den Spieler, nicht auch markiert haben. Wie Sie sehen können, haben wir das Tag bereits hier. So großer Fehler, keine Sorgen darüber. Wir leben, wir haben gelernt, wir wenden unsere Änderungen an. Wir speichern das alles, wir führen das Spiel aus. Und jetzt sollten wir sehen, dass du da gehst. Sobald der Spieler sortiert hat, haben wir, wurde der Spieler getroffen und du kannst ihn mehrmals sehen und hier 4, 5 usw. Was ich dir zeigen wollte ist, wenn ich den Spieler bewege, die Schwerter, die bereits in Richtung der Spieler wird sich nicht ändern. Also los gehst du. Du kannst sehen, dass jetzt sortiere dem Spieler folgt, während er sich bewegt und können wir ihn zerstören? Ja, das können wir. Wenn Sie möchten, können Sie eine weitere Ebene hinzufügen, die die feindliche Kugelebene ist, und sicherstellen, dass die Kugeln des Spielers nicht mit dem Kugelfeind interagieren. Das ist deine Entscheidung. Welche Spielmechaniken hast du in deinem Spiel? Tun Sie das, wenden Sie es an? Ich würde es gerne sehen, wenn du es mir zeigst. Und war das keine, ich hoffe es gefällt dir. Ich hoffe, du begehst deine Änderungen in jedem einzelnen Video. Und im nächsten werden wir dem feindlichen Schießen eine Reichweite hinzufügen , damit wir unser ICH nicht von überall auf der Karte aus sichern wollen, wo wir eine Reichweite haben wollen, in der der Feind uns erschießen kann. Also sehe ich dich dann. 31. Feinde Shooting: Willkommen zurück, meine Spieleentwickler. In diesem Video haben wir einen Schießstand hinzugefügt . Es ist ziemlich einfach. Wir haben das schon gemacht. Du kannst jetzt sehen, dass der Feind uns nicht mehr erschießt , es sei denn, wir halten in diesem roten Kreis an. Wenn wir Sachen reinmachen, fängt er an, seine Pfeile zu werfen. Wenn wir draußen sind, wirft er sie nicht. Verschwenden wir jetzt keine Zeit mehr. In diesem Video geht es nicht nur darum, den Bereich zu erstellen. Wir hatten auch ein Extra, nennen wir es Lektion. Und hier ist ein zusätzlicher Punkt zu schaffen. Wir nutzen das Wissen über unsere Methoden. Verschwenden wir also keine Zeit mehr Reden und lasst uns anfangen. Oh, okay, also Zeit, unserem Feind einen Schießstand hinzuzufügen. Aber bevor wir das tun, müssen wir uns um eine Sache kümmern, und das ist, dass das Schwert nicht zerstört wurde, als es einen Auslöser traf. Und du denkst vielleicht nach, warum passiert das? Obwohl wir die feindliche Kugel am Auslöser haben , funktioniert alles. Es gibt ein kleines Detail, dass ich dir hätte sagen sollen, dass ich den Fehler gemacht habe. Wir brauchen hier einen starren Körper 2D, aber wir müssen ihn kinematisch machen. Jetzt, wenn das fliegende Salz bis zum Ende einen starren Körper hat Is Kinematic, wird es zerstört, wenn es auf eine Wand trifft, die aus dem Weg ist wird es zerstört, wenn es auf eine Wand trifft . Entschuldigen Sie, dass ich das nicht gesagt habe, bevor ich Ihnen gesagt habe , dass Sie keinen starren Körper haben sollten. Das sollten wir, aber es sollte kinematisch sein. Also lasst uns weitermachen. Was brauchen wir? Wir müssen die Möglichkeit haben, den Spieler nur in einem bestimmten Bereich zu zeigen . Wie machen wir das? Indem du dir eine Herausforderung stellst? Und Ihre Herausforderung besteht darin, einen Schießstand mit Farbe zu schaffen . Erstellen Sie also eine Float-Variable für den Schießstand. Bevor wir schießen können, stellen Sie sicher, dass wir uns im Schießstand befinden, indem Sie den Abstand zwischen dem Feind und dem Spieler überprüfen den Abstand zwischen dem Feind und und ein Gelb zeichnen. Ich bin mir nicht sicher warum ich das Gelb gesagt habe , weil wir bereits Gelb haben. Wählen Sie die gewünschte Farbe aus und stellen Sie sicher , dass dies der Schießstand ist. Stellt sicher, dass der Feind nicht schießt es sei denn, der Spieler befindet sich in diesem Schießstand. Also pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Also gehe ich in den feindlichen Controller. Und wo schießen wir? Da sind wir los. Dies ist die Zeit zwischen den Schüssen. Und lasst uns weitermachen und hinzufügen. Ich denke, das ist ein guter Ort, um es hinzuzufügen. Also werde ich ein serialisiertes Feld erstellen, das ein Float sein wird, und es wird der Schießstand sein. Spar dir das auf. Und dann scrolle ich hier nach unten. Ich werde prüfen, ob wir kein männlicher Angreifer sind und wir bereit sind zu schießen, dann werde ich hier weiter gehen, bevor wir nach der Bedingung suchen, eine Variable erstellen, die der Schwimmer sein wird. Oder wissen Sie was, lassen Sie uns keine zusätzliche Variable erstellen. Lasst es uns einfach hier reinlegen. Wir fügen eine weitere Bedingung hinzu. Und diese Bedingung wird sein, dass ein Vektor drei und den Abstand zwischen der zu jagenden Ebene berechnen . Dort verfolgen wir den Spieler, um Punkt-Transformationspunktposition zu jagen . Und wir werden nach der Transformationspunkt-Position des Feindes suchen . Und wenn es weniger als der Schießstand ist , werden wir mit der Bedingung beginnen. Jetzt ist dir aufgefallen, dass diese Linie ein bisschen lang ist. Was wir also tun können, ist einfach das zu gehen, drücken, hier rein, Enter zu drücken. Jetzt sind sie also in getrennten Zeilen. Wir können sie klarer sehen. Wenn du willst, kannst du sie in derselben Zeile halten. Und dies ist eine bessere Art, die Bedingungen zu betrachten. Wir können das auch hier hinzufügen, damit wir alles wissen. das erledigt ist, werden wir oh retten, und wir müssen am längsten zeichnen. Also werde ich diese beiden Zeilen duplizieren. Und ich werde die Farbe nicht gelb machen. Lass es uns blau machen. Und das wird der Schießstand sein. Spar das wieder in unserem Spiel auf. Lass uns den Feind sehen. Was soll der Schießstand sein? Natürlich hängt es davon ab, wie das Spiel aussehen wird. So können Sie zum Beispiel den Schießstand etwas größer machen , aber vielleicht möchten Sie vielleicht dass die Verfolgungsjagd des Spielers so in der Nähe ist. Der Feind muss den Spieler vielleicht ein wenig jagen. Und wenn er in der Reichweite ist, fing er an zu schießen, oder wir können tun, was immer du willst. Es hängt von deinem Spiel ab. Fügt einfach die Folie hier hinzu, eingekreist als größer gekennzeichnet, speichere das, führe das Spiel aus. Und jetzt sollten wir sehen , dass der Feind erst schießt, wenn wir eine Reichweite haben. Also los geht's. Er fängt an, auf den Spieler zu schießen. Wenn wir ausgehen, schießt er weiter? Keine Bezahlung, nicht. Er hört auf. Wir sind in seinen Früchten. Wir sind draußen. Er hört auf zu schießen. Okay, großartig. Damit wir arbeiten, glaube ich, dass wir noch ein bisschen Zeit haben und wir werden diese Zeit nutzen, um alles zu arrangieren , was wir hier haben. Was ist also das Problem? Man sieht, dass alles funktioniert. Wir haben keine Fehler. Aber der Code ist sehr API. Sie können genau hier sehen, dass wir dieses Update haben und dieses Update viel macht, und das ist nicht etwas, was wir wollen. Und der Spieler, du kannst den Spieler-Controller sehen. Wir haben viele Codezeilen und sie sind chaotisch. Was passiert hier drin? Was machen wir? Sollten wir einen Schritt machen, um zu wiederholen, was hier passiert? Also werden wir dies natürlich beheben, indem wir unser neu gewonnenes Wissen über das Erstellen von Methoden erstellen oder verwenden. Was wir tun können, ist zum Beispiel, sagen wir mal, wo läuft der Spieler? Das ist also die Bewegung, die wir normalisieren, wir geben Geschwindigkeit. Von der ersten Zeile bis zu dieser Linie bewegen wir den Spieler. Lasst uns weitermachen und all diese auswählen. Ich wähle diese Zeilen aus. Ich klicke mit der rechten Maustaste. Und Sie können genau hier sehen, dass wir die schnellen Aktionen und Refactoring haben . Wenn ich darauf klicke, können Sie sehen, dass es uns die Möglichkeit gibt , eine Methode zu extrahieren. Ich klicke auf Methode extrahieren und jetzt hast du eine neue Methode. Wie willst du es nennen? Nennen wir es den bewegten Spieler. Drücken Sie Enter. Jetzt können Sie sehen, dass alle Zeilen weg sind, aber sie sind in dieser kleinen raffinierten, sehr praktischen Methode hier unten gespeichert . Jetzt wissen wir, dass wir damit beginnen, den Spieler zu bewegen , und dann haben wir all das. Also was passiert hier drin, die Mausposition und der Bildschirmpunkt, wir berechnen den Versatz , wir bekommen den Winkel, wir drehen den Arm und dann prüfen wir, ob wir aus einer Richtung gehen sollen der nächste. Was haben wir sonst noch hier drin? Lassen Sie uns zuerst die Schießerei trennen. Also trennen wir die Schießerei. Und wie nannten wir das den bewegten Spieler. Und nennen wir das den Layer Shooting Enter. Das nennt man so anstatt den Spieler zu bewegen. Das nennt man das, natürlich der Spieler bewegt und kontrolliert RR. Und wie wollen wir uns trennen? Wir können dies den Player animieren nennen, wenn wir wollen. Und wir können das nennen , indem wir den Spieler in die richtige Richtung setzen. Und das wird es sein. Aber wie sollen wir das zum Beispiel nennen? Ehrlich gesagt basiert dies alles auf Ihren Vorlieben. Wie willst du es schaffen? Also nenne ich das mit der rechten Maustaste. Und es nennt sich „Pointing“. Zeigen Sie auf unseren Fall. Offensichtlich kann man hier sehen, was passiert ist. Wir haben diese äußerste Position und einen anderen Schrei Punkt. Das bedeutet, dass wir diese Werte zurückgeben. Warum geben wir sie zurück? Während? Weil wir den Bildschirmpunkt woanders in unserem Code verwenden. Das heißt nur, bewerben Sie sich vorerst, doppelklicken Sie auf den Stream-Punkt und los geht's. Sie können sehen, dass wir die Mausposition und den Bildschirmpunkt in diesem If-Zustand verwenden . Aber wir berechnen es innerhalb des Punktes beim Zeigen. Ich habe den Namen nicht geändert. Sie können also sehen, dass wir hier berechnet haben , und hier brauchen wir es. Also erstellen wir das heraus, aber ich will das nicht. Ich fühle es ist ein bisschen schlimm. Ups. Zu viel. Steuere Z, Layer. Bewegen Sie Enter. Das sparen wir. Jetzt lasst uns fortfahren und all dies verwenden, klicken wir mit der rechten Maustaste. Und wie nennen wir diese riesige Methode? Wir werden es nennen, was machen wir hier drin? Richten Sie eine Waffe auf die Maus, auf Enter. Sie benötigen also den Namen der Methode , um zu beschreiben, was passiert. Und schließlich können wir sagen, dass dies die Methode zum Extrahieren des Players animiert. animierende V-Spieler traf Enter und whoa, was für ein großer Unterschied gerade ernsthaft auf das Update geschaut hat, wie sauber es jetzt ist, wir wissen, dass der Spieler sich bewegt. Er richtet die Waffe auf die Maus. Wir animieren den Spieler und der Spieler schießt. Und vielleicht können Sie sogar eine zusätzliche Methode innerhalb der Zeigepistolen extrahieren eine zusätzliche Methode innerhalb der , um sie noch sauberer zu machen. Denn zum Beispiel, was wir hier machen, ist, dass wir den Spieler in die richtige Richtung drehen oder zeigen. Sie können diese beiden Methoden sogar extrahieren dies sogar sauberer machen. Ihre Zeit als Herausforderung werde ich Ihnen also die Freiheit geben, die Methoden im NMI-Controller zu extrahieren. Und wir sehen uns im nächsten Video, in dem ich das schon gemacht haben werde. Vielleicht zeige ich dir was du willst. Mach es selbst, viel Spaß. Es gibt keinen Druck hier drin. Habe einfach diese Praxis , Dinge alleine zu machen. Natürlich zeige ich Ihnen die Ergebnisse später, aber ich hoffe, es gefällt Ihnen und wir sehen uns im nächsten Video. Vergiss niemals, deine Änderungen zu übernehmen. Mein Körper. 32. Spieldesign: Willkommen zurück, meine zukünftigen Spieleentwickler. Warum habe ich diesmal Futures gesagt, nicht als die regulären Worte, die ich sage. Nun, denn dies ist das Video, in dem Sie entscheiden, ob Sie ein echter Spieleentwickler werden möchten oder einfach nur die Schritte ausführen möchten, die ich mache. Weil dieses Video, alles, was wir tun, extrem einfach. haben wir schon gemacht. Wir haben schon alles gemacht. Es gibt nichts Neues zu lernen. In diesem Video geht es darum, Ihre Fantasie einzusetzen und die Muskeln der Spieleentwickler zu trainieren, die Sie haben. Ich habe dir die ganze Zeit gesagt, dass du deine eigene Kreativität und das Spiel hinzufügen musst. Bis zu diesem Punkt hast du immer dem gefolgt, was ich getan habe, zu 100%. Dies ist die Zeit, um über verschiedene Möglichkeiten nachzudenken, die Sie verwenden können, oder verschiedene Spieldesigns, die Sie in Ihrem Spiel verwenden können. also ohne weiteres Verschwenden wir also ohne weiteres keine Zeit mehr und lasst uns anfangen. Hey, willkommen zurück. In diesem Video dreht sich alles um das Design von Gangs. Es wird nicht sehr lang dauern. Es wird nur ein Beispiel dafür sein, wie Sie Ihren Gewinn gestalten möchten. Offensichtlich wissen Sie jetzt bereits, dass Sie sehen können, dass wir, wenn der Feind auf uns schießt, wenn Sie näher kommen , seine Kugeln jedes Mal abschießen können, wenn der Feind auf uns geschossen wird. Okay, Großartig. Das ist gut genug. Aber was ist, wenn die Zeit zwischen den Schüssen ist, sagen wir noch einmal 0,1 aus dem Spiel. So können Sie jetzt sehen, dass sich die Kugeln des Feindes selbst zerstören. Warum? Weil wir die Layer so eingerichtet haben. Und noch etwas, wenn wir weitermachen und versuchen, es wieder an einen zu verkaufen, okay, also schießt der Feind Pfeile. Mal sehen, was passiert. 0 mal 0, 0 weiß, hier drin wählen wir den Feind aus. Wenn wir sie setzen, können Sie jetzt sehen, dass der Feind anfängt, sich selbst zu schießen. Da gehst du. Man sieht, dass die Kugel des Feindes ihn tatsächlich umbringt. Was ist der springende Sinn dieses Videos? Es geht darum, dir diese Herausforderung zu stellen. Und deine Herausforderung wird darin bestehen, eine feindliche Kugelschicht zu schaffen. Erstellen Sie also eine feindliche Kugelschicht, weisen Sie sie den feindlichen Kugeln oder den Kugeln zu, offensichtlich dem, was auch immer es ist, das Schwert oder vielleicht haben Sie Ihr eigenes geschaffen, ich weiß es nicht. Und dann entscheide, ob die gegnerischen Kugeln basierend auf deinem Spiel mit den Kugeln der Spieler interagieren sollen. Wenn du willst, dass die Feinde Kugeln den Feind töten. Wenn du willst, dass die anderen feindlichen Kugeln mit feindlichen Kugeln interagieren. So entscheidest du, wie dein Spiel aussehen soll. Vielleicht ist der Feind, sich selbst zu töten, wenn sie dämlich sind , eine gute Idee, den Realismus oder das Gefühl des Spiels besser zu verbessern , als dass die Kugel einfach durch den Feind durchquert. Vielleicht willst du nicht, dass deine Kugeln die feindlichen Kugeln zerstören. Dies wird Ihrem Spiel also ein herausfordernderes Gameplay hinzufügen. Nehmen Sie sich die Zeit, über alle Möglichkeiten nachzudenken, wie sich das Sure Spiel entwickeln kann. also das Halten Sie also das Video jetzt an, gehen Sie zur Herausforderung. Okay, willkommen zurück. Also füge ich hier eine Ebene hinzu, in die die feindlichen Kugeln eintreten werden. Geh zur Flanke, Skelett sortiert sich wie die feindlichen Kugeln. Gehen wir zum Edit. Lassen Sie uns die Projekteinstellungen überprüfen. Die feindlichen Kugeln sollten nicht mit den feindlichen Kugeln interagieren, und die feindlichen Kugeln sollten nicht mit dem Feind interagieren, aber wir haben keine feindliche Schicht. Nun, lasst uns weitermachen und hinzufügen, wenn ich den Feind überprüfe, sollte dies der Skelettfeind sein. Geben Sie ein. Lass uns weitermachen und ihn fertigmachen. Lass uns einen neuen Ordner für die feindlichen Prefabs erstellen. Weil du vielleicht später einfach noch einen erstellen willst. Da gehst du. Lassen Sie uns seine Ebene als die Ebene festlegen, okay, wir haben die Ebene nicht erstellt. Der Feind traf Enter. Wähle den Typ aus. Und lasst uns ihn ja machen, Kinder ändern, speichern Sie das Spiel, führen Sie das Spiel aus. Also, wenn unser Skelettfeind eine Zeit zwischen Schüssen von 0,1 hat und mal sehen, wie das aussieht. Da gehst du. Er schießt viele Kugeln und sie zerstören sich nicht selbst. Sie sind hässlich, aber sie zerstören sich nicht selbst. Das heißt, lasst uns das für eine Sekunde beenden. Behalte das auf eins. Erhöhen Sie vielleicht die Reichweite des Feuers. Also ihre Fallreichweite, wo ist der Schießstand? Da sind wir los. Erhöhen Sie es ein bisschen. Ich würde den Spieler nicht in die Reichweite bringen. Und ich wähle das aus, wo ist er der Feind? Ich bringe ihn vor die Kugeln. Also zerstört er sich selbst mit den Kugeln z. Okay, also ist er es immer noch. Also müssen wir hinzugefügte Projekteinstellungen hinzufügen. Und der Feind interagiert nicht mit den feindlichen Kugeln, oder vielleicht interagiert der Feind nicht einmal mit dem Feind. Also geht es an dich, was sind deine Präferenz? Ich habe dir gesagt, dass du deine eigene Kreativität und das Spiel hinzufügen wirst. Dies ist die Zeit, wenn du immer noch nichts getan hast, mach etwas anderes als ich. Versuchen Sie ständig, die Herausforderungen zu meistern. sicher, dass Sie jedes Mal Ihr Bestes geben, wenn Sie Code erstellen , der besser ist, als meiner nicht bekommt. Manchmal bekomme ich Vorschläge, Vorschläge von Studenten, die unglaublich sind und Dinge, die mir noch nicht einmal aufgefallen sind. Also empfehle ich immer, dass du damit dein Bestes gibst. Ich hoffe es gefällt dir. Wenn Sie noch keine Bewertung hinterlassen haben, tun Sie mir den Gefallen, machen Sie die Überprüfung und stellen Sie sicher, dass Sie Ihre Änderungen immer übernommen haben. Es hilft mir sehr, wenn Sie eine Bewertung abgeben und alle wissen lassen , dass dies ein guter Kurs ist. Es lohnt sich anzuschauen. Ich hoffe, es gefällt Ihnen und wir sehen uns im nächsten Abschnitt, vielleicht beginnen wir, das Gesundheitssystem einzurichten, wenn ich mich nicht irre. Das heißt, wir sehen uns im nächsten Video und Abschnitt. 33. Abschnitt 5: Räume – Einführung in die Tilgung: Willkommen zurück meine Spieleentwickler. Und wie Sie zum ersten Mal sehen können, , anstatt voranzukommen, wir zurückgezogen, anstatt voranzukommen, und wir haben keinen Hintergrund mehr. Wir haben einfach diese seltsame Welt vor uns. Mach dir darüber keine Sorgen. Wir haben die richtigen Tools, um dieses Problem zu lösen. Wie Sie jetzt sehen können, haben wir nicht nur einen Hintergrund, sondern können auch unseren eigenen Hintergrund zeichnen. Ich kann hinzufügen, was ich will. Ich möchte dieses und unsere Welt hinzufügen. Nee Weg. Ich füge diesen hinzu und es ist derzeit nicht perfekt, aber es funktioniert. Also werde ich zum Beispiel dabei sein und lass es uns vor Ort schaffen. Da gehst du, mit etwas blauem Raum dahinter, aber keine Sorge, das werden wir später beheben. Aber jetzt lassen Sie uns verstehen, wie wir Sprites umwandeln und Assets in Gallenpaletten umwandeln, um sie, wie Sie sehen können, äußerst professionell auf dem Bildschirm zu zeichnen . Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Oh, okay, jetzt haben wir einen soliden Spieler, wir haben einen soliden Feind. Wir haben Aufzählungen, wir haben Ebenen, Wir haben Effekte, wir haben Animationen, wir haben alles. Was wir nicht haben, ist die Kontrolle über die Kreativität unseres Spiels. Derzeit befindet sich alles, was wir erstellt haben, nur auf diesem Hintergrund. Es ist gut genug. Wir haben die Boxgleiter, wir haben alle Grenzen drauf, aber es reicht nicht. Was ist, wenn wir unser eigenes Level schaffen wollen? Offensichtlich können wir nicht einfach nach verschiedenen Hintergründen suchen. Das machen wir in diesem Video und in diesem gesamten Abschnitt. Klicken wir nun auf das Kachelset. Ich habe einen Ordner innerhalb der Sprites erstellt, der als Stapelsatz bezeichnet wird. Ich gehe auf die Ressourcen ein und benutze die Katakomben. Wenn Sie ein anderes Kachelset verwenden möchten, empfehle ich Ihnen natürlich , einige Recherchen über offene Spielekunst durchzuführen und Ihre eigenen hinzuzufügen. Also los geht's. Jetzt haben wir den Ordner hinzugefügt. Wenn ich das öffne oder vielleicht sollte ich es von hier aus öffnen und dir ein paar Dinge zeigen. Sie können also sehen, dass wir diese Kerzen haben, wir haben ein Sprite. Los geht's. Du siehst, dass das das Sprite ist. Es ist genau derjenige, der im Hintergrund verwendet wird. Und tatsächlich habe ich einen erstellt, dann einen Screenshot benutzt und ihn zu einem Hintergrund gemacht. Aber jetzt lernen wir, wie man diese Quadrate benutzt, um eine Map zu erstellen. Wir haben auch die Dekorationen, und ich habe dich verlassen, sagen wir Screenshots oder Bilder und die Ressourcen, die du sehen kannst, um zu sehen, wie die Welt erschaffen wird. das machen, ohne weiter oder Wie werden wir das machen, ohne weiter oder zu tun? Das erste ist, dass wir ins Fenster gehen. Wir werden in 2D gehen. Und Sie können genau hier sehen, dass wir etwas haben, das als Kachelpalette bezeichnet wird. Also klicke ich darauf und füge es hier hinzu. Und was ist die Fliesen-Palette? Nun, es ist das Werkzeug, das Unity hat, das es uns ermöglicht, verschiedene Arten von, sagen wir diese Sprites oder die Kacheln oder die Kachel-Assets zu zeichnen . Und vielleicht bist du verwirrt. Was werden wir tun? Wie werden wir dieses Bild genau hier und zwei Kacheln konvertieren und anfangen zu beitreten? Nun, lass mich mit meinem raffinierten Laser erklären. Als erstes haben wir das Spritesheet. Du hast das gesehen, du hast bemerkt, als ich dir gezeigt habe, dass wir das Sprite-Blatt haben. Was wir tun werden, ist, dass wir die Tabellenkalkulation aufschneiden. Und wir werden Scheiben von diesem Sprite-Blatt haben. Nachdem wir die Slices haben, werden wir sie in Kachel-Assets umwandeln. Und nachdem wir sie in Kachel-Assets umgewandelt haben, werden wir sie in unserer Kachelpalette haben. Sie lösen also einfach die Kachelpalette, die ich gerade hinzugefügt habe. Sie werden es auch in ein bisschen sehen, wenn wir unser Sprite und in dieses umwandeln. Und schließlich zeichnen wir sie und fügen den Feind hinzu und erschaffen alle möglichen coolen Dinge. Bevor ich fortfahre, möchte ich Ihnen jetzt nur die Herausforderung zeigen. Das sollte ich nicht, aber ich werde es tun, weil es hier den ersten Schritt gibt, der wichtig ist , welche anderen Sprites und Kacheln Sie für Ihren Gewinn verwenden möchten. Wenn Sie also die Katakomben nicht mögen, ist es vielleicht nicht Ihr Stil, es ist nicht Teil Ihres Spiels. Vielleicht haben Sie verschiedene Spieler Feind ist, dass Sie eine andere Umgebung benötigen. Ich empfehle das wahr. Geh und suche nach 2D-Sprites. Vielleicht habe ich, ich weiß nicht, eine futuristische Sci-Fi-Stadt. Vielleicht kannst du deine eigenen erstellen, wenn du so gut bist, dann musst du sie vergrößern. Und schließlich zur Kachel-Palette hinzugefügt und dein neues Set erstellen. Ich werde nicht sagen, pausiere das Video, weil du los gehst. Es ist ziemlich einfach. Dies ist die Anleitung der Herausforderung. Ich mache es vor dir. Als erstes müssen wir diese Kachelkarte aufschneiden. Und das ist ein bisschen schwierig, denn manchmal erhalten Sie nicht die beste Qualität und müssen bestimmen, wie groß oder wie groß diese Slices sind. Wenn ich also versuche, automatisch zu machen, dann kannst du sehen, dass es irgendwie geschnitten ist, aber ich kann zum Beispiel keinen Teil davon oder ein kleines Quadrat aus diesen Teilen hinzufügen . Was ich also tun muss, ist, dass ich fortfahren muss und anstelle des automatischen Rasters nach Zellengröße wählen muss. Und ich werde benutzen, lasst uns zuerst 64 von 64 versuchen. Wenn ich das in Scheibe schneide, geht's los. Sie können jetzt sehen, dass wir ausreichende Scheiben haben, aber sie sind nicht gut genug, denn sagen wir, ich möchte das zeichnen, ich muss diese vier Scheiben auswählen und Sie sehen, dass dieser nicht allein ist. Ich muss mich für diese beiden entscheiden. Also müssen wir es noch kleiner machen. Und ich weiß die Größe. Es sollte, glaube ich, 16 von 16 sein. Und wenn ich es aufschneide, los geht's. Sie können sehen, dass ich viel mehr Kontrolle darüber habe, wie das alles funktioniert. Und du kannst sehen, wie dieser in Scheiben geschnitten ist, wie all diese aufgeschnitten sind. Sie sind gut genug, nicht perfekt, aber sie sind gut genug, ich glaube, wenn Sie die Fähigkeiten haben, können Sie sie vielleicht selbst hinzufügen. Schau was funktioniert, sieh was nicht. Aber ich empfehle Ihnen, alle 16 bis 16 zu behalten und Sie werden sehen warum in nur ein bisschen. Also werde ich das anwenden. Und wenn Sie Ihre eigenen Sprites heruntergeladen haben, müssen Sie natürlich Ihre eigene Größe des Slicings finden. Und aus irgendeinem Grund ist die Einheit heute extrem langsam. Also habe ich die Änderungen übernommen, ich habe alles aufgeschnitten. Wenn ich jetzt aus dem Sprite Editor gehe, los geht's. Sie können alle Kacheln sehen. Was ist der nächste Schritt? Der nächste Schritt besteht darin, sie zur Kachelpalette hinzuzufügen. Jetzt haben wir alles aufgeschnitten. Der nächste Schritt besteht darin, die Kachel-Assets zu erstellen und sie in der Kachel-Palette zu haben. Was ich also tun werde, ist, dass ich diese aufgeschnittenen Sprite aufnehme und es ins Nichts ziehen werde. Wir müssen zuerst eine Palette erstellen. Wie lautet der Palettenname? Nennen wir es einfach die Hauptkatakomben. Katakomben, so schreiben wir Katakomben schaffen. Wo sollen wir das schaffen? Nun, Sie können es entweder in den Sprites hinzufügen oder Sie können hier ein neues Asset erstellen, bei den Dateisatz oder die Kachelpalette handelt oder wie auch immer Sie es nennen möchten, geben Sie den Ordner ein, wählen Sie den Ordner aus und los geht's. Jetzt kannst du das ziehen. Sie können also das gesamte Bild ziehen, ziehen Sie es also in die Kachelpalette genau hier. Wo willst du es speichern? Natürlich ist dies auch Ihre Wahl, aber ich werde es tun, wenn ich in die hier eingestellte Kachel gehe, und ich nenne dies den Ordner „Datei-Assets“. Und lasst es uns einfach in den Sprites behalten, weil wir es bereits ignoriert haben. Und ich denke, es ist besser, die Kachelsets zu ignorieren , weil sie bereits von den Sprites abhängig sind. Es hängt also von dir ab. Wenn Sie sie behalten möchten, wenn Sie etwas mehr Ressourcen in Ihren Commits zuweisen möchten, empfehle ich Ihnen, dies zu tun. Wenn nicht, wähle ich diesen Ordner aus. Und jetzt können Sie sehen, dass die Sprites in Kachel-Assets umgewandelt werden. Also nutze ich die Macht der Bearbeitung und mache das in einer Sekunde. Oh, okay, willkommen zurück. Jetzt haben wir alles eingerichtet. Wenn ich diese Kachelpalette ein bisschen größer mache, dann kannst du sehen, dass alle Sprites, die anfänglich hier waren, gerade sind. Hier. Jetzt sind Sie hier möglicherweise auf viele Probleme gestoßen, besonders wenn Sie versuchen, etwas anderes als 16 von 16 zu tun, werden Sie feststellen, dass sie alle übereinander liegen. Es ist ein bisschen schwierig, es in den Griff zu bekommen. Was ich empfehle, ist, dass immer alle Sprites gleich groß geschnitten sind, damit Sie keine Verwirrung haben und das gesamte Bild ziehen, nicht alle einzelnen 11 nach dem anderen. Jetzt haben wir das. Wie fangen wir an zu zeichnen? Nun, Sie können sehen, dass wir eine Palette haben, wir haben die Assets, aber die aktive Dateizuordnung ist nichts. Was wir also tun werden, ist, dass ich hier mit der rechten Maustaste hineinklicke und gehe in das 2D-Objekt. Also habe ich die Hierarchie für die Objekte ausgewählt und Sie können sehen, dass ich die Möglichkeit habe, eine Kachelzuordnung zu erstellen. Und ich habe viele Möglichkeiten. Ich kann isometrisches, rechteckiges x, ordinal und so weiter erstellen . Aber ich werde eine rechteckige Stapelkarte erstellen. Und du siehst sofort, dass ich hier eine aktive Kachelmap habe. Und was ich tun kann ist, dass ich das tatsächlich duplizieren kann und eine zweite Kachelzuordnung habe. Und ich kann es zum Beispiel den Boden nennen. Und ich kann das die Wände nennen. Und jetzt kann ich zwischen Wänden und Boden wählen. Und warum ist das wichtig? Denn später werden wir verschiedene Level für unser Spiel benötigen. Das wirst du im nächsten Video sehen, wenn wir anfangen, Collider hinzuzufügen und so weiter. Aber im Moment, was wir tun werden, speichern wir die Beispielszene. Und ich gehe in den Szenenordner. Und Sie können sehen, dass dies die Beispielszene ist. Ich nenne das vielleicht einen Test oder so oder du kannst es Level eins nennen, was immer du willst. Ich nenne es das Beste. Es wird uns auffordern, neu zu laden. Erneut laden. Ich gehe zu mir bin mir nicht sicher. Lasst uns das Raster genau hier behalten. Und das werde ich duplizieren. Jetzt haben wir dieses Tool. Lass uns in Test2 gehen. Sie können sehen, dass der Name der Szenenänderung angezeigt wird, also war es Test eins. Jetzt sind es zwei. Ich lösche den Hintergrund. Jetzt schweben der Spieler und das Skelett gerade in der Luft. Und was wir jetzt tun werden, ist, dass ich das Raster auswähle, ich werde vorerst den Boden wählen. Lasst uns alles auf dem Boden behalten und ich fange an zu zeichnen. Was sollten wir also als Boden benutzen? Sie können sehen, dass dies der ist, und ich empfehle Ihnen, sich die Bilder anzusehen. Ich habe dir die Beispiele hinterlassen, denen du folgen kannst. Aber im Moment werden wir zuerst den Boden ziehen. Wir können jetzt aus einem von diesen wählen, offensichtlich ist es nicht ganz richtig. Aber keine Sorge. Sprechen wir über ein paar Tools, die wir hier haben. also zunächst sicher, dass Sie wissen, auf welcher Kachelkarte Sie sich befinden, wann immer Sie auswählen möchten. Du wirst im nächsten Video wissen warum. Warum ist das so wichtig? Wähle eine der Kacheln. Also wähle ich diese vier aus. Und jetzt sieht man, dass ich hier einfach reinklicken kann, aber sie sind sehr klein. Was wir also immer tun, gehen wir zum Kachelset, gehen zu dem Bild, das wir verwendet haben. Und wir werden den Inspector beenden. Lass uns 50 machen. Wenden Sie die Änderungen an. Mal sehen, wie groß das wird. Okay, also reicht es nicht. Lass uns 16 machen. Wenden Sie die Änderungen an und diese sollten das gesamte Quadrat ausfüllen. Okay, los geht's. Also ändern wir das Pixel pro Größe. Pixel pro Einheit, vielleicht sogar, wir sollten sie noch größer machen, weil Sie genau hier sehen können, es eine kleine dünne blaue Linie gibt, die wir nicht wollen. Also lasst es uns um 15 schaffen. Wenden Sie die Änderungen an. Und da sind wir los. Jetzt haben wir keine dieser Umrisse mehr. Okay, großartig. Stellen wir sicher, dass es sich um Punktfilter handelt. So werden sie viel knuspriger. Okay, los geht's. Jetzt zurück in der Kachel-Palette, zoomen wir heraus. Was haben wir hier drin? Wir haben den Boden, wir haben die verschiedenen Kacheln und wir lassen die Werkzeuge erscheinen. Wenn Sie also den Mauszeiger darüber bewegen, können Sie sehen, was jedes dieser Tools bedeutet. Diese für die Auswahl, diese kann für den Umzug verwendet werden. Aber die wichtigsten drei, glaube ich, ist der Pinsel. Also der Pinsel, wie funktioniert es? Also, was auch immer du willst, du bekommst den Pinsel und jetzt kannst du ihn hier zwischen den Quadraten in deiner Szene malen . Zum Beispiel können Sie auch diese Farbe verwenden, eine gefüllte Schachtel. Was Sie also tun können, ist, dass Sie eine davon auswählen können oder offensichtlich mehrere auswählen können. Und dann kannst du diese Art von Look erstellen, kannst diese ganze Karte mit diesem erstellen. Es ist also ein sehr mächtiges Werkzeug, um schneller zu zeichnen. Also los gehst du, du kannst sehen, du kannst viel mehr erstellen, viel schneller, aber es ist nicht sehr präzise. Was haben wir dann sonst noch? Wir haben den Peak oder das Festzelt auswählen. Ich habe es nie ehrlich benutzt, die Flut hat es nie benutzt. Und die Arrays, was sehr wichtig ist. Wie macht man das? Sie haben genau wie die Arrays und wenn Sie möchten, können Sie ein großes Quadrat auswählen, den Radiergummi auswählen und los geht's, Sie können alles entfernen. Da das erledigt ist, hoffe ich, dass Sie verstanden haben, was wir getan haben. Ich hoffe, Sie haben verstanden, wie wir von den Sprites in das Slice, zu den Kachel-Assets in die Kachel-Palette konvertiert zu den Kachel-Assets in die Kachel-Palette haben. Und schließlich wie wir die Kachelmap erstellen. Aber im Moment überlasse ich dich deiner eigenen Kreativität. Halten Sie also das Video jetzt an und versuchen Sie , eine Stapel- oder Kachelzuordnung oder eine beliebige Map zu erstellen. Aber nehmen Sie sich vorerst nicht zu viel Zeit, denn im nächsten Video werden wir zwei verschiedene Kachelkarten erstellen. Und mit diesen Kachelkarten werden wir verstehen, warum wir verschiedene Kachelkarten für verschiedene Ebenen benötigen. Und noch einmal, damit keine. Ich hoffe es gefällt dir und wir sehen uns im nächsten Video. 34. Tilemap: Hey, willkommen zurück, meine Spieleentwickler. Wie Sie sehen können, was ich Ihnen versprochen habe , werden wir es ein bisschen besser machen. Ich habe mein Versprechen eingehalten. Wenn wir das Spiel ausführen, werden Sie feststellen, dass es keine blauen Flecken gibt, keine blauen Linien. Und wenn ich durchging, habe ich versucht, das durchzustehen. Es ist eine Mauer. Wenn ich hochgehe, ist es eine Wand. Offensichtlich haben wir ein paar Dinge, die wir ändern können. Wenn Sie im Szenenmodus genau hinschauen , ist es offensichtlich noch nicht perfekt, aber Sie können sehen, wenn ich eine Wand schieße, es ist eine Wand von hinten, von vorne, und der Feind jagt uns immer noch. Alles ist gut, alles funktioniert gut. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, Fall. Jetzt haben wir alles eingerichtet, um es richtig zu nutzen. Das erste, was wir verstehen müssen, ist die Kachelzuordnung und was der Inspektor dieser Kachelzuordnung macht. Also haben wir die Wände und den Boden erstellt, und Sie können sehen, dass sie auch haben, jede von ihnen hat eine Kachelmap-Komponente und einen Kachelmap-Renderer. Da der Kachelmap-Renderer genau wie der Sprite-Renderer funktioniert, können wir auch einen Layer auswählen. So kann ich zum Beispiel zu Boden gehen und den Ebenenhintergrund, die Wände und den Ebenenhintergrund auswählen . Und ich kann zum Beispiel die Wände eins und den Ground Zero machen. Du kannst herumspielen, wenn du willst. Sie können sogar eine eigene Sortierebene erstellen, je nachdem wie viele Dinge Sie im Vordergrund oder Hintergrund haben möchten. Also werde ich zuerst alles löschen oder alles löschen, sollte ich sagen? Also lösche ich alles und du kannst sehen, warum das nicht gelöscht wird. Lassen Sie mich den Bildschirm einfach vergrößern. Warum bekommt das keine Gehaltserhöhung? Nun, weil wir benutzen wo ist es? Die aktive Kachelmap ist der Boden. Wir können also nur Dinge löschen, die sich vor Ort befinden. Wenn ich die Wände wähle. Da gehst du. Ich kann es jetzt löschen, denn als ich das erstellt habe, habe ich Wände benutzt. Also lasst uns einfach einen kleinen Test machen. Jetzt, da wir die Sortierebenen eingerichtet haben, werde ich genau hier dieses große Quadrat erstellen, das heißt, uchen, nicht der Boden, entschuldigen Sie mich, der Boden. Und jetzt schaffe ich diesen kleinen Boden genau hier. Und jetzt, wenn ich in die Wände gehe und lass uns das hinzufügen. Also erinnerst du dich, warum hatten wir vorher die blauen Linien? Weil wir diese Umrisse genau hier hatten. Man sieht, dass sie transparent sind, also spiegeln sie nur wider, was dahinter steckt. Also, weil das so sind, lass mich dieses hier anklicken. Also jetzt, denn das sind die Wände und die Wände werden vor dem Hintergrund gerendert. Wenn ich sie hierher lege, dann kannst du sehen, dass es keine blauen Linien mehr gibt , die die Farbe des Hintergrunds der Kamera darstellen. Ich kann das auch genau hier machen. Also wähle ich sie aus. Und du siehst, weil es Wände sind kann ich sofort darauf zeichnen. Aber Sie können jetzt zu Inkonsistenz sehen, wie zum Beispiel Dürre eine durchgehende dritte Wand und eine vierte Wand haben soll. Nun, in diesem Fall müssen wir etwas anderes auswählen, nämlich diese Zeilen genau hier. Und jetzt können wir die Illusion hinzufügen oder die Illusion schaffen, die wir haben. Lassen Sie mich einfach die Illusion erschaffen, dass wir diese alle miteinander verbunden haben. Und wenn du im Spiel schaust, wenn ich das Spiel führe , spielt es auch keine Rolle. Lassen Sie mich dieses Spielfenster einfach vergrößern. Da gehst du. Sie können sehen, wie das alles aussieht, sieht so aus, als hätten wir alles normal eingerichtet und wir können einfach das Spiel laufen und herumlaufen. Und dann gehst du, du kannst sehen, dass ich darüber hinaus herumlaufen kann. Alles funktioniert einwandfrei. Aber das Problem ist, dass ich jetzt durch die Wände gehen kann und das ist normalerweise kein großes Problem, aber wenn du deinen Spieler für immer verlässt , und wenn wir schießen, kannst du sehen, dass die Kugeln weitergehen werden für immer, weil sie mit nichts interagieren. Oder wir haben keine Wände mehr, sie interagieren nicht mit den Wänden. Wie werden wir das beheben? Nun, wir können weitermachen und anfangen, Collider und all das gute Zeug hinzuzufügen. Offensichtlich ist dies jedoch nicht die effizienteste Lösung zur Lösung des Problems. Was wir dagegen tun können, fügen Sie etwas hinzu, das als Kachelmap Collider bezeichnet wird. Wenn ich also an die Wände gehe, haben wir deshalb Wände geschaffen, nicht nur den Boden. Geh zum Inspector. Ich kann hier eine Komponente hinzufügen, die der Kachelmap Collider 2D sein wird . Und da gehst du. Man sieht, dass jetzt alles unter den Wänden den grünen Collider auf sich hat. Und Sie können sehen, dass sie sich kreuzen. Warum? Weil wir sie ein bisschen größer gemacht haben als wo ist das Bild? Da gehst du. Wir haben sie nur ein bisschen größer als 16 gemacht. Wir haben sie 15 gemacht. Wenn ich sie 16 mache, denke ich, dass wir zwischen jedem Sprite Risse sehen können. Jetzt weißt du was? Es sieht gut genug aus. Ich denke, es gibt keine Diskrepanz. Okay, also lasst es uns bei 16 behalten. Also habe ich die Pixel pro Einheit auf 16 geändert. Und wenn ich jetzt die Wände wähle, gibt es immer noch eine Kreuzung, aber das ist okay, das ist kein großes Problem. Lassen Sie mich einfach zeigen, dass das funktioniert. Wenn ich jetzt renne, siehst du, dass ich gegen eine Wand gestoßen bin und ich kann sie nicht mehr durchgehen. Hervorragend, alles funktioniert. Sie befinden sich auf der Standardebene. Sie können den Layer ändern, wenn Sie auch von jeder Kachelzuordnung möchten. Aber jetzt gibt es etwas, das wir hinzufügen müssen, das Hinzufügen dieses Segelflugzeugs reicht nicht aus. Was wir tun, ist, dass wir etwas hinzufügen müssen, das als Composite-Gleiter bezeichnet wird. Warum? Lass mich dir zeigen, wie das alles verändern wird und du wirst es selbst verstehen. Jetzt, da ich einen Composite Collider hinzugefügt habe, werden Sie feststellen, dass ich auch einen automatisch starren Körper hinzugefügt habe. Wenn Sie einen zusammengesetzten Collider haben, ist also ein starrer Körper erforderlich. Und wenn Sie genau hier im Kachelmap Collider schauen, können Sie sehen, dass wir etwas haben, das von Kompass verwendet wird. Wenn ich das anschalte, geht's los. Sie sehen, dass wir nicht mehr viele Segelflugzeuge haben. Das heißt, tun Sie das einfach noch einmal, deaktivieren Sie die USA durch Composite wird feststellen, dass wir viele Collider haben. Wenn ich den Composite verwende, haben wir nur einen Collider für alle Formen. Dies ist äußerst hilfreich. Ich kann nicht betonen, wie viel dies Energie und Rechenleistung aus unserer Rechenleistung spart . Dies ermöglicht es uns, einen einzigen Collider um viele verwickelte Segelflugzeuge herum zu schaffen. also sicher, dass Sie dazu einen zusammengesetzten Collider 2D hinzufügen. Verstanden. Jetzt ist es Zeit für eine kleine Herausforderung. Oder bevor wir das tun, möchte ich das Spiel nur ausführen, damit Sie vielleicht verstehen, was die Herausforderungen sind. Wenn ich das Spiel führe. Und da hast du, du kannst sehen, dass etwas definitiv ernsthaft diesen Teil deines Spiels macht, bei irgendeiner Art von Mechaniken des Spiels. Der Spieler spielt also mit dem Spiel und mit der Karte herum. Also hey, das, lassen Sie mich einfach ein bisschen herauszoomen, damit Sie sehen können, dass die Karte nicht ganz so verhält, wie sie sein sollte. Ich denke, das ist eine Untertreibung. Lass mich einfach versuchen, das abzuschieben und los geht's. Jetzt haben wir keine Karte mehr und sie fällt so gut, dass sie verstanden hat. Aus dem Weg, das Ding, von dem wir denken, dass ich das Problem nicht beheben würde, war die folgende Karte. Wenn Sie keine Hinweise haben möchten, wissen Sie, wie Sie das beheben können. Pausiere das Video jetzt und gehe zur Herausforderung. Wenn nicht, checken Sie den Inspektor auf der Kachelzuordnung ein, Sie sehen einen starren Körper. Dies bedeutet, dass uns eine Schwerkraft angewandt wird. Entfernen Sie entweder die Schwerkraftskala oder noch besser, Sie können das gesamte Objekt entweder kinematisch oder statisch gestalten. Ich würde statisch empfehlen, weil statisch bedeutet, dass es sich nie bewegen wird und sich unsere Map offensichtlich nicht bewegen sollte, wenn Sie, ich weiß nicht, die rotierende Map hinzufügen möchten . Seltsames, was wir gerade erlebt haben. Wenn das erledigt ist, pausiere jetzt das Video, mach den Chaldäer. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Ich werde weitermachen und während der starre Körper der Wände die Statik macht, führe das Spiel aus. Und jetzt sollten wir sehen, dass nichts mehr fällt und alle Collider einwandfrei funktionieren. Okay, wenn das erledigt ist, hoffe ich, dass es dir gefällt. im nächsten Video sicher, dass Sie eine Art Karte erstellen. Es sollte größer sein als die Kamera, weil wir ein Fallcamp einführen werden. Warum ist das also? Nun, wenn ich sagen, dass wir hier etwas mehr Boden hinzufügen, stellen Sie sicher, dass wir den Boden ausgewählt haben. Ich füge den Boden hinzu. Mal sehen, ob ich das zu einem riesigen Boden mache. Ich führe das Spiel aus. Ich möchte auf unserer Karte und Landebahn herumlaufen können, genau wie das Spiel, das wir am Anfang gesehen haben. Also möchte ich die Freiheit haben, herumzulaufen. Aber wenn ich im Spielmenü schaue, kann ich natürlich nichts sehen. Ich sehe es im Szenenmodus. Ich kann es in unserem Spiel nicht sehen. Warum? Da die Kamera genau hier sehen kann, lassen Sie mich nur das ist die Kamera, das ist die Hauptkamera, also müssen wir sie bewegen, damit wir dem Spieler immer folgen können. Und das ist etwas, das wir im nächsten Video lernen werden, wenn es um Cinema Cine geht Ich hoffe, es gefällt Ihnen, ich hoffe, Sie begehen immer Ihre Änderungen. Und ich hoffe, du hast eine Bewertung hinterlassen, weil es mir sehr hilft. Wir sehen uns im nächsten Video. 35. Einen größeren Raum erstellen (Cinemachine): Willkommen zurück, meine Spieleentwickler. In diesem Video haben wir getan, wenn wir unser Spiel ausführen, werden Sie feststellen, dass wir beim Herumlaufen den ganzen Raum durchgehen können und die Kamera uns immer wieder folgt. Und wir tun dies mit einer sogenannten Senatsmaschine, die ein äußerst leistungsfähiges Werkzeug ist, das wir in diesem Video implementieren werden. Verschwenden wir also keine Zeit mehr. Und lasst uns dieses Kino kreieren. Whoo, schau, wie cool das jetzt ist, unser Spiel ist viel, viel schöner, fühlt sich viel professioneller an, nicht wahr? Wenn Sie eine Kamera haben, verschwenden wir keine Zeit mehr. Lasst uns anfangen. Okay, willkommen zurück. Wie Sie sehen können, habe ich eine Art Map erstellt . Ich denke, das macht das einfach größer. Bitte docken Sie es ab, bitte. Okay, da gehst du. Mach das auf. Okay, das ist also das Level, das ich erstellt habe. Es ist nicht viel, aber es funktioniert. Wie Sie sehen können, habe ich diese paar Fenster hinzugefügt. Ich hoffe, du hast dir die Zeit genommen, herumzuspielen und zu verstehen, wie das alles funktioniert. Ich brauchte ungefähr zwei bis drei Stunden herumgespielt, um sicherzustellen, wie alles aussieht und funktioniert und so weiter und so fort. Aber das ist das Ergebnis, das wir haben. Sie können sehen, dass ich ein paar habe, okay, das ist ein Fehler hier, zum Beispiel können Sie sehen, dass ich viel Schwarz und den Hintergrund hinzugefügt habe. Du wirst in ein bisschen wissen warum. Ich habe genau hier die Mauern geschaffen, die wir nicht überqueren können. Und ich habe ein paar Wände hier gemacht , um ein paar Dinge zusammen zu schaffen. Also ein paar schwarze Wände, ein paar natürliche Ursachen, Gelehrte, sogar rötliche Wände und so weiter und so weiter. Aber das Problem ist, wenn ich dieses Fenster verkleinere, lege es genau hier hin. Phi 12, führe das Spiel aus. Also los gehst du. Wenn ich das Spiel führe, kann ich herumlaufen und diese ganze Karte, aber ich kann mich in der Spielansicht nicht sehen. Stellen Sie sich vor, wenn wir die Szenenansicht nicht hätten, wie könnten wir uns selbst sehen? Und tatsächlich kannst du es testen. Sie können beim Spiel maximieren. Wenn wir das Spiel ausführen, haben wir einen Vollbildmodus. Okay, jetzt will ich weggehen, aber los geht's. Man kann nichts sehen. Während der Spieler bitte, oh, da bist du los. Da sind wir. Und jetzt versuchen wir zu schießen. Es gibt eine kleine Verzögerung, ein bisschen Verzögerung, aber keine Sorgen darüber. Wie auch immer, wie werden wir das beheben? Nun, was wir tun können, ist, dass wir die Kamera an den Doom Player anbringen und sie zu einem Kind machen können . Und denken Sie daran, dass sich die Kamera oder ein Kind immer mit dem Spieler bewegt. Also wenn ich das Spiel jetzt führe, los geht's, Problem behoben jetzt haben wir ein Fallcamp. Ich hoffe, dir hat das Video gefallen und wir sehen uns im nächsten. Ich kriege es gerade. Und was wir tun werden, ist eine viel ausgefeiltere Technik anzuwenden, um unseren Follikel zu haben. Also entferne ich einfach die Hauptkamera vom Doom Player, Kind oder Elternteil, wie auch immer du es nennen willst, speichere das. Und dann gehen wir ins Fenster. Der Paketmanager wartet darauf, dass Riunite unsere Pakete abholt. Und jeden Tag jetzt. Und hier drin gehen wir in die Unity Registry und wir werden diese Maschine genau hier finden. Wenn Sie einige Computer gefunden haben, klicken Sie einfach auf Installieren und warten Sie, bis sie installiert sind. Und wenn die Installation abgeschlossen ist, können Sie mehr darüber lesen. Sie können also genau hier sehen, dass es ein intelligentes Kamera-Tool für leidenschaftliche Schöpfer ist. Sehr nett. Wir lassen also diesen zusätzlichen Tab erscheinen, der die Kinomaschine ist. Und Sie können sehen, dass wir mit Kinomaschine eine Menge Dinge kreieren können. Und das, was wir wirklich wollen, ist eine virtuelle Kamera zu erstellen. Also lasst uns das machen. Wir werden eine virtuelle Kamera erstellen. Du wirst es gleich hier sehen. Die C und V Canvas nennen es einfach die virtuelle Kamera. Drücken Sie Enter. Ich stelle es genau hier neben der Hauptkamera ein. Und mit der Hauptkamera gehe ich zum Inspektor. Und sofort sehe ich hier, dass wir etwas hinzugefügt haben, das als Kinomaschine Gehirn bezeichnet wird. Und wenn Sie diese Komponente immer noch nicht auf Ihrer Kamera haben, fügen Sie sie hinzu, da wir dadurch die virtuelle Kamera verwenden können. Was ist also die virtuelle Kamera? Sie können sehen, dass es sich nur um eine Transformation mit dieser Komponente handelt, sich um eine virtuelle Kamera der Mittelmaschine handelt. Behalte das im Hinterkopf. Ich öffne mich und du kannst sehen , dass wir viele Dinge haben, die wir hinzufügen können, wir können uns ändern, wir können herumspielen. Ich werde hier nicht auf jedes einzelne Detail eingehen, weil es viel gibt. Was ich tun werde, ist, dass ich zuerst mit der rechten Maustaste und die Hierarchie klicke. Und ich werde das tatsächlich alle 200 000 einstellen. Und Sie können sehen, dass wir etwas haben, das gerade verschwunden ist. Und was scheint das Problem hier zu sein, virtuelle Kamera. Also die Hauptkamera. Okay, wenn ich also in den 3D-Modus gehe, wirst du feststellen, dass wenn das Z 0 ist, bedeutet, dass es vorne ist, also können wir nicht, wir schauen tatsächlich von hinten. Was ich tun muss, ist es einfach etwas zu bewegen. Zurück, damit wir die Ansicht sehen können und Sie können die Kamera hier in 3D sehen. Diese weißen Linien repräsentieren das, was die Kamera sieht. Ich gehe zurück in 2D und gehe dann in die virtuelle Kamera. Sie können genau hier sehen, dass wir eine Option für das Follow und das Objekt haben , mit dem sich die Kamera bewegen möchte, oder für den Körper und das Ziel. Was ist also das Objekt, das ich mit dem Doom Player bewegen möchte? Also füge ich den Doom Player hinzu, und ich werde all das speichern. wir auch sicher, dass wir diese Kameras gut gefiedert haben. Also werde ich ein leeres Spielobjekt erstellen, seine Position zurücksetzen wird die Kameras sein. Und stellen wir einfach sicher, dass diese beiden Kameras ein Kind der Kameras sind. Und jetzt haben wir sie richtig eingerichtet. Spar dir das auf, wenn ich das Spiel führe, los geht's. Sie können sehen, dass ich jetzt eine sehr nette Follow-Cam habe , die dem Spieler überall hin folgt. Aber es gibt viele Dinge, die wir mit dieser Kamera ändern können. Also gehe ich zuerst aus der Tonform raus und stelle sicher, dass wir das Spiel nicht maximieren. Und ich gehe in die virtuelle Kamera. Und was sind all diese Dinge genau hier? Sie können sehen, dass wir dies von Transponierung zu anderen Dingen ändern können. Wie gesagt, geh und schau nach, was all diese Dinge. Aber eines der Dinge, die wir hauptsächlich ändern wollen, ist genau hier zerlegt. Und Sie können sehen, dass das Aussehen erforderlich ist. Du kannst etwas anderes wählen. Sie können wählen, nichts mit dem Ziel zu machen. Dies sind alles Optionen, die Sie verwenden können. Und hier können Sie sehen, dass wir dies in Framing-Transponierung ändern können. Wechseln Sie also den Körper in Framing-Transponierung. Wenn du den Lookahead hinzufügst, wenn ich den Dome-Player hinzufüge und den Blick nach vorne füge, schau, was sich ändert. Wenn ich jetzt das Spiel spiele, siehst du etwas anderes. Ich denke, dass das Wissen bis jetzt das Gleiche zu sein scheint. Du kannst den Blick nach vorne halten. Sie können sich ändern, mit den Optionen herumspielen. Ich zeige dir nur die wichtigsten Dinge hier drin. Im Körper sieht man zunächst die Fenster genau hier, die verschiedenen Farben im Spiel. Es liegt daran, dass der Windows-Spielführer hier im Inspector sie ein- und ausschalten kann. Was haben wir also? Zuallererst haben wir den Blick nach vorne, wir haben die Lookahead Glättung, wir haben die x-Dämpfung, Dämpfung und so weiter und so weiter. Ich weiß nicht einmal die meisten Dinge, was sie genau machen. Aber ein sehr guter Trick, den Sie tun können, ist, dass Sie dies tatsächlich auf sein Maximum erhöhen und dann das Spiel spielen und sehen können , was passiert. Wie Sie sehen können, ja, los geht's. Die Kamera ist also schneller als der Spieler. Und das liegt daran, dass der Blick nach vorne sehr stark ist. Wenn ich also den Blick nach vorne glätten würde, werden Sie feststellen, dass sich die Kameras beim Gehen vor dem Spieler bewegen und dies durch diesen gelben kleinen Punkt dargestellt wird. Und hier sieht man, dass der Punkt vorhersagt, wohin der Spieler gehen wird und die Kamera so einstellt, dass sie nur ein bisschen schneller dorthin geht als der Spieler. Wenn ich es auf 0 setze, bewegt es sich einfach mit dem Spieler, während er geht. Wir können die Glättung ein wenig vergrößert erhöhen. Jetzt können Sie sehen, dass es etwas glatter, ein bisschen schöner ist. Und das, da gehst du. Was haben wir sonst noch? Wir können das y ignorieren, so dass es die Art und Weise ändert, wie es in die y-Richtung aussieht. Und mal sehen, was wir sonst noch haben? Wir haben die x-Dämpfung, also lasst uns das auf 20 setzen und sehen, was passiert. Also los gehst du. Sie können sehen, dass wenn der Spieler auf die rote Seite dieses Quadrats oder Rechtecks trifft, Sie sehen können, dass sich die Kamera dann bewegt und wenn nicht, langsam, langsam zum x geht, oder Sie können es auf 0 setzen. Und in diesem Fall folgt es sofort der Ebene, wann immer wir uns bewegen . Lass es uns auf eins zurücksetzen. Mal sehen, was wir sonst noch haben. Wir haben die Y-Dämpfung, V, Z Dämpfung. Mal sehen, wir haben den Bildschirm x. Mal sehen, ob wir ihn verschieben, damit wir unser Spiel spielen können, wobei der Spieler nach rechts kann. Wir können es so einstellen, dass es in der Mitte liegt, oder wir können das Breitbild so einstellen, dass es unten liegt. Also los gehst du. Wir haben den Kamerabstand, was eine sehr nette Geste ist und derzeit nicht funktioniert. Vielleicht liegt es daran, dass die Kamera hier eine größere Größe haben sollte. Ich bin mir nicht sicher, was das Problem hier ist. Und lass es uns zurücksetzen. Also wieder hier drin, setze alles zurück. Also lasst es uns bei 10 behalten. Wir haben die Totzonenbreite. Wenn ich also die Totzonenbreite auf dem Y und am X vergrößere, schau was passiert. Wenn ich mich auf und ab und links und rechts bewege, bleibt es an Ort und Stelle. Und wenn ich die Grenzen überschreite, fangen wir an zu gehen, während die Kamera mit dem Spieler anfängt zu gehen. Das ist also auch etwas, das Sie optimieren und herumspielen können. Und eigentlich würde ich es gerne ein bisschen klein machen. Wenn ich zum Beispiel herumlaufe, passiert nichts und wenn ich anfange mich zu bewegen, folgt die Kamera dem Spieler. Okay, lass es uns um den Nullpunkt zwei um 0,2 schaffen. Und da sind wir los. Also können wir uns ein bisschen bewegen. Aber wenn wir die Grenzen überschreiten, folgen uns die Kameras. Okay, sehr nett. Was haben wir sonst noch? Wir haben die Zonentiefe, die versucht hat, sie auf 100 zu setzen, um zu sehen, was passiert. Ich bin mir nicht sicher, was genau ist. Aber lasst es uns bei 0 belassen. Siehst du was jetzt passiert? Jep. Oh, okay. Scheint sich sehr zu ändern. Ich glaube, lass es uns auf 20 setzen. Nichts, nichts passiert. Lass es uns bei 20 behalten. Die weiche Zonenbreite, glaube ich, die South Zone ist das rote Quadrat. Wenn ich es also so setze, sagen wir mal, klein zu sein, was passiert dann? Ich komme nicht mal nach draußen wegen des Herzens oder der Totzonenbreite. Okay, darüber machen Sie sich keine Sorgen. Setzen Sie die Position zurück. Mal sehen, dass wir die Voreingenommenheit haben. Was passiert also? Okay, jetzt ist die rote Zone in Richtung der blauen Zone voreingenommen, und Sie können alle diese selbst durchsuchen. Und das einzige, was hier ist die virtuelle Kamera als ganze Welt für sich. Wenn ich also auf jedes einzelne Detail eingehen möchte, brauche ich einen ganzen Abschnitt für sich. Verwenden Sie die Cinema Machine jedoch als unglaublich leistungsfähiges und eines der modernsten Werkzeuge, die wir in unserem Besitz haben. Also empfehle ich, dass Sie mit all diesen Einstellungen herumspielen. Schau was funktioniert, sieh was nicht. Aber denken Sie daran, wie Sie gerade gesehen haben, sind alle Änderungen, die wir vorgenommen haben, zurückgegangen oder wurden zurückgesetzt. Warum? Weil alle Änderungen, die wir im Spielmodus vornehmen , zurückgesetzt werden, wenn wir aufhören, das Spiel zu spielen. Mit diesen Informationen empfehle ich Ihnen, die Dokumentation der Senatsmaschine von Unity durchzugehen , zu sehen, was passiert, und sehen, was Sie verwenden können. So haben wir zum Beispiel etwas namens Geräusch, das wir in ein paar Videos verwenden werden, um unsere Schießmechaniken nur ein bisschen wirkungsvoller zu gestalten . Und war das erledigt, bevor ich gehe, lass mich dir eine kleine Herausforderung stellen und deine Herausforderung wird darin bestehen, deine Maschine einzurichten. Spielen Sie also mit allen Einstellungen herum, die Sie auf demselben Computer haben. Der beste Weg zu wissen, was jedes Ding tut, ist es auf das Maximum zu bringen und zu sehen, was dann passiert. Nun, diese Information, ich hoffe es gefällt Ihnen. Und im nächsten Video werden wir die Türen erstellen oder wie auch immer Sie sie nennen möchten, Sie können sie Türen nennen, oder Sie können sie die Orte nennen, an denen wir von einer Ebene zur nächsten zu den Ausgangsebenen gehen . wie auch immer du sie nennen willst. So gut, dass das gemacht hat. Ich hoffe es gefällt dir und wir sehen uns im nächsten Video. 36. Abschließende Türen (foreach: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Wie Sie sehen können, haben wir unserem Spiel ein paar Räume hinzugefügt. Wir haben unserem Spiel ein paar Wege hinzugefügt, jetzt unser Level, oder eigentlich hätte ich unser Level sagen sollen. Jetzt sieht unser Level ziemlich gut aus. Sie wissen, dass die Cinna-Maschine dem Spiel wirklich etwas Geschmack verliehen hat, was uns die Möglichkeit gab, herumzulaufen und größere und interessantere Level zu machen. Aber das ist nicht das einzige, was sehr cool ist. Wenn ich das Spiel führe, schau dir die Szene an, du kannst sehen, dass wir jetzt Türen haben, die uns daran hindern, sich zu bewegen. Und das werden die Türen sein, die wir früher auf das nächste Level gebracht haben, nachdem wir unsere Feinde Offensichtlich müssen wir unsere Feinde töten. Aber das ist uns momentan nicht besorgniserregend. Später wird es so sein. Aber im Moment verschwenden wir keine Zeit mehr und lasst uns anfangen. Und wir werden voller erstaunlicher Sachen lernen, erstaunlichen 0-Fall. Also werden wir weitermachen und Türen schaffen. Was sind die Türen? Ich habe die Tür schon geschaffen, du kannst sie genau hier sehen. Ich stelle dir die Tür und die Ressourcen zur Verfügung, aber es ist ziemlich einfach. Alles was ich getan habe war ausgeschnitten wo ist es? Das Hauptfoto? Das Hauptbild. Und benutze einfach die Tür, die dort bereits vorhanden war. Jetzt können wir also weitermachen und die Tür hinzufügen oder lassen Sie es uns hier hinzufügen. Also haben wir die Tür, wir stellen die Ebene vielleicht auf den Spieler oder wir können die Ebene auf die, an einer separaten Tür setzen. Und was diese Türen tun werden, ist, dass sie diese beiden Wege schließen werden , die ich ebenfalls geschaffen habe, und darüber habe ich nicht gesprochen. Was ist der Sinn unseres Spiels? Wie werden wir von Level zu Level wechseln? Genau wie wir es im Hades-Spiel gesehen haben. Jedes Mal, wenn wir alle Feinde töten, werden wir diese beiden Barrikaden haben. Wir werden diese Tür und eine zweite haben. Also hier zwei Türen. Und wenn wir alle Feinde töten, deaktivieren wir einfach die Türen. Und dies wird es unserem Spieler ermöglichen, sich durch und auf den Weg zu bewegen, auf dem er hier zwei Portale findet und sie durchlaufen kann. Aber lasst uns nicht einen Schritt voraus sein. Beginnen wir zunächst damit, sicherzustellen, dass diese Türen funktionieren und was wollte Ihnen sonst noch sagen? Oh, okay. Wenn Sie also genau hier in diese Kachelpalette gehen, können Sie sehen, dass wir diese beiden Anker oder wo auch immer Sie diese Wege hier hinzufügen können. Aber das Problem mit diesen Pfaden, wenn ich auf das Raster und die Wand klicke, können Sie sehen, dass sie auch den Spieler davon abhalten, sich zu bewegen. Was meine ich also? Ich habe dafür gesorgt, dass dies der Boden ist und das ist die Mauer. Und wenn ich zum Beispiel das Spiel führe, wirst du sehen, dass ich überall herumlaufen kann. Und wenn ich hier durchgehe, siehst du, dass ich mich nicht mehr bewegen kann. Und das liegt daran, dass wir einen Collider unter haben und das ist etwas, das wir beheben müssen, um sie zu überwinden, offensichtlich. Wie werden wir das beheben? Nun, wenn wir hier in unser Kachelset gehen, die Kegel, wenn wir nach unten scrollen, finden wir das Bild genau hier. Gehe zum Inspektor wähle den Sprite-Editor aus. Mach das auf. Wenn wir vom Sprite-Editor zum benutzerdefinierten Physik-Shape wechseln, klicken wir hier rein. Sie können sehen, dass wenn wir, wo ist es, ok, also der Anker und hier, wenn wir auf einen davon klicken, können wir generieren. Und jetzt haben wir die Ankerpunkte der Physik. So wird der Collider auf diesem Sprite gerendert. Also werde ich sicherstellen, dass es sehr oder nicht einmal winzig ist. Ich sorge dafür, dass es ungefähr 0 ist. Also Vermögenswert das so, und schließlich lügen Sie das. Ich übernehme die Änderungen und warte nur eine Sekunde. Es wird ein wenig Zeit dauern, um die Collider und das Spiel zu wechseln. Außerdem müssen wir diesen Preis möglicherweise wieder ziehen. Okay, großartig, also ist dieser fertig. Generieren wir auf diesem Block. Auch. Bewegen Sie es hierher. Wir müssen es nicht wie in der Mitte nach unten bewegen. Wir können es einfach nach rechts verschieben. Bewerben. Jetzt wird der Collider nur auf dieser Seite sein. Und schließlich, finde jeden Tag jeden Tag. Jetzt können wir auf den letzten klicken OK generieren. Nicht der letzte. Eigentlich haben wir noch zwei weitere zu tun. Also. Jetzt, da du weißt, wie das gemacht wird werde ich das oben genannte machen und ich bin damit verwundet , dass du das gleichzeitig mit mir machst. Dies ist keine Herausforderung. Dies ist nur, dass wir unser Spiel viel besser machen. Also generiere, generiere, verschiebe das nach links, ich wende die Änderungen an. Und aus irgendeinem Grund ist es extrem langsam. Ich dachte, es könnte ein bisschen schneller sein. Also komm schon, Generate. Bewegen Sie das hier. So ist es einfach so. Bewerben. Und ich freue mich sehr, Ihnen zeigen zu können, wie das alles funktionieren wird. Letzte, generiere wie langweilig ist das? Ja, das ist es. Ich weiß, dass wir aufgrund der Wartezeit auf die Einheit warten müssen, um Physik zu erzeugen. Also denke ich, wir hätten das auch nach unten bringen sollen. Lassen Sie mich einfach sehen, dass etwas auch nach unten bewegt werden sollte. Einfach so. Jetzt wenden wir die Änderungen an. Wenn wir jetzt zurückgehen, sollten wir sie vielleicht zurückziehen. Vielleicht sollten wir das nicht tun. Das ist das Problem mit limitiert. Wenn wir uns nähern, wenn es Einheit ist, als es zu öffnen, werden wir dieses Problem vielleicht nicht finden. Mal sehen, was wir haben. Also los geht's, die Wände sind immer noch da, aber wenn ich das ein anderes Mal wähle, und ich zeichne das, sagen wir hier. Okay, offensichtlich stimmt hier etwas ganz nicht. Oh, okay, also hatten wir ein kleines technisches Problem. Wenn ich jetzt auf die Wände klicke, dachte ich, dass eine Sekundarstufe nicht funktioniert, aber es tat es. Wenn Sie nun die Wände sehen, ist der Collider nicht mehr hier und nur an den Seiten, an denen er sein soll. Wenn ich jetzt das Spiel führe, schaue ich hier hin. Wenn ich nach oben gehe, geht's los. Ich kann sie durchlaufen. Offensichtlich gibt es ein Problem, das darin besteht, dass ich über sie gehe. Wir werden das in ein bisschen beheben, aber im Moment haben wir das funktioniert. Dies sollte vielleicht auf einer anderen Ebene liegen. keine Sorgen. Lass uns weitermachen. Was müssen wir hier eigentlich tun? Und wir müssen die beiden geschlossenen Türen hinzufügen. Wir müssen einen Hinweis auf sie bekommen und wir müssen sicherstellen , dass wir sie schließen möchten, wenn der Spieler im Raum ist . Also lasst uns anfangen. Das erste, was wir tun wollen, ist, dass wir die beiden Türen hinzufügen wollen. Also gehe ich in die Türen und wähle hier im Inspektor aus. Und ich füge es einfach in die Hierarchie ein, erstelle das Objekt zuerst Gore hier passt. Ich werde weitermachen und es so einstellen, wie die Charlotte es als Spieler eingestellt hat. keine Sorgen. Wir legen das als Layer fest. Das ist also die Tür, und ich werde es duplizieren. Das wird die Tür 2 sein und ich werde sie auf die andere Seite verschieben. Oder weißt du was, lass uns das jetzt nicht duplizieren. Zuerst müssen wir einen Box Collider hinzufügen weil wir nicht spielen oder uns durch diese Tür bewegen wollen. Also füge ich einen Box Collider 2D hinzu. Und mal sehen, wie diese Box aussieht. Okay, ich denke, das sieht gut genug aus. Und ich werde diese Tür jetzt duplizieren. Das wird die Tür 2 sein, und ich werde sie direkt hier hineinschieben. Jetzt sind diese beiden Wege geschlossen. Ich führe das Spiel aus. Ich werde versuchen, durch die Tür zu gehen und los geht's. Du siehst, dass ich nicht durchlaufen kann. Exzellent. Was ist der nächste Schritt? Der nächste Schritt ist, dass ich das vorbereiten werde. Ich gehe ins Prefab und klicke mit der rechten Maustaste. Erstellen Sie Ordner, Zimmer oder Räume oder falsch. Dies wird für alles sein, was ein Zimmer beinhaltet. Und ich mache das einfach vor und ich nenne das einfach die Tür. Da gehst du. Und jetzt füge ich das einfach noch einmal bei den Prefabs hinzu. Also ist es an das Prefab gebunden. Wenn wir also jemals etwas ändern , passieren diese Änderungen für alles. Okay, also lasst uns jetzt weitermachen und hier ein Spielobjekt erstellen, das als Raum bezeichnet wird. Ich werde seine Position zurücksetzen. Und dieses Zimmer wird ein Kind haben, das Türen genannt wird. Und dies wird das Objekt sein, das alle Türen hält, die wir im Raum haben. Jetzt erstellen wir hier ein neues Skript. Und wir werden es an den Raum anhängen, und das wird der Raummanager sein. Also Skripte, klicken Sie mit der rechten Maustaste, lassen Sie uns einen Ordner für die Manager erstellen. Und hier drin werden wir ein C-scharfes Skript für den Raum erstellen. Managerin. Drücken Sie Enter und warten Sie, bis es kompiliert ist. Nein, danke. Ich brauche es gerade nicht. Und warte, bis es kompiliert ist. Okay, also Zimmer, lass uns das Skript hier hinzufügen. Lasst uns den Raummanager öffnen. Und was brauchen wir hier drin? Nun, wir brauchen eine Reihe von Spielobjekten, die die Türen darstellen, die wir schließen möchten. Also das Spielobjekt und das Array, das die Türen zum Schließen ist. Spar dir das auf. Und jetzt wollen wir einen riesigen Auslöser um die gesamte Karte erstellen. Und dann überprüfe, wann sich der Spieler in diesem Triggerraum befindet. Und warum müssen wir im Zuckerzimmer sein? Weil vielleicht. Zum Beispiel möchten Sie, dass Ihr Spiel nur ein bisschen größeres Level hat. Vielleicht, wenn du durch irgendeine Art von Türen kommst, schließen sich die Türen und dann beginnt das Level und bis du alle Feinde tötest, kannst du den Raum verlassen. Deshalb wollte ich mit diesem Stop-Prozess fortfahren , Türen nur schließen zu lassen, wenn der Spieler im Thron ist. Lassen Sie uns zunächst diese beiden Türen hinzufügen, um dies an den beiden Türen zu schließen, um sie zu schließen. Los geht's, heb dir das auf. Und jetzt gehe ich zurück und mein Drehbuch. Und hier werde ich einen booleschen Wert erstellen, der ein serialisiertes Feld sein wird. Und das wird die enge Tür auf Schicht sein. Geben Sie ein. Spar dir das auf. Und was werden wir hier drin tun, während wir all diese auf dem Zucker durchgehen werden . Geben Sie ein. Okay, das hätte zu tief sein sollen. Und lassen Sie uns tatsächlich den Unternehmer erstellen, um sofort zu gehen. Und hier werden wir prüfen, ob das collision.com-Tag der Layer ist. Jetzt werde ich betrügen, weil ich bereits weiß, wie der Spieler geschrieben wird. Und wir werden prüfen, ob die Tür beim Spieler geschlossen ist. Okay, jetzt wollen wir unsere Türen schließen. Jetzt haben wir dieses Array genau hier. Was sollen wir tun? Sollten wir sie alle durchgehen und sie eins nach dem anderen schließen? Also sollte ich Tür schreiben, um zum Beispiel 0 Punkt aktiv zu wahr zu schließen , und dann Tür eins, Tür zu Tür drei. Wir könnten das tun, aber es gibt ein Problem und wir wissen nicht, wie viele Türen wir haben werden. Was wir also tun können, ist, dass wir sie durchlaufen können. Und eine der ersten vollen oder ersten Schleifen , die ich dir beibringen möchte, ist die für jede Schleife. Was ist also eine für jede Schleife? Mal sehen, wie diese Struktur funktioniert. Es ermöglicht Ihnen, jedes Ding in einer Sammlung von Dingen desselben Typs in einem Array zu durchgehen . Was meine ich mit Dingen? Nehmen wir an, wir haben einen Typ, der in unserem Fall das Spielobjekt ist. Die Sache ist die Tür in den Türen, die wir schließen wollen. Was wir also tun, genau wie es sagt, für jede Tür, die vom Typ Spielobjekt in den Türen zu schließen ist, können wir weitermachen und Sachen damit machen. So können wir zum Beispiel auf eine Methode zugreifen. Wir können das Ding in einer anderen Methode verwenden und wir können andere Dinge ausführen. Wurde das erklärt, was wir tun wollen? Unser Ziel in diesem Video ist es, mit dem For Each zuzugreifen oder zu durchlaufen. Wir möchten alle Türen durchlaufen und sicherstellen , dass wir sie alle auf wahr setzen. Sobald der Spieler den Raum betritt, wird alles geschlossen, bis er später alle Feinde tötet. Mit dem Erklärten werde ich Ihnen die Herausforderung stellen, durch alle Türen zu gehen und sie zu schließen. Erstellen Sie also eine für jede Schleife, die durch alle Türen geht, die geschlossen wurden. Stellen Sie, jede Tür auf aktiv. Und ich gebe dir einfach einen Hinweis. Verwenden Sie das Set active auf True. Ich hab es dir schon gezeigt. Ich habe versucht, dir so viele Hände wie möglich zu geben. Ich weiß, dass es vielleicht das erste Mal ist, dass du Loops siehst. Dies ist eine großartige Gelegenheit, um zum ersten Mal etwas zu sehen und versucht, es vor Ihnen umzusetzen ohne dass ich Ihnen das vorher beibringe. Ich weiß, dass es ein bisschen schwer ist. Ich würde es als eine der schwierigsten Herausforderungen trinken, aber mach dir darüber keine Sorgen. Nimm dir Zeit. Halten Sie das Video an, versuchen Sie Ihr Bestes zu geben und wir sehen uns in ein bisschen. K, wie hast du das alles bekommen? Ich hoffe, es war nicht allzu schwer. Was wir also tun werden, ist, dass wir eine for-each-Schleife erstellen werden. Und wie gesagt, wir werden die Spielobjekte durchgehen. Und wir können das nennen, was auch immer wir wollen, die Türen, die wir es nennen können ABC du, was immer wir wollen, in Türen zum Schließen. Und was wir hier machen werden, ist, dass wir einfach auf die Tür zugreifen, Punktsatz aktiv. Stimmt. Spar dir das auf. Zurück in Unity. Wir werden diese Türen aktivieren. Sagen wir also, sie sind offen. Als erstes betreten wir das Zimmer. Okay, auch ich hätte hier nicht anklicken sollen. Ich schalte das Zimmer wieder ein. Was ist hier passiert? Und das ist etwas, worauf ich immer falle da ich das Zimmer hatte und es eingesperrt hatte. Also habe ich die beiden Türen gewählt und auf diese geklickt. Also habe ich das Zimmer ausgeschaltet. Eigentlich kann man hier sehen, was immer Sie wählen, es ist immer noch das Zimmer. Was ich also aufschließen werde, zeigt die beiden Türen. Und ich werde es tun. Mach weiter und schalte sie aus. Ich geh ins Zimmer. Ich füge eine Komponente hinzu, die ein riesiger Box Collider sein wird. Das einzige Problem hier ist, dass der Collider vielleicht nach dem Spieler sucht und wenn er den Raum tatsächlich noch nicht betreten hat. Gehen wir also wieder rein und schauen uns Trigger Enter an. Wenn wir den Trigger eingeben , wird diese Methode aufgerufen. Also lass uns sehen. Ich bin mir nicht sicher, manchmal liegt es daran, wie das Skript ausgeführt wird. Also zuerst FVA-Raumskript ausgeführt, dann haben wir den Raum, und dann werden wir den Spieler haben. Auf diese Weise tritt der Spieler tatsächlich ein. Also werde ich das speichern. Ich werde es tun, okay, also ist das ein Auslöser, wenn ich einen Fehler habe. Okay, also ist dieser Fehler nichts, worüber man sich Sorgen machen müsste. Führe das Spiel aus. Okay, also haben sich die Türen nicht geschlossen. Lassen Sie uns entscheiden, die Türen beim Spielereintritt zu schließen. Okay, also los geht's. Es hat geklappt. Also hoffe ich, du hast verstanden, was meine Sorge war. Manchmal passiert das, wenn ich dieses Spiel zum ersten Mal erstellt habe. Das passiert. Also musste ich etwas anderes kreieren. Aber mir ist aufgefallen, dass es manchmal funktioniert, manchmal nicht. Ich wollte dich nur vorher wissen lassen, damit du nicht an Oh, Michael, jedes Mal einen Fehler denkst . Eigentlich, also hoffe ich, dass es dir gefällt. Ich hoffe, du hast das für jede Herausforderung gemacht. Ich weiß, dass es kompliziert war, aber dies ist eine gute Möglichkeit, Ihre Spieleentwicklerfähigkeiten zu üben. Also sehe ich dich im nächsten Video, in dem wir alle Feinde fangen werden , die wir haben, damit wir sie töten und dann die Türen öffnen können, wenn sie sterben. Also sehe ich dich dann. Stellen Sie sicher, dass Sie alle Ihre Dateien inszenieren. Tut mir Leid dafür. Und hinterlasse mir eine Bewertung, wenn du es noch nicht getan hast. Es hilft mir sehr. Danke. Wir sehen uns das nächste Mal. Hey, Michael hier aus der Zukunft, du dachtest, du wärst mich los, aber das hast du nicht. Als wir das Spiel laufen, bemerkte ich etwas, das Sie sehen können, dass ich mich gefragt habe , warum das Skelett uns nicht erschossen hat, und wenn ich versucht habe zu schießen, können Sie das sofort sehen. Ich habe den Bullet-Impact-Effekt. Was ist das Problem hier? Nun, weil wir im Zimmer Collider sitzen, schießen wir und es interagiert sofort damit. Das Problem hier ist also offensichtlich, dass es die Schichten sind. Was wir also tun wollen, ist, dass wir eine Ebene hinzufügen werden. Wir können das die Unberührbaren nennen oder wie auch immer du es nennen willst. Ich nenne es einfach die Raumebene. Drücken Sie Enter. Und ich gehe in die Matrix und hier die Projekteinstellungen. Und ich sorge dafür, dass die Raumebene nicht mit den anderen Raumschichten mit den feindlichen Kugeln interagiert . Und vielleicht können wir sogar sicherstellen, dass sie mit nichts interagieren. Ehrlich gesagt brauchen wir sie außer dem Spieler nicht. Wir wollen weitermachen. Aber im Moment stellen wir einfach sicher, dass sie nicht mit der Aufzählungsliteratur interagieren , wenn wir ein Problem finden, dies könnte problematisch sein und wissen was. aus diesem Grund Schalten wir aus diesem Grund alles aus, speichern Sie das. Geschlossen vom Spiel. Die guten Türen sollten sich schließen. Und wenn wir schießen, stimmt noch etwas nicht. Oh, offensichtlich müssen wir es als Raumschicht einstellen ja. Kinder geändert, wenn du das Spiel spielen willst oder nein, vielleicht hätten die Kinder nicht geändert werden sollen. Okay. Also schließt die Tür und wir können normal schießen. Vielleicht hätten die Kinder nicht gewechselt werden sollen , weil ich nicht möchte, dass die Türen betroffen sind. Lassen Sie uns dies auf Standard ändern. Ja. Kinder geändert. Okay. Jetzt können wir die Türen erschießen, aber wir können herumschießen, sollten die Wände, sollten die Türen. Jep. Alles funktioniert gut. Aus Zukunft gehe ich also. Wir sehen uns in Zukunft. 37. Alle Feinde aufholen: Willkommen zurück, Meine Lieblingsspielentwickler. Wie Sie jetzt sehen können, haben wir drei Feinde, x2, sehr beängstigend. Lassen Sie mich das Spiel maximieren. Und wir haben ein Unrecht damit, nicht nur Türen zu haben, wir haben auch Feinde, die drei Skelette sind. Diese Skelette sind die Typen, die wir töten müssen, um die Türen zu öffnen. Aber im Moment machen wir sie einfach mit einer Liste im Akt. Also habe ich das Spiel maximiert, hätte ich nicht tun sollen. Ich laufe jetzt wieder weg. Wenn ich in die Räume und heute schaue, sehe ich, dass ich die Feinde hier habe und die beiden Türen habe, aber die Magie ist, dass wir sie gefangen haben , ohne sie manuell hinzuzufügen. Sie können sehen, dass es automatisch mit Kontaktfiltern geschieht, Listen verwenden und viele coole Sachen verwenden. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, Fall. Jetzt haben wir also die Türen geschlossen. Es ist Zeit, sie zu öffnen. Wie öffnen wir die Türen? Wir erlauben es ihnen zu öffnen, wenn wir alle Feinde loswerden , die wir in der aktuellen Karte haben. Was wir also tun werden, ist, dass wir eine Variable erstellen, die zunächst sicherstellen wird, dass sich alle Türen öffnen, wenn alle Feinde getötet werden. Vielleicht muss das Level, das du geschaffen hast, nicht alle Feinde töten. Vielleicht ist es zum Beispiel ein Level für den Laden, genau wie wir es in Hades hatten. Deshalb fügen wir diese Variable hinzu. Also lasst uns anfangen. Also hier drin haben wir den feindlichen Controller. Wie Sie sehen können, habe ich alles organisiert. Wie auch immer, verschwenden wir keine Zeit, denn im falschen Manager werden wir das Volumen genau hier hinzufügen. Und das heißt Türen zu öffnen oder zu öffnen. Wann und ich ist Dy. Da gehst du. Das sparen wir uns. Wir werden hier wieder reingehen und wir sorgen dafür, dass dieser besondere Raum wahr wird, wenn Feinde sterben. Okay, großartig. Das nächste, was wir tun müssen, ist, dass wir eine Referenz auf alle Feinde erhalten müssen. Nun, wie machen wir das? Wir werden offensichtlich mehrere Feinde haben. Das bedeutet, dass wir höchstwahrscheinlich eine Art Array bekommen müssen. Aber warum wollen wir kein Array verwenden? Denn wenn wir ein Array haben, wie werde ich das demonstrieren? So kannst du zum Beispiel genau hier sehen, ob ich hier auf eines dieser Arrays klicke, und wenn ich das Minus verwende, wird dies einfach die Tür aus unserem Spiel entfernen. Es löscht nicht das gesamte Element. Wir haben also immer noch zwei Türen hier, aber eine von ihnen fehlt. Wenn es um die Tür geht, ist das kein großes Problem, da wir bereits wissen, dass wir nur zwei Türen haben werden. Wir werden sie nicht zählen. Wir werden sie nicht loswerden. Sie sind da, sie sind statisch, sie bewegen sich nicht. Aber wenn es um die Feinde geht, wollen wir einen Verweis auf alle Feinde in der Karte erhalten. Und wenn wir sie langsam nacheinander töten, werden wir sie zählen. Und wenn wir feststellen, dass sie alle verschwunden sind , öffnen wir die Tür. Und das wird ein Problem verursachen, wenn wir einen Tarif verwenden. Deshalb werden wir etwas Besseres benutzen, was die Liste ist. Eine Liste ist also wie ein Array. Es stellt eine stark typisierte Liste von Objekten dar. Und das sind übrigens die Dokumentationen von Microsoft für das C-Sharp, nicht die Unity-Dokumentation, aber es ist ziemlich dasselbe. Sie können Beispiele finden, Sie können finden, was immer Sie wollen, und listet das Tolle an ihnen auf, da sie viel besser sortieren können, sie sind viel besser darin zu sortieren und zu manipulieren. Was wir also tun können, ist, wenn jeder Feind stirbt, wir können ihn von der Liste entfernen, ohne uns über irgendwelche Arten von Fehlern Gedanken machen zu müssen, die Liste wird sich selbst anpassen. Das erklärte, ich lasse Sie die Liste, die Klasse, finden Sie die Dokumentation davon. Und ich werde dir die Herausforderung wieder stellen, genau wie die letzte Herausforderung, die ich kenne. So nervig, wenn man etwas alleine machen muss, ohne zu sehen, was ich zuerst gemacht habe. Aber es ist Zeit, erwachsen zu werden, an der Zeit, echte Spieleentwickler zu werden, nach Problemen zu suchen und Dinge zu tun, denen wir noch nie zuvor begegnet sind. Das ist das Schöne daran. Schau dir die Dokumentation an und finde heraus, wie wir ein neues instanziieren können. Lassen Sie uns eine serialisierte Feldliste erstellen. Wir wollen die Liste im Inspektor sehen. Später müssen wir es offensichtlich privat machen, aber wir wollen prüfen, ob alles funktioniert. Und schließlich wird der Typ der Liste ein Collider für D. Suchen Sie also die Dokumentation, gehen Sie durch, erstellen Sie eine neue Liste, die die Liste der Feinde vom Typ Collider 2D ist. Wir sehen uns in ein bisschen. Okay, willkommen zurück. Wie bist du darauf gekommen? Ich hoffe, du bist nicht zu wütend auf mich. Wie auch immer, lasst uns ein serialisiertes Feld erstellen. Und das wird eine Liste sein. Und wie Sie sehen können, haben Sie im Beispiel gesehen, lassen Sie uns einfach überprüfen und sehen, wie es erstellt wurde. Sie können also sehen, dass es die System-Punktsammlungen benötigt, die genau hier sind. Ups, tut mir leid, was es uns ermöglicht, Listen zu erstellen. Mal sehen, was wir hier haben. Sagen wir, ich scrolle nach unten, wie erstellt man bitte Listen? Wie erstelle ich eine Liste? Wo ist es? Wo ist es? Okay, also los geht's. So erstellen Sie eine Liste. Also müssen wir die Art dieses Typs eingeben, die wir in diesen beiden unnatürlichen haben, wie sie genannt werden, und sagen, dass es einer neuen Liste entspricht. Also hier drin, der Typ Collider 2D, habe ich dir schon gesagt. Und du wirst in nur ein bisschen sehen, warum es ein Collider 2D ist. Also Feinde, und es ist gleich einer neuen Liste von Collider für die Feinde und wir schließen es mit diesen beiden Klammern ab. Nun, offensichtlich haben Sie nur ein bisschen länger gedauert, um alles zu finden, vielleicht schauen Sie sich die Dokumentation an, aber das ist gut. Jetzt können Sie stolz sagen, dass der Schuh die Dokumentation durchsucht , die Sie selbst erfahren haben, wie Listen erstellt werden, und dies wird Ihnen viel mehr Selbstvertrauen geben wenn Sie Ihre Spieleentwicklungsreise durchlaufen. Ich werde nicht immer hier sein. Manchmal bin ich nicht manchmal ich habe keine Zeit, dir zu antworten. Das ist also eine großartige Übung. Ich liebe diese Übungen. Ich hoffe, du bist nicht zu wütend. Lasst uns weitermachen. Was müssen wir gerade tun? Wir müssen genau hier in die Räume gehen und wir werden ein neues leeres Spielobjekt erstellen, das die Feinde sein wird. Und das wird alle Feinde halten, die wir haben. Der Skelettfeind hier, dass C braucht er irgendwas? Auch der Schießstand. Machen wir es etwas kleiner, damit wir nicht wollen, dass die Feinde uns erschießen. Wir wissen, dass alles funktioniert. Das ist gut und wir werden ihre Gesundheit schaffen. Aber kleiner, vielleicht drei. Also nimmt er drei Treffer, wendet die Änderungen an. Und ich werde ihn zu den Feinden bringen. Ich gehe auch in die Prefabs und füge ein paar Feinde hinzu. Und hier, also der Feind, wird das Skelett noch eins hinzufügen. Hier. Noch eins, so großartig. Jetzt haben wir drei Skelette, die den Spieler jagen und erschießen werden. Das werden wir speichern. Okay, großartig. Das nächste, was wir tun wollen, ist, dass wir das bekommen wollen, einen Hinweis auf all diese Feinde und können sie zählen. Was wir nun natürlich tun können, wenn wir fortfahren können, wählen Sie diese drei aus und ziehen Sie sie hierher und legen Sie sie manuell fest. Das wäre gut, das würde funktionieren. Aber wir wollen eine dynamischere Möglichkeit haben, auf diese Feinde zuzugreifen. Eine dieser dynamischen Möglichkeiten ist die Verwendung von Fundobjekten des Typs, bei denen wir alle Objekte durchgehen und alle finden. Dies ist auch eine gute Idee, aber es belastet das System sehr. Sie müssen alle Elemente durchgehen, beginnend mit der Kamera und unten, bis Sie all diese Feinde vom Typ oder Objekt des Typs finden. werden wir nicht tun. Stattdessen werden wir zunächst etwas viel komplizierteres tun, aber viel effektiver und weniger belastend für das System. Und es ist eine großartige Möglichkeit, etwas ganz Neues zu lernen. Und wir haben bereits die, sagen wir mal die Infrastruktur dafür, indem wir die Collider der Feinde und den Collider des Raumes haben . Wovon rede ich also? Du hast es gerade gesehen. Es ist der Collider, 2D-Überlappungscollider. Was macht das? Es nimmt einen Kontaktfilter auf , den wir uns nur ein wenig ansehen werden. Und es gibt uns die Ergebnisse aller Collider-2D-Objekte. Ein Kontaktfilter, der verwendet wird, um die Ergebnisse unterschiedlich zu filtern. Was meinen wir damit? Wir meinen, wir haben den Collider des Zimmers genau hier. Also haben wir den Collider, wir haben alle Objekte drin. Wir wollen den Spieler nicht fangen, zum Beispiel interessieren wir uns nur für die Skelette. Wir müssen also diesen Kontaktfilter hinzufügen, der versteht, wie er verwendet wird. Aber lass uns weitermachen. Also Kontaktfilter und das Ergebnis, das Ergebnis, Es ist das Array. Um die Ergebnisse zu erhalten. Wir können ein Array verwenden, wir können auch eine Liste verwenden. Mach dir darüber keine Sorgen. Lasst uns eins fortsetzen. Was brauchen wir? Es gibt also die Anzahl der Ergebnisse zurück, wenn wir eine Rücksendung wünschen, und dann werden wir prüfen, was ein Kontaktfilter ist. Also gebe ich dir alle Möglichkeiten, wie wir kreieren. Ehrlich gesagt hatte ich keine Ahnung was ein Kontaktfilter ist. Dies ist das erste Mal, dass ich bei der Erstellung dieses Spiels begegnet bin, obwohl ich viel Erfahrung in der Spieleentwicklung hatte. Dies ist wirklich das erste Mal, dass ich es tatsächlich in das verwendet habe, also habe ich danach gesucht. Okay, also schau mal, wir haben viele Immobilien. Und wenn Sie zurückgehen, können wir genau hier die Ergebnisse anders sehen. Und was haben wir sonst noch? Wir haben etwas namens Bi-Layer-Maske. Ich weiß, was Ebenenmaske ist, also muss ich nachsehen und finde es. Legen Sie die Ebenenmaske fest, ausgezeichnet. Dadurch wird die Ebenenmaske basierend auf einer Art von bereitgestelltem Parameter oder so festgelegt. Großartig. Ich klicke darauf, ich sehe Kontaktfilter, Ebenenmaske. Ich gebe ihm eine Ebenenmaske. Ich weiß, was die Ebenenmaske ist und ich zeige dir, wie wir sie benutzen werden. Aber wie auch immer, das sind die Schritte, die sogar ich manchmal unternehme. Denken Sie also nicht an NEU, erinnern Sie sich nicht an alles und Sie sollten wissen, nein, Sie sollten Ihre eigenen Nachforschungen anstellen. Schauen Sie sich immer die Dokumentation an und lassen Sie uns jetzt loslegen. Also gehe ich hier wieder rein und erstelle zuerst einen privaten Collider 2D, und das wird der Raumcollider sein. Spar dir das auf. Und dann ein, ein weiterer privater Kontakt wurde nach D gefiltert und es wird der Kontaktfilter für D sein. Ich behalte den Namen einfach so, wie er ist. Also jetzt und fange an, was werden wir tun? Nun, zuerst brauchen wir einen Hinweis auf den Raumcollider. So ist Raumcollider gleich, um Komponenten zu erhalten. Und es wird der Collider 2D sein. Toll, jetzt haben wir einen Hinweis auf den Collider im Raum. Als Nächstes wollen wir den Kontaktfilter 2D bekommen. Und wir werden die Ebenenmaske so einstellen, wie wir es gesehen haben. Und was haben wir gesagt, dass wir innerhalb der eingestellten Ebenenmaske brauchen, wir brauchen die Ebenenmaske. Wie bekommen wir die Ebenenmaske? Nun, wir wissen, welche Ebene ist, aber was ist die Maske? Die Maske ist eine Möglichkeit, uns sagen zu lassen, zu konvertieren, um zu verstehen, was die Ebenen sind. Was können wir also tun? Wir können etwas verwenden, das als Ebenenmaske bezeichnet wird. Und wir können hier eine Methode verwenden, die besagt, dass wir die Maske bekommen sollen. Und wie kriegen wir die Maske? Wir können es tatsächlich kaufen den Namen der Layer. Großartig, jetzt haben wir Zugriff auf den Namen der Ebene. Und was bedeutet die Schicht, es ist der Feind. Und da dies eine String-Referenz ist, stellen Sie sicher, dass der Schuh richtig vergossen wurde, kopieren Sie ihn sogar, wenn nötig. Aber was hier passiert, wir haben den Ebenennamen. Wir verwenden die Get-Maske, eine Methode, die in der Ebenenmaskenbibliothek verfügbar ist. Wir verwenden diese gesamte Ebenenmaske und legen die Ebenenmaske im Kontaktfilter fest. Kompliziert, ich weiß. Und jetzt benutzen wir den Raumcollider, Gedankenüberlappung Collider. Und was brauchten wir hier drin? Wir brauchen den Kompaktfilter zum, was sind die Ergebnisse? Wo wollen wir unsere Ergebnisse werfen? Und du siehst genau hier den Pfeil, wenn du darauf klickst, los gehst du. Sie können es zu einer Liste hinzufügen oder wir können es einem Collider 2D hinzufügen, basierend auf dem, was wir ihm geben. Wenn wir ihm also ein Array geben, wird dieses Ergebnis ein Array sein. Aber da wir ihm derzeit eine Liste geben, wird dies als Liste sein, speichern Sie diesen Datensatz. Lassen Sie uns das noch einmal durchgehen. Wir haben einen Kontaktfilter erstellt. Wir haben verstanden, welche Kontaktfilter durch die Unit-Dokumentationen sind. Wir haben einen Collider 2D hinzugefügt. Das ist ganz einfach. Wir haben eine Referenz, die die get-Komponente verwendet. Wir wissen bereits, wie wir das machen. Wir greifen auf den Kontaktfilter zu. Wir verwenden eine Methode namens „Ebenenmaske einstellen“. Diese gesetzte Ebenenmaske benötigt eine, sogenannte Ebenenmaske, nicht nur eine Ebene, eine Ebenenmaske. Was wir also machen, wir nach „Layer Mask“ gesucht. Und das wird für Sie tatsächlich eine Herausforderung für Sie sein. Suchen Sie nach Ebenenmaske, holen Sie sich die Ebenenmaske und stellen Sie fest, wie wir diese Methode gefunden haben. Das ist also ein ganz anderer Prozess. Wir verwenden die get-Ebenenmaske, die Teil der Ebenenmaske und der Unity-Engine-Ebenenmaske ist, und verwenden den Namen der feindlichen Ebene. Was passiert jetzt, sobald dieser Raummanager anfängt? Zuallererst findet es bei Trigger Enter den Feind. Zweitens schaut es durch alle Feinde, die bereits hier sind. Und wie gesagt, gibt es viele Möglichkeiten, Feinde zu fangen. Es gibt Fundobjekte vom Typ. Wir können den Unternehmer benutzen können, aber ich dachte, dies ist eine großartige Gelegenheit, sich über Listen zu informieren. Erfahren Sie mehr über den Kontaktfilter in „Nie wissen wann“. Manchmal befinden Sie sich möglicherweise in einer Situation und Programmierung, in der Sie es ohne Kontaktfilter einfach nicht tun können. Also spar dir das alles auf. Wir gehen zurück in Unity und schauen uns jetzt unsere Feinde an, sobald wir rennen, sollten wir die drei Feinde hier sehen. Hoffentlich führe das Spiel aus. Da sind wir los. Exzellent. Und Sie können sehen, dass wir alle Collider von Skelett eins, Skelett und Skelett drei haben, oder wie Sie es nennen möchten. Hervorragend, Wir haben einen Hinweis auf sie. Der nächste Schritt besteht also darin, alle zu töten und die Türen mit Blau zu öffnen, die im nächsten Video sicherstellen, dass Sie Ihre Änderungen abschließen. Stellen Sie sicher, dass Sie eine Rezension hinterlassen und wir sehen uns im nächsten Video. 38. Türen zum Öffnen 00: Willkommen zurück, meine Spieleentwickler. In diesem Video machen wir das Spiel so viel cooler. Endlich lässt dieses Video alles fantastisch aussehen. Also beginnen wir mit dem Spiel. Wir laufen herum, oh nein, es gibt eine Tür. Es ist geschlossen. Oh nein. Lass uns zur nächsten Tür gehen. Oh, nein, aber es ist nah dran. Es sind drei Feinde hier drin. Oh, sie haben versucht zu schießen, während sie versuchen, als nein zu folgen, wir töten den ersten. Vielleicht nimmt er viel davon, es ist der zweite. Wie viele braucht es? Einer traf seine stirbt und sein Vergnügen, Blut. Wir nennen das hier. Wir haben versucht, den letzten zu töten. Wir erschießen ihn, als er zurückschießt. Nein, das ist er nicht. Warte, aber Tim shu Okay, es schießt nicht. Also hätten wir sollen, dass Dinge in unsere Richtung fliegen. Wir sollten um ihn herum und er stirbt. Erstaunlich. Also los gehst du. Die Türen sind offen. Wir sind durchgegangen und jetzt können wir zum nächsten Level gehen oder wir könnten die andere Tür benutzen, weil sie sich auch öffnet, wenn wir alle unsere Feinde töten. Verschwenden wir also keine Zeit mehr. Wir werden das Ding genau hier reparieren, die blauen Dinge um uns herum sehen, und lasst uns anfangen. Oh, Fall. Jetzt ist es an der Zeit, die Türen zu öffnen, wann immer die Feinde getötet werden, gehen wir in die Feinde hier oder in den Raum. Führen Sie das Spiel tatsächlich aus. Und ich werde versuchen, ein paar Feinde zu töten, die sich geöffnet haben. Da gehst du. Erschießen wir den Feind genau hier. Drei Kugeln sollten ausreichen und er ist tot. Und du siehst genau hier, dass er jetzt vermisst wird. Sehr gut. Er wird vermisst. Der zweite fehlt. Der dritte fehlt ebenfalls, also haben wir keine Feinde mehr. Die Tür sollte sich öffnen. Das einzige Problem ist, dass wir diese Elemente immer noch hier haben. Aber glücklicherweise können wir den Artikel sehr einfach entfernen, wenn wir mit Listen arbeiten . So wie wir das machen, während wir hier im Roommanager Update auf unsere Aktualisierung eingehen. Und wir werden eine weitere Schleife erstellen. Und dieses Mal wird diese Schleife eine for-Schleife sein. Was ist eine for-Schleife? Lass es mich erklären. Was ist eine for-Schleife? Loops können einen Codenummerblock ausführen. Mal. Loops sind praktisch, wenn Sie denselben Code jedes Mal immer wieder mit einem anderen Wert ausführen möchten. Jetzt vertiefe ich mich etwas tiefer in Schleifen als mit den für jeden, aber keine Sorge, dass Schleifen für jede Schleife ähnlich sind. Aber dieses Mal verwenden wir, anstatt die Elemente zu verwenden, die Indizes und die Seite der Liste oder des Arrays. Sie können also sehen, dass dies weiterhin Code im Inneren ausführt , bis ich ein bestimmtes Limit erreicht habe. Was heißt das? Schauen wir uns diese Syntax genau hier an und verstehen sie besser. Wir beginnen damit zu schreiben, dass es gut ist. Wir instanziieren eine Variable, die eine Ganzzahl ist, höchstwahrscheinlich ein I gleich 0 ist. Wir fügen dann dieses Semikolon hinzu. Wir sagen ihm dann, auf welche Grenze das Ich weiter hinarbeiten werde. Und dann hören wir auf und jedes Mal fügen wir eins ins Auge. Du kannst also genau hier sehen, dieses Plus bedeutet, dass es ich plus eins bin. Also fangen wir bei 0 an, sagen wir, das bestimmte Limit ist drei. Wir werden weiter durchlaufen, bis ich nicht länger als drei Jahre alt bin. Also fangen wir bei 0 an, wir machen ein paar Sachen, wir führen den Code I plus aus. Das heißt, ich werde eins. Es sind immer noch weniger als drei. Großartig, wir machen weiter. Wir haben ich plus zwei, da es immer noch weniger als drei ist. Es ist, wir fahren fort. Ich bin gleich drei, es ist immer noch weniger als drei. Nein, das liegt nicht daran, dass wir weniger als 3 oder weniger als das bestimmte Limit sein müssen. Und wir werden das benutzen, um zu sehen, dass wir alle Feinde durchzählen werden. Und wenn wir am letzten Feind sind, werden wir weitermachen und die Schleife beenden. Und auf jeder Ebene werden wir prüfen, ob dieser Feind ein leeres Spielobjekt ist, dann werden wir den gesamten Gegenstand aus der Liste entfernen. Also lasst uns anfangen. Das wird ein bisschen kompliziert sein, aber ertrag mit mir. Also werde ich weitermachen und eine for-Schleife erstellen. Und anstatt vom ersten Element zum letzten Element zu gehen, fange ich hinten an. Also werde ich einen int haben Ich gleich Feinden Punktzahl minus1. Zuallererst, was ist der Graf? Punktzahl der Feinde ist die Anzahl der Gegenstände, die wir in der Liste haben. Und unser Fall, das werden die drei Skelette sein. Warum füge ich minus eins hinzu? Weil Listen genauso funktionieren wie Arrays dort, wo wir anfangen, zählen die Indizierung von 0. Das letzte Element der drei Skelette werden zwei sein. Wir haben die Skelett-Nullen, Skelett ein Skelett auch. Die Zählung ist also gleich drei, weil wir drei Skelette haben. Das erste Element sollte also die Anzahl minus eins sein. Ich hoffe, das wird verstanden. Nun, weil wir von hinten anfangen, was ist unser Ziel? Wir werden weiter durchlaufen. Während ich größer als minus eins bin. Warum ist das Minus1? Nun, denn wenn wir auf 0 kommen, wollen wir immer noch die Liste durchlaufen. Und eins kriegen wir zwei minus eins, weil ich das einfach erledigen lasse. Da gehst du. Weil wir gehen. Minus minus. Genau wie Plus fügt Plus ein Minus hinzu, minus, minus entfernt einen. Also nochmal, was passiert? Wir beginnen von der Rückseite der Liste. Wir stellen sicher, dass wir immer größer als minus eins sind, was bedeutet, dass wir 0 nicht als das letzte Element haben wollen, das wir durchmachen. Und schließlich fügen wir I minus minus hinzu. Also lasst uns eins fortsetzen. Was machen wir hier drin? Nun, wir werden prüfen, ob die Feinde oder der Feind an der Position, in der ich gleich null ist. Null bedeutet also, dass er vermisst wird. Wir haben zuvor in einem früheren Video gesehen, als wir die Skelette töten, das Element da drin fehlte. Das heißt, dass es das nicht ist. Wenn also der Feind oder der Collider 2D bei diesem Feind fehlt, werden wir auf die Feinde zugreifen. Dot remove at, und wir werden es an der Position I entfernen. Also noch einmal, schauen wir uns es noch einmal an und verstehen, was passiert. Wir beginnen am Ende der Linie, weil wir Dinge von unten nach entfernen wollen, bis wir zum ersten kommen. Also fangen wir von hinten an. Wir verwenden count minus eins, da count die Anzahl der Elemente ist, aber die darin enthaltenen Elemente von 0 indiziert werden. Also fangen wir bei 0, 1, 2 an, aber die Zählung ist drei, also entfernen wir einen. Wir entfernen eine weiter, indem wir KI minus-minus verwenden, bis wir nicht mehr größer als minus eins sind. Ich meine, wenn wir weniger als minus eins sind, warum? Weil der letzte 0 sein wird, also minus1, wenn wir minus1 werden, bedeutet das, dass wir beendet sind und wir nicht mehr mit der Schleife fortfahren wollen. Und jedes Mal, wenn wir feststellen, dass die Feinde fehlen oder null sind, werden wir sie von der Liste entfernen. Großartig, lasst uns das aufheben. Gehen wir zurück in unser Spiel und drucken wir hier die Feinde aus. Okay, also enemies.gov. Und lass uns einfach sehen, was passiert. Also zurück in unserem Spiel werde ich den Gewinn machen. Ich habe die Liste der Feinde, ich schieße zuerst 1, zweite 1 und den dritten. Warten wir also, bis die Bücher erscheinen. Da gehst du. Du siehst ein Pop-up. Oh, okay. Jetzt können Sie sehen, dass die Liste leer ist. Es gibt etwas, das ich vergessen habe zu sagen. Wir können also sehen, dass wir diese haben, und wir haben uns den Rat nicht angesehen, selbst wenn dies erscheinen mag. Also die Anzahl der Feinde eine Drei, wenn ich sie erschieße, stirbt einer von ihnen, das letzte Element wird entfernt. Deshalb gehen wir von unten nach oben. Die Anzahl der Feinde liegt also bei 0. Die Kugeln, die dafür funktionieren, gingen also weiter. Auch. Dieser, da gehst du, Die Anzahl der Elemente oder die Anzahl der Feinde ist 0. Großartig. Jetzt wissen wir, dass wir die Feinde töten können. Wir können sie aus der Liste entfernen. Schließlich wollen wir die Tür öffnen, wann immer die Anzahl der Feinde 0 ist, und das wird Teil deiner Herausforderung sein. Deine Herausforderung besteht darin, die Türen zu öffnen, nachdem die Feinde gestorben sind. Prüfen Sie also, ob die Feindliste leer ist. Das wird sein, ich weiß nicht, ich überlasse es dir. Dann musst du durch alle Türen und Türen gehen, um sie zu schließen. Und du musst alle Türen aktivieren. Und ich gebe dir einen kleinen Hinweis. Sie müssen die Listenlänge überprüfen. Sie können die Punktzahl verwenden. Nun, wir haben das schon gemacht. Wenn du willst. Sie können eine für jede Schleife verwenden, um durch die Türen zu gehen, oder Sie können versuchen die for-Schleife zu verwenden, die wir gerade gelernt haben, und um die Länge des Arrays zu erhalten, dies ist eine gute Übung in Schleifen. Wir haben viele Loops. Das ist gut. Also pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Also behalte ich den Debugger einfach hier. Und was wir tun werden, wir werden prüfen, ob die Punktzahl der Feinde gleich 0 ist. Dann werden wir die for-Schleife benutzen. Ich erstelle einen int ich gleich 0. Also fangen wir mit der 0 an. Wir werden weiter schleifen, während ich weniger als die Türen bin, um zu öffnen oder zu entschuldigen, Türen, um die Punktlänge zu schließen. Wenn wir auf die Länge eines Arrays zugreifen möchten, verwenden wir die Punktlänge, wenn wir auf die Länge der Liste zugreifen möchten, wir verwenden die Punktzahl. Also los gehst du. Jetzt hast du zwei Beispiele. Sie können hier sogar einen Kommentar hinzufügen, um sicherzustellen, dass Sie sich erinnern. Und bei jedem Schritt werden wir einen hinzufügen. Also jetzt Tür zu schließen oder tatsächlich Tür zu schließen. Ja. Und ich werde mit dem I darauf zugreifen, weil ich jedes Mal zunimmt. Sagen wir also, wir haben bereits zwei Türen. Also haben wir Index 0 und Index eins. Wir fangen bei 0 an. Wir lassen die Tür um 0 schließen. Wir setzen aktiv auf false. Da sind wir los. Wir werden die Tür nicht mehr haben. Wir prüfen, ob das I, das derzeit 0 ist, kleiner ist als die Punktlänge der Türen, was 2 ist. Also ja, 0 ist weniger als 2. Ich plus, plus, oder tatsächlich machen wir das und dann plus plus. Wir gehen zurück, ich bin, okay, also gehen wir nicht mehr hierher zurück Ich bin jetzt eins ist eins weniger als zwei? Ja, das ist es. Wir haben r gleich 0 dot-dot-dot active, tut mir leid, ich gleich 1. Wir sind aktiv. Da sind wir los. Es ist falsch. Schließlich werde ich zwei. Sind zwei weniger als zwei? Nein, ist es nicht. Geh aus der Schleife. alles sparen wir. Wir gehen zurück in unser Spiel. Wir führen den Gewinn aus, wir haben die Konsole genau hier, so dass die Anzahl der Feinde, F3, Sie sehen können. Wir sollten 12, okay, die Feinde, die wir ihn erschießen. Zweitens, wie viele Kugeln braucht es? Eins? Es braucht nur einen. Nett. Mal sehen warum ist er? Weil ich mich erinnere, dass wir sein Leben zu drei Jahren hinzugefügt haben. Da gehst du. Der Feind ist gestorben. Man sieht, dass sich bei 0 die Türen öffnen und wir durchgehen können. Wie cool ist das? Endlich scheint alles zu funktionieren, okay. Es gibt ein paar Bugs. Einer von ihnen ist, dass das Blut wegen der Animationen nicht verschwindet. Wir haben den Schlüssel am Ende noch nicht hinzugefügt. Das Skelett genau hier. Wie groß ist sein Leben? Das Feindhaus ist drei, also scheint es ein Problem zu geben. Er stirbt sofort. Warum? Denn wenn wir in den Layer Bullet-Controller gehen, beträgt der Schadensbetrag 100 k. Der Schadensbetrag ist also standardisiert. Das Leben der Feinde ist 3. Denk, das ist das Problem. Also lass mich die Hälfte von diesem Kerl machen. Also möchte ich nur sicherstellen, dass wir nicht etwas Falsches haben, das das Spiel ausführt. Denn manchmal nennen wir eine Methode vielleicht zu oft, so dass wir zu viel Schaden anrichten. Also wenn ich nachschaue, okay, also los geht's. Er braucht mehrere Kugeln. 123 und los geht's. Okay, also funktioniert alles gut. Die Türen öffnen sich, wenn wir alle Feinde töten, alles scheint zu funktionieren. Wir haben in diesem Abschnitt viel über Loops gelernt, wir haben tatsächlich viele Informationen gelernt. Ich hoffe es gefällt dir. Ich hoffe du hast Spaß. Ich hoffe, du lernst viel. Ich hoffe, du recherchierst. Ich hoffe, dass Sie Ihre Änderungen immer begehen. Ich hoffe, dass Ihre Gehirne für Spieleentwickler mit jedem einzelnen Video stärker werden. Ich hoffe, du bist nicht sehr frustriert und ich hoffe, du bist sehr glücklich. Wir sehen uns also im nächsten Abschnitt. Vergiss nicht, eine Bewertung hinzuzufügen. 39. Teil 6: Level – Scene: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und dies ist meiner Meinung nach wirklich eines der coolsten Videos, die wir bisher gemacht haben. Was wir also tun werden, ist, dass wir das Spiel einfach ausführen werden. Und bevor ich das mache, weil wir experimentieren, werde ich diese Tür einfach wieder aus dem Weg bewegen . Also spielen wir, wir öffnen die Tür mit irgendeiner Art von Töten und whoa, wir kommen her. Was ist das? Wow, ein Portal. Was denkst du würde passieren, wenn ich versuchen würde, es vielleicht zu springen? Nun, was ist passiert? Nun, wir sind auf Stufe 2 oder ich meine auf Stufe eins, wir waren auf Stufe zwei, hätten darauf hinweisen sollen, aber Sie können genau hier sehen, dass wir in Stufe zwei beginnen und dann auf Stufe 1 gehen. Wir haben etwas über Portale gelernt, wir lernen etwas über das Sündenmanagement und lernen, wie man eine String-Variable verwendet. Verschwenden wir also keine Zeit mehr. Lasst uns anfangen. Oh, also Zeit für ein gewisses Maß an Fluss. Und das erste, was wir für den Levelfluss als Szenenmanagement und die Art und Weise, wie wir Szenen verwalten, benötigen Szenenmanagement und die Art und Weise, wie wir Szenen verwalten , ist durch einen Szenenmanager, wie praktisch ist das? Aber bevor wir all das tun, müssen wir als erstes eine Art Portal erstellen. Also ein Portal, das uns auf eine andere Ebene bringt. Bevor wir das tun, brauchen wir ein echtes anderes Level, auf das wir gehen können. Also gehe ich in die Szenen hier drin und dupliziere s2. Ich öffne es. Jetzt haben wir drei gesehen. Es ist dasselbe, es ist genau das Gleiche wie der s2, aber alles, was ich ändern werde, sind die Fliesen auf dem Boden. Also gehe ich in die Kachelpalette. Ich entscheide mich für Boden und mache das zu einer Farbe von Grün. Und ich ändere das einfach ein bisschen. Da gehst du. Das ist also ein Anfall, was ich tun möchte. Ich werde diesen Teil, diesen Teil und diesen Teil behandeln , nur damit wir zwischen ihnen unterscheiden können. Ich möchte keine Zeit damit verbringen, ein ganz anderes Level zu erstellen. Es wird viel kosten und es gibt keinen wirklichen Zweck, aber für Sie, während Sie Ihr Spiel erstellen, empfehle ich Ihnen , den Ärger zu machen. Es ist eine gute Praxis, wenn Sie aus den Stilen Ihr eigenes Spiel erstellen möchten. Genug reden, lass uns anfangen. Spar dir das auf. Gehen wir zurück zu Test2. Jetzt haben wir die Freunde zwischen test2 und test3. Ich denke, es ist Zeit, dies Level 2 und Level 3 zu nennen. Also Level 2, Level 1 oder nein. Lassen Sie uns das als ein behalten, das war eigentlich ein Test. Und Stufe drei. Eigentlich sollte das so sein, okay. Warte eine Sekunde. Lasst uns diese Stufe 3 beibehalten. Klar, wir laden, das wird Level eins. Und das ist Stufe zwei. Also haben wir nur eins, Ebene eins, Stufe zwei, okay, also zurück in Level 2, und hier werden wir eine Art Exit-Portal haben. Ich habe dir die Ressourcen für die Portale zur Verfügung gestellt, und ich habe mich für dieses entschieden. Und du siehst, dass du 25 oder 20 Portale hast, weiß ich nicht. Und du hast auch diese grüne, aber ich benutze die 15. War es 15 Jahre? Es war 15. Also zurück hier in den Sprites, klicken Sie mit der rechten Maustaste auf Ordner erstellen, Portal bei Enter. Doppelklicken Sie hier rein und ich füge alle Bilder hinzu und warte, bis sie hinzugefügt werden. Sehr gut. Ich klicke mit der rechten Maustaste, um ein leeres Spielobjekt zu erstellen , das Portal Enter Specter genannt wird . Setzen Sie z auf 0. Da sind wir los. Lasst es uns hier reinbringen. Eine Komponente hinzufügen oder was? Fügen wir keine Komponente hinzu. Lass uns einen Animator hinzufügen. Wir gehen ans Fenster. Und bevor wir das tun, fügen wir eines der Bilder hier zum Portal hinzu. Können wir es sofort hinzufügen? Nein, kann nicht. Fügen wir einen Sprite-Render hinzu. Und wir fügen genau dieses Bild hier hinzu. Und lass es uns als Spieler festlegen. Und da sind wir los. Man sieht, dass es ein bisschen klein ist. Wählen wir alle Bilder aus und lassen Sie sie 50 anwenden. Also wird es sich verdoppeln, okay, Mädchen bewerten und darauf hinweisen. Wird es besser? Lassen Sie uns hineinzoomen und sehen, dass Punkt nicht der beste Filter ist. Manchmal hält man es bilinear, es ist Butter, und in diesem Fall ist es das. also zweilinearer, sie sind glatter, Sie werden feststellen, dass es jetzt etwas glatter ist. Mir gefällt es besser, mach damit was du willst. Und weißt du was? Ich bin eigentlich, weil das Zimmer schon groß ist, ich schaffe es 25. Ja, da sind wir los. Okay, 25 ist gut. Nett. Also los geht's. Wir haben dieses Portal genau hier. Lass uns ins Fenster gehen. Animationen, Animationen. Wir haben also bereits darüber berichtet, wie wir das machen. Ich werde nicht zu sehr ins Detail gehen. Ich erstelle Assets, Animationen, Portal. Stellen Sie sicher, dass Sie immer Ordner erstellen und alles klein halten. Also wirbeln das Portal. Oder das wird nur der Animator oder Nano sein, und das ist die Animation. Wirbelt, weil das Portal wirbelt. Ich wähle all diese aus und ziehe sie hier rein. Wenn wir jetzt spielen, los geht's. Ich denke, das ist gut genug. Sie müssen es nicht größer oder kleiner machen. Exzellent. Jetzt haben wir dieses Portal funktioniert. Das nächste, was wir tun werden, ist offensichtlich, dass wir hier eine Art Collider hinzufügen werden . Fügen Sie also einen Kreis hinzu, Kreis Collider 2D, und er ist ein bisschen groß. Lassen Sie uns den Radius etwas kleiner machen , damit der Feind, der Feind, der Spieler sofort ins Portal springen muss, um das nächste Level teleportiert zu werden oder welches Level auch immer wir unterscheiden möchten. Und das ist der Teil, in dem wir wählen, welchen, wo wollen wir teleportiert werden? Muss es immer das nächste Level nicht sein, denn später in der, glaube ich, dass der Abschnitt, in dem wir Levels generieren, denke ich, dass es der letzte ist. Wir werden Zufallsstufen wählen , genau wie wir es in Hades getan haben. Also erstellen wir verschiedene Arten von Layouts, haben verschiedene Arten von Ebenen, die wir durchlaufen. Gehen wir also in die Drehbücher ein. Fügen wir hier ein Skript für das Portal hinzu. Wir nennen es Level Exit. Nennen wir es die Level, der Levelfluss, der sich verlangsamt. Ich denke, das ist gut. rechten Maustaste hier und erstellen Sie ein C-Sharp-Skript , das der Level Exit sein wird Ich kann mich nicht einmal erinnern, ob wir andere Skripte im Zusammenhang mit der Stufe SOPA haben werden . Lassen Sie es uns dabei behalten. Also klicke ich hier an. Und natürlich werden wir es zum Auslöser machen. Dieser Collider sollte ein Auslöser sein. Und fügen wir die Stufe des Exits hinzu. Und schließlich gehe ich in die Prefabs und gehe hier hin und erstelle ein Prefab für das, soll ich hier einfach ein Portal erstellen? Nehmen wir an, wir können hier hinzufügen, erstellen, etwas wie vielleicht, okay, lass uns einfach die Portale erstellen, Portale. Mach das auf. Portal. Und vielleicht Portal eins, vielleicht kein Port eins. Lassen Sie es uns einfach im Portal behalten, speichern Sie das alles. Und jetzt öffnen wir das Drehbuch hier drin. Also haben wir den Level Exit geöffnet und was wollen wir hier drin machen? Also das erste, was wir als offensichtlich ein serialisiertes Feld haben wollen , das eine Zeichenfolge vom Typ String sein wird. Dies ist das erste Mal, dass wir eine Variable vom Typ String erstellen , glaube ich. Und das wird das zu ladende Level sein. Toll, also können wir jetzt wieder reingehen, zeigt das Portal. Und wir können das Level auswählen, zu dem wir gehen möchten. Und so wie wir das tun, müssen wir sicherstellen, dass wir genau den Namen bekommen, den wir wollen. Also und Szenen, die wir kopieren, zum Beispiel Level sind wir gerade auf Level 2. Und es wiegt keine Sorgen. Los geht's und zwei, wir gehen von Stufe zwei auf Stufe eins. Klar. Warum nicht? Also werden wir dies sperren und Level auswählen, um Level 1 auszuwählen. Kopiere das, füge es hier ein. Oh, nein, warte, warte, warte, warte. Wir sollten diesen auswählen und jetzt kopieren wir es hier. Also jetzt sollten wir dieses Portal, wenn wir es auslösen, wenn wir es auslösen, zur Last der Stufe 2 gehen. Aber wie werden wir das eigentlich machen? Ich gehe hier wieder rein. Und lasst uns entfernen, beginne vorerst ein Update. Erst jetzt brauchen wir sie später Kurs. Und hier drin werde ich einen Unternehmer gründen geben Sie d ein. Wir wissen bereits, wie das funktioniert. Wir werden natürlich sicherstellen, dass die Kollision, das Tag, dem Spieler O entspricht. Also denken Sie jetzt, Oh, Michael, was ist das? Was, was ist das Vergleichs-Tag? Nun, du kannst vergleichs-Tag verwenden ist viel besser, aber ich wollte dir einen anderen Weg zeigen und jetzt ist es Zeit, die nächste Szene zu laden. Wie werden wir das machen? Wie bewegen wir uns tatsächlich von einer Szene zur anderen? Lass mich es dir nur ein bisschen zeigen. Das ist also der Szenenmanager und Sie können genau hier sehen, dass wir viele Dinge haben, mit denen wir statische Methoden und Ereignisse verwenden können. Ich überlasse es dir, denn später werden wir eine kleine Herausforderung haben. Aber womit ich Ihnen helfen werde, ist, dass ich sicherstellen werde , dass wir hier, wann immer wir Szenen verwenden möchten, das Using Unity Engine Dot Scene Management hinzufügen müssen . Spar dir das auf. Und jetzt können wir viele Dinge mit unseren Szenen machen oder wir können unsere Szenen tatsächlich verwalten. Bevor ich Ihnen also die Herausforderung stellen werde , herauszufinden, welche Methode wir verwenden werden oder wie können Sie diese Einheit verwenden? Wo ist der Szenenmanager? Ich zeige Ihnen, wie Sie tatsächlich darauf zugreifen können und weil ich möchte, dass diese Herausforderung für Sie sofort arbeitet, wenn Sie anfangen. Wenn Sie genau hier in die Datei gehen, haben wir etwas namens Build-Einstellungen. Wenn wir darauf klicken, können wir die Szenen in gebaut sehen. Und hier bauen wir unser Spiel tatsächlich auf. Und Sie können sehen, dass wir mehrere Optionen haben. Wir können Windows verwenden, wir können iOS oder was auch immer das ist, tvOS, ios, PS4, PS5, Xbox One usw. verwenden , tvOS, ios, PS4, PS5 . Sie können Dinge für verschiedene Plattformen erstellen, und der PC ist derjenige, den wir verwenden werden. Wir können verschiedene Dinge tun. Und hier fügst du alle Szenen oder Level hinzu, die du in deinem Spiel haben wirst. Die einzige Szene, die in die Rechnung aufgenommen wird, ist vorerst der Szene-Test1. Und ohne hier die Saison hinzuzufügen, können Sie mit dem Scene Manager nicht von einem zum anderen reisen . So gut so klar, ich werde das Level eins hinzufügen. Und das können wir auch durch offene Szenen durch AD tun. Da gehst du. Sie können in Szene 2 sehen weil es sich um eine offene Szene handelt. Okay. Großartig. Können wir ein anderes Mal hinzufügen? Nein, das können wir nicht. Und Sie können auch sehen, dass diese Szenen Indizes enthalten. Wir werden derzeit keine Indizes der Szenen verwenden, aber denken Sie daran, denn später werden sie auftauchen. Also Einstellungen, speichern Sie das erneut, File BuildSettings. Da gehst du. bei allen Szenen, die Sie haben, wann immer Sie den Scene Manager verwenden möchten , um von einem zum anderen zu wechseln Schließen Sie diese bei allen Szenen, die Sie haben, wann immer Sie den Scene Manager verwenden möchten, um von einem zum anderen zu wechseln. Was werden wir tun? Wir werden Ihnen die Herausforderung stellen, die nächste Szene zu laden. Schauen Sie sich also den Szenenmanager in Unity's Dokumentation finden Sie die entsprechende Funktion, die uns helfen kann, in eine andere Szene zu gehen. Das ist also Astronautengebrauch. schließlich sicher, dass es sich um eine Methode handelt, die eine Zeichenfolge als Argument verwendet. Also pausiere das Video sofort und geh zum Chaldäer. Okay, Willkommen zurück. Sagen wir also, ich bin Student von Michael Moore und ich bin einfach mehr, mehr, was alle sagen. Und ich lerne gerade, wie man den Szenenmanager benutzt. Okay. Was ist das Ziel, was ist die Herausforderung? Er bat mich, dass ich die nächste Szene laden solle . Okay, großartig. Lass uns nachschauen. Was haben wir? Also haben wir gesehen, wie Zählung zu zählen Gebäude nicht so aussieht , als würde es helfen, gesehen zu schaffen. Nee. Wird gesehen. Nee. Ich glaube nicht, dass das stattfindet. Steigt bei nein ein. Bauen mit Namen, wird gesehen. Laden, laden Sie eine Szene, lädt die Szene nach ihrem Namen. Warte, was war die Herausforderung? String als Argument, o k. Das ist ein bisschen schneller als ich sollte, aber keine Sorge. Szene laden, Klicken wir auf Gesehen laden. Hoffentlich haben wir Internet, das dies tun wird. Deklaration, okay, wir laden gesehen. Wir können den Symbolindex verwenden oder wir können denselben Namen verwenden, Exzellenz, Ihren Namen, Namen. Scription lädt die Szene. Hervorragend, das werde ich benutzen. Also jetzt bei Trigger Enter, wenn es der Spieler ist, was wir tun werden, da wir sehen werden , wie das tatsächlich gemacht wird. Wenn ich also hier nach unten scrolle, okay, also hat die Punktladung des Szenenmanagers sie gesehen. Brauche ich noch etwas? Nein, nichts. Lasst uns weitermachen. Oder vielleicht denken Sie an dieser Stelle vielleicht darüber nach, was ist diese Ladung gesehen Moldau Additiv? Nun, wenn du es nicht weißt, lass es uns einfach versuchen. Also Szenenmanager, Punkt-Load-Szene. Ich öffne die Klammern und ich sehe genau hier diese von sechs. Also baut der Szene-Index auf. Nein, das will ich nicht. Okay, sehen Sie nennen das ist was ich will, aber wir haben vier andere und das ist ein guter Zeitpunkt, um Ihnen das beizubringen. Manchmal kann eine Methode 12 oder vielleicht sogar mehr Argumente annehmen 12 oder vielleicht sogar mehr Argumente basierend auf dem, was Sie ihr geben, sie funktioniert. So können wir zum Beispiel den Modus hinzufügen. Sie können genau hier sehen, den Szenenmodus laden, darüber haben wir genau hier gesprochen. Laden Sie also den Szenenmodus, additiv. Ich weiß nicht mal was das ist. Aber hier drin sieht man, dass es eine Option dafür gibt. Wie auch immer, das war eine Randnotiz. Was wollen wir verwenden? Welche Szene? Nun, wir haben es schon mit dem Level zu laden. Also wird Lovell als diese Szene laden , die wir laden werden. Also sollte alles gut funktionieren. Ich gehe zurück nach Unity. Speichern Sie das, machen Sie das Spiel ein bisschen größer. Außerdem muss ich alle Feinde töten. Und ehrlich gesagt habe ich keine Zeit, sie alle zu töten. Das heißt, lass die Türen aufgeschwungen werden, führe das Spiel aus. Außerdem wird es auf jeden Fall geschlossen. Und wir haben diese Zeilen, okay? Maximieren Sie also zunächst nicht beim Spiel. Jetzt führe das Spiel aus. Diese Zeilen stören mich ein wenig, also wähle ich Tür 1, ich deaktiviere. Ich werde durchgehen, warum kann ich es schießen? Ich glaube, ich kann es. Es wird nicht zerstört. Nein, tut es nicht. Wenn ich also nah gehe, kannst du sehen, dass ich auf Level 2 bin, ich bin auf 0. Was ist passiert? Was ist passiert? Ich bin auf Stufe 1. Wo, wie cool ist das? Ernsthaft, Leute? Dies ist eines der coolsten Dinge , die heute passiert sind. Plötzlich sind wir durch ein Portal von Level 2 auf Stufe 1 übergegangen . Sehr nett. Jetzt funktioniert alles, aber es ist sehr schnell. Und ehrlich gesagt wollen wir nicht so schnell passieren. Wir wollen es etwas langsam machen und dem Spiel etwas mehr Charakter verleihen , während wir es durchlaufen. Wir sehen uns also im nächsten Video. Vergessen Sie natürlich nicht, Ihre Änderungen zu übernehmen. Sieh mal, wie weit wir gekommen sind. Schau, warum ich es liebe, meine Änderungen zu begehen. Nun, wir begannen mit einem ersten Commit, fügten Leerlauf und hast Animationen hinzugefügt Spieler hinzugefügt Kugeln, erstellten Animationen für den Feind, Schaden, feindliche Verschlechterung. Ich weiß nicht einmal, was das Schloss ist, wie viel wir erreicht haben und wir sind vielleicht nicht einmal auf halbem Weg. Nun, sehr nett. Ich hoffe, du hast Spaß, ich hoffe es gefällt dir und wir sehen uns im nächsten Video. 40. Level: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video werden wir nicht nur auf die nächste Stufe wechseln, wir werden auch übergehen. Sie sind viel cooler. Wenn wir jetzt durch das Portal gehen, gehen wir nicht sofort. Wir warten zwei Sekunden und dann gehen wir los und wir können dies sogar vom Level-Manager so gut anpassen, wie wir wollen. Sie können also sehen, dass wir jetzt eine zentrale Zahl haben , die der Level-Manager ist. Wir werden Coroutinen, Szenenmanager und all das gute Zeug benutzen . Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, okay, also brauchen wir jetzt einen Level-Manager, denn , okay, es macht alles Spaß und Spiele wenn das Portal uns umstellt. Aber wenn es um große Spiele geht, wollen wir nicht, dass dieses spezielle Objekt Kontrolle über die Art und Weise hat, wie wir uns durch Szenen bewegen. Es ist viel besser, den Schwan bestimmen zu lassen, durch welches Level wir uns bewegen möchten, und dann ein zentraleres Objekt zu haben, nämlich der Levelmanager, der den Prozess der Bewegung von Level zu Level bewältigt . Dies später, wenn Sie wachsen. Im Moment muss es nicht so sein. Sie können einfach das Portal benutzen. Das Spiel wird für immer funktionieren. Wenn es um große Spiele geht, das eigentliche Objekt den Job nicht. Sie haben eine mehr, sagen wir eine größere Autorität, einen größeren Kopf, nämlich der Level-Manager , der damit umgeht. Also klicke ich mit der rechten Maustaste, um ein Leeres zu erstellen , setze seine Position zurück. Und das wird der Levelmanager sein. Sie können zufrieden stellen, wo immer Sie wollen. Und Sie können direkt hier in die Skripte gehen und zu den Managern mit der rechten Maustaste auf C-Sharp-Skript erstellen klicken. Der Levelmanager. Drücken Sie Enter und warten Sie ein wenig dass es den Ziel-Level-Manager beim Scripting hier kompiliert . Und lasst uns weitermachen und es öffnen. Als Erstes wollen wir diesen Levelmanager und die Instanz erstellen. Was ist eine Instanz? Die Instanz ermöglicht es uns, diesen Level-Manager überall anzurufen und das zu verwenden was immer wertvoll ist, da öffentlich und welche Methode uns öffentlich zur Verfügung steht, erstellt wird, sie zu einer Instanz machen und dann nenne es und du wirst verstehen, wie das funktioniert. Was wir also tun können, ist zunächst, wir einen öffentlichen Manager für statische Ebene erstellen bedeutet, dass diese Variable außerhalb des Typ-Level-Managers ist und diese Instanz aufruft. Und dann werden wir am Anfang die Instanz auf diese gespeicherte setzen. Okay, was passiert gerade? Zuallererst, öffentlich, wissen wir, welche Öffentlichkeit statisch ist. Was ist statisch? Statisch bedeutet, dass wir durch den gesamten Code das Waschbecken haben werden. Ob wir es also vom Spieler-Controller aus nennen, vom Bullet-Aufprall, vom Raummanager. Die Level-Manager-Instanz ist immer gleich, wenn wir das Buch instanziieren, z. B. ist jedes einzelne Aufzählungszeichen ein Klon. Erinnerst du dich? Wenn ich das Spiel führe, lass mich dir einfach zeigen, was ich meine. Also schieße ich ein paar Kugeln, unterbreche das Spiel. Sie können sehen, dass jeder von ihnen ein Klon ist. Wenn ich also versuche, auf den Player Bullet Controller zuzugreifen, wenn er beispielsweise nicht statisch ist, eine Variable, auf die er zugreifen wird, wird es anders sein als zum Beispiel eine Variable, die hier oder hier ist. Aber wenn ich eine statische Variable für die Spielerkugel erstelle, dann ist die Variable, die statische Variable, die unabhängig davon, auf welche Kugel ich zugreife , dieselbe. Statisch bedeutet also, dass es während des gesamten Gewinns gleich ist, wo und wann immer Sie darauf zugreifen. Das ist sehr wichtig, wenn es um eine Statik geht. Es ist also der Typ-Level-Manager, der ziemlich einfach zu verstehen ist und sein Name ist Instanz. Wir können es nennen, wie immer wir wollen. Wir können es Michael nennen, wenn du willst, was wird es als Instanz behalten. Und dann haben wir dieses ironisch Wortspiel beabsichtigt und was? Wir haben eine Instanz, die dem entspricht. Dies bedeutet die eigentliche Klasse. Also verwenden wir die Instanz, sobald wir das Spiel starten. Instanz ist das. Wo auch immer wir uns im Code befinden, können wir die Punktinstanz des Level-Managers schreiben und auf die Variable zugreifen, die offensichtlich öffentlich ist, oder auf die Methode, die wir hier haben. Das nächste, was wir tun werden, ist, dass wir das Update vorerst entfernen. Benutze es, um es wieder zu erstellen. Und wir müssen etwas erstellen, serialisiertes Feld bezeichnet wird. Schweben. Und es wird die Zeit zum Laden sein. Also, und es wird gleich 2 f sein. Warum erstellen wir eine Schriftladung? Was ist eigentlich unser Ziel? Von all dem habe ich vergessen, es dir zu sagen. Was wir tun wollen, ist, dass wir den Übergang auf die nächste Stufe verzögern wollen, also wollen wir nicht, dass dies sofort geschieht. Wir wollen mindestens zwei Sekunden haben, also kommen wir zum Portal, warten zwei Sekunden und sind dann zum nächsten Level gereist. Dies wird nur ein bisschen Authentizität von uns hinzufügen, wie Sie wissen, wann immer Sie ein Spiel spielen, tun Sie es nicht. Und um zu berichten und dann sofort das nächste Level zu starten. Du willst ein bisschen Zeit haben, zwei Sekunden überdenken vielleicht deine Entscheidung, aber es wird vorbei sein. Und wie werden wir das machen? Wir werden natürlich eine Beschichtung verwenden. Also werde ich Ihnen nicht sagen, dass Sie die Quarantäne erstellen sollen, weil Sie es tun müssen, ich denke, ich habe irgendwo eine Herausforderung , wo Sie die Coroutine erstellen. Achte also sehr genau auf. Ich weiß, dass es anfangs sehr schwer zu erlernen ist. Sobald du den Dreh raus hast, ist es extrem einfach. Lasst uns anfangen. Zunächst einmal, weil wir von einem anderen Skript aus auf diese Co-Routine zugreifen werden . Ich schreibe Public Eye Enumerator. Die Coroutine ist also vom Typ I und Zähler. Und wir nennen es das nächste, nächste Level. Und hier drin werden wir einen Streit aufnehmen. Es wird also vom Typ String sein und es wird die nächste Ebene sein , einfach so. Und hier drin wollen wir auf die Zeit warten, um die Szene zu laden und dann zu laden. Also wie gesagt, Ertrag, Rückkehr, neu, warte vier Sekunden. Und das warten vier Sekunden, wir werden die Zeit zum Laden nutzen. Wie großartig ist das? Und schließlich, nachdem wir 42 Sekunden gewartet haben, gehen wir zum Szenenmanager. Wir fügen das Szenenmanagement hier hinzu und jetzt können wir auf den Szenenmanager zugreifen. Hast du bemerkt, was gerade passiert ist? Es erlaubte mir nicht, den Szenenmanager zu benutzen, bis ich die Kriterien hatte, die Einheit sagen, dass wir dies verwenden. Also Scene Manager, nicht Unity, entschuldigen Sie mich, das Skript genau hier, diese gesamte Datei, die wir verwenden, hat Management gesehen. Also Scene Manager, Punktlast gesehen. Und als nächste Szene, die wir auf 0 gehen oder ich meine, nächste Stufe, die wir zu niedrig gehen. Okay, großartig. Das nächste, was wir tun müssen, ist, dass wir in den Level Exit gehen müssen. Und anstatt den Scene Manager hier zu verwenden, verwenden wir einfach die Instanz, um die Co-Routine zu starten. Und ehrlich gesagt bin ich schon sehr müde, also denke ich, dass es besser für dich ist, das anstelle von mir zu tun. Also mach weiter, starte die Co-Routine. zuerst von der Ebene des Exit-Skripts Rufen Sie zuerst von der Ebene des Exit-Skripts Kali den Level-Manager auf und wechseln Sie zur nächsten Ebene. Es gibt ein kleines schwieriger, auf das Sie achten müssen. Ich gebe dir einen kleinen Hinweis, nämlich du kannst nicht einfach eine Co-Routine nennen. Sie müssen eine Qualität beginnen. Also pausiere das Video jetzt und starte die Co-Routine. Oh, okay, willkommen zurück. Wie bist du damit zurecht gekommen? Und hier werde ich das entfernen. Und stattdessen werde ich sagen, dass ich eine Co-Routine beginne. Ich benutze den Levelmanager. Ich hoffe, das war nicht der schwierigste Teil, wenn Sie es geschafft haben, Instanz zu verwenden, ich gratuliere Ihnen, Sie gehen zur nächsten Stufe der Spieleentwicklung. Wenn nicht, mach dir keine Sorgen darüber, es ist wahrscheinlich mein Fehler weil ich dir nicht gesagt habe, dass ich dir den Hinweis nicht gegeben habe. Aber wir werden das nächste Level laden. Diese Methode beim Laden der nächsten Ebene ist also tatsächlich ein Eye-Enumerator vom Level-Manager und benötigt eine Zeichenfolge der nächsten Ebene genau hier, wie Sie als Argument sehen können. Also werde ich es ihm geben. Und was sollte es sein? Es sollte das Lot der Stufe zwei sein. Spar dir das auf. Und eine sehr nette Sache. Sie können sehen, dass die Verwendung der Unity-Engine nicht mehr so breit ist wie die Unity-Engine allein, wenn wir den Szenenmanager nicht mehr verwenden . Die Dinge, die wir nicht benutzen, sind ein bisschen ausgegraut. Also kann ich das tatsächlich entfernen, ein bisschen Speicher speichern. Und jetzt weist der Level Exit den Level-Manager einfach den zentralen Kopf zu oder ruft ihn auf und sagt ihm, er soll das Level laden. Dies wird sich als nützlich erweisen, wenn wir mehrere Portale haben. Du wirst sehen, vertrau mir, es ist viel besser, es so zu machen. Also spar dir das auf. Geh zurück und zu unserem Spiel genau hier. Starte das Spiel, ging auf das Portal zu. Ich spiele im Szenenmodus. Wenn ich jetzt auf das Portal komme, sollten wir zwei Sekunden Zeit haben, bevor wir abstimmen. Und wir können es genau hier in London sehen , um zwei Sekunden zu laden. Also los geht's. Hier geht nichts. 112 hoch. Da sind wir los. Jetzt sind wir also auf Level 1 und sind nicht sofort dorthin gegangen. Ich hoffe es gefällt dir. Stellen Sie sicher, dass Sie alle Ihre Änderungen angeben. Und im nächsten Video werden wir die Übergänge noch kühler machen . Kannst du dir das noch cooler vorstellen? Stellen Sie sicher, dass Sie eine Bewertung für die coolen Übergänge hinterlassen. Wir sehen uns dann. 41. Übergang noch kühler machen: Willkommen zurück, meine Spieleentwickler zu einem brandneuen Video. Und in diesem werden wir ein paar Dinge tun. Zunächst haben wir einen Kinomaschinen-Kombinator hinzugefügt. Was ist das? Das bedeutet, dass unsere Kamera nicht mehr außer Grenzen geht. Die Bewegung ist ein bisschen komisch, aber weil wir ihm nicht genug Zeit gegeben haben, denken Sie daran, wir konnten die blauen Linien sehen und hier sehen wir sie nicht mehr. Und jetzt, wenn wir uns durch das Portal bewegen, Whoa, können Sie sehen, dass wir uns in Zeitlupe bewegen und dann zum nächsten Level gehen. Es gibt also ein bisschen Verzögerung und die Zeitskala unserer Welt. Verschwenden wir also keine Zeit mehr. Und lass uns anfangen. Oh, okay, jetzt ist es an der Zeit, unsere Übergänge ein bisschen cooler zu machen . Und das erste, was ich tun möchte, ist, dass ich in die Konsole gehen und diese Nachricht hier sehen möchte. Und ich lösche das einfach. Wir brauchen es nicht mehr. Dies war nur zu Debugging-Zwecken. Und wann immer Sie einen Fehler haben oder sich von etwas nicht sicher sind, verwenden Sie das Debug-Punktprotokoll bei hilft viel, nur um zu sehen, ob eine Bedingung funktioniert. Eine Bedingung ist nicht, ob die Anzahl der Feinde, die es beendet hat und so weiter und so weiter. Debug Dot Log ist also am besten, erstaunlich. Es hat mein Hintern so oft gerettet. Also lasst uns eins fortsetzen, was wollen wir hier drin machen? Nun, das erste, was wir tun wollen, ist, sobald wir das Portal durchlaufen haben. Wenn wir also zum Portal gehen, wollen wir nicht, dass unser Spieler einfach wie ein verrückter Wahnsinniger herumläuft , nachdem er dort betreten hat, wir wollen ihn tatsächlich aufhalten und ihn nur ein paar Sekunden warten lassen. Gewicht Es gibt also einen Unterschied. Wollen wir den Spieler komplett stoppen? Oder wir können etwas noch Besseres machen? Und wir können die Zeit, in der sich bewegt, tatsächlich verlangsamen, damit seine Bewegung viel langsam wird. Wie wär's damit? Ich denke, es ist eine bessere Lösung. Also öffne ich den Levelmanager. Und hier drinnen, nachdem wir mit dem Laden des nächsten Levels begonnen haben werde ich auf die Uhrzeit zugreifen und auf die Zeitskala der Welt zugreifen. Und Sie können genau hier sehen , wie hoch ist die Zeitskala? Es ist die Skala , in der die Zeit vergeht. Momentan vergeht die Zeit in unserem Spiel normal, was ich tun werde, ist, dass ich dies auf 0,2 ändere. Jetzt läuft es 20% seiner ursprünglichen Geschwindigkeit. Und mal sehen, wie das aussieht. Ich empfehle Ihnen nicht die ganze Zeit, denn das Spiel verlangsamt sich nicht nur, sondern alles verlangsamt sich, also sogar die Animation. Also werde ich rennen, ich werde das Portal betreten und du wirst feststellen, dass jetzt, whoa, wie cool ist das? Die Waffe zeigt offensichtlich immer noch richtig, aber die Animation ist viel langsamer. Also los geht's, Michael Jackson. Und wir sind auf Stufe zwei. Sehr nett, aber wir bewegen uns immer noch. Oh, und sieh dir die Kugeln an. Aber die Kugeln, wie cool sind diese Kugeln? Ich empfehle Ihnen, sich daran zu erinnern und Sie haben Ihrem Spiel eine Art Mechaniker hinzugefügt. Also verlangsamt sich alles und lass mich einfach ein paar Kugeln schießen und von dort verschwinden. Wie cool ist das? Ernsthaft? Sag mir nicht, dass das nicht wirklich cool ist. Was wir jetzt tun wollen, ist, dass wir zurückgehen wollen. Wie Sie also von Level 2 gesehen haben, bewegen wir uns in Zeitlupe, aber wenn wir zu Level 1 gehen, sind wir wieder bei diesem wirklich schlechten Timing. Was wir also tun, ist, dass wir diese Herausforderung stellen werden. Wir haben die Waage zurückgesetzt. Offensichtlich wollen wir die Zeitskala nicht so haben. Finden Sie also heraus, wo wir die Zeitskala auf ihre ursprüngliche Form zurücksetzen müssen . Und ich gebe Ihnen einen Hinweis darauf, was oder wie Sie es auf seine ursprüngliche Form zurücksetzen können, um wieder normal zu werden, setzen Sie die Zeitskala auf 1 zurück. A-Flat bedeutet, dass es 100% nicht 0,1 ist, oder Sie können es noch schneller machen. Genießt das aus, viel Spaß. Stellen Sie sicher, dass Sie die Waage auf ihre ursprüngliche Form zurücksetzen. Wo sollen wir das machen? Pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Ich hoffe, das findest du raus. Wo sollen wir das machen? Nun, wir beginnen mit der Zeitskala. Wir warten zwei Sekunden, und nachdem wir fertig sind, bevor wir geladen haben, wird die nächste Szene auf die Zeitpunkt-Zeitskala zugreifen und sie an einen f verkaufen. Sag das zurück in unserem Spiel. vom Spiel aus nach oben, gehen Sie durch das Portal und tun Sie nichts, das jetzt länger als zwei Sekunden dauert , um das Level zu laden. Also eins. Zweitens: Warum ist das so? Nun, weil die Zeitskala verlangsamt wird. Da sind wir los. Jetzt sind wir wieder hier und alles funktioniert gut. Das letzte , was wir beheben müssen , ist die Tatsache, dass wir so lange warten müssen , bis das Level geladen wird. Warum ist das so? Nun, offensichtlich, weil wir hier auf Sekunden warten , die Zeit zum Laden, aber bevor wir das tun, wurde die Zeitskala auf 0,2 eingestellt, also 20 Prozent der ursprünglichen Zeit. Wie werden wir das beheben? Nun, zum Glück gibt es etwas wirklich Schönes und hier, wirklich Praktisches, das besagt, dass wir Sekunden in Echtzeit warten müssen . Dies verbringt das Gericht also auf eine bestimmte Sekunde mit ungelernter Zeit in Hinrichtung . Kannst du das lesen? Glaube ich, dass wir es größer machen sollten. Nein, ungelernte Zeit. Warte also, wo ist es? Warte vier Sekunden in Echtzeit, das sparen wir uns. Und jetzt ist die Co-Routine nicht mehr von der Zeitskala betroffen. Also lass uns das einfach testen. Lauf, lauf, lauf, lauf, komm zu dieser 112 und wir sind in der Stufe eins. Wirklich nett. Ich hoffe es gefällt dir. Ich hoffe du hast Spaß. Und mal sehen, wir haben noch ein paar Minuten. Es ist ein sehr kurzes Video. Es gibt etwas, das ich ansprechen wollte. Also hier drin, wenn wir das Spiel laufen, lassen Sie uns das ein bisschen größer machen, damit wir es sehen können. Jetzt laufen wir also herum, OK, also ist alles schwarz. Wir haben das Gefühl, dass wir richtig im Spiel sind, aber wir sehen dieses Blau genau hier, und es gefällt mir nicht. Jetzt könnten wir das mit ein paar schwarzen Furunkeln abdecken. Das wäre eine gute Lösung, natürlich keine schlechte Lösung, aber es gibt einen viel besseren Weg und eine Immobilie innerhalb der Cinema Maschine, die wir nutzen werden, und das ist die Haft. Also werde ich die Szene ein bisschen größer machen. Ich zoome raus. Und wenn ich hier auf die virtuelle Kamera klicke, siehst du hier unten, dass wir etwas haben , das besagt, wo ist es? Okay, also los geht's, Add Extension Center Maschine begrenzt, und es erstellt eine zusätzliche Komponente hier drin. Und Sie können sehen, dass wir die Begrenzungsform haben und die Begrenzungsform erforderlich ist und es ein Polygonkollider sein sollte. Was ist ein Polygon? Polygon bedeutet, dass wir genau wie einen Kreis, ein Rechteck, Dreieck, ein Polygon, beliebige Form geben können. Was macht das? Es fügt eine Bindung an die Art und Weise die Kamera sich bewegen kann oder wie viel sich die Kamera bewegen kann. Lass es mich erklären. Ich gehe in das wo ist die Rasterbenennung? Rechtsklick hier rein. Ich füge vielleicht eine Komponente hinzu. Und nennen wir es wegen des Polygon-Colliders 2D das Wahre . Da sind wir los. Ich kann das bearbeiten. Sie können sehen, dass dies das Polygon ist, also können wir los. Mach es so. Wenn Sie die Strg gedrückt halten, sehen Sie diese rote Linie. Dies bedeutet, dass es gelöscht wird. Also mache ich weiter und mache die Grenzen, für die sich unsere Kamera oder die Maschinenkamera bewegt, die Grenzen, die sie nicht durchläuft. Also werde ich sicherstellen, dass wir zum Beispiel nicht genau hier schauen und schauen können, was wir tun können. Eigentlich können wir einen weiteren Punkt hinzufügen. Deshalb brauchen wir einen Polygonkollider und los geht's. So wird die Kamera diese Anleihen nicht verlassen können und wir werden das Blau hier nicht sehen können. Können wir das? Sagt Michael die Wahrheit? Nicht immer. Das lässt es nochmal laufen und überzeugen Sie sich selbst. Also, Okay, ich bin außerhalb der Anleihe, weil es etwas sehr Wichtiges gibt und es ein Auslöser sein muss. Wir wollen nicht, dass es irgendetwas beeinflusst. Und noch besser, wenn wir dieses Raster zu einem anderen Spieler machen können . Also denke ich, dass wir es zu einer anderen Ebene machen müssen, aber wir müssen es zu einer anderen Ebene machen. Deshalb wollte ich das Raster das Unantastbare nennen, es die falsche Ebene nennen. Und im Norden dieses Objekt nur weil es nur das Polygon beeinflusst , das wir die Wände haben, möchten wir vielleicht, dass die Wände mit dem Spieler interagieren. Also führe das Spiel aus, okay, mit den Kugeln der Spieler. Da sind wir los. Jetzt interagieren wir nicht. Und wenn wir hier hochgehen, haben wir immer die blauen Linien gesehen. Denken Sie daran, wir sehen immer noch die blauen Linien, weil er einen der größten Fehler gemacht hat. Wir haben den Polygon-Collider nicht einmal hier zugewiesen. Ziehen Sie also das Raster und los geht's. Jetzt haben wir den Polygon Collider, führe das Spiel aus. Wir können es herumführen und dann gehen wir los. Habe ich dir das nicht gesagt? Okay. Wie Sie sehen können, kann ich nicht mehr oh, und schauen Sie im Szenenmodus. Sie können sehen, dass sich die Kamera jetzt nur noch bewegt, mit wie viel die Haft es zulässt. Sobald wir also einen der anderen treffen, los geht's, die Kamera funktioniert nicht mehr und man sieht, dass sie gezwungen ist , sich dort hindurch zu bewegen. Sehr nett. Das ist also ein sehr raffinierter Trick , den du gelernt hast. Sie können runter gehen, wie Sie sehen können, können wir die Kamera nicht mehr bewegen. Sieh mal wo wir sind. Wir sind nicht mehr im Zentrum, weil die Kamera genau hier eingeschränkt ist. Es bewegt sich nicht. Ich hoffe es gefällt dir. Ich hoffe, dir gefällt das Strikte. Offensichtlich muss das behoben werden. Mir gefällt es überhaupt nicht. Wir müssen diesen Polygoncollider ein wenig ändern. Also mach es vielleicht so, vielleicht so. Es ist also immer besser, die Formen im Quadrat zu haben. Stellen Sie sicher, dass Sie sich das ansehen. Machen Sie es nicht nur nonchalant, stellen Sie sicher, dass Sie sich Zeit nehmen, um den Kombinator richtig zu erstellen. Also das erledigt, ich hoffe dir hat gefallen, dass das Video genug lang ist. Es gibt immer noch eine Sache , die wir reparieren müssen , und das ist die Blutanimation der Feinde. Also gebe ich dir diese Aufgabe. Also hier diese Flash-Animationen am Ende wollen wir sicherstellen , dass wir all dieses Blut zerstören , das vom Spieler, dem Feind, kommt. Wir wollen sie nicht in der Hierarchie behalten. Wenn das erledigt ist, hoffe ich, dass es Ihnen gefällt. Ich hoffe, du inszenierst alles, inszeniere alles. Was wir in diesem Video gemacht haben, hat die Zeitskala geändert und jetzt ist es beim Übergang viel cooler. Und hat eine Kinomaschine gemacht. Schüsse. Übernehmen Sie die Änderungen. Sieh dir den Meister an. Schätze deine Arbeit. Viel Spaß, wie weit du gekommen bist, und wir sehen uns im nächsten Video. 42. Ein- und Fading (Leinwand): Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und dieses hier werden Sie feststellen, dass wir das Ein - und Ausbleichen haben. Und wofür ist das? Nun, wenn wir genau hier schauen, haben wir eine riesige Blackbox. Und das kannst du jetzt sehen. Wir sehen nichts im Spiel. Warum ist das so? Was ist passiert? Dass wir das Spiel verlassen würden? Warum ist es gerade so klein? Warum werden wir herausgezoomt? So viele Fragen, so wenige Antworten. Wenn ich das Spiel führe, wirst du feststellen, dass wir das Level starten indem wir aus dem schwarzen Bild verschwinden. Und wenn wir herumlaufen, können Sie sehen, dass wir, sobald wir das Portal betreten, nicht nur langsamer werden, sondern wir verblassen und dann wieder einblenden, wenn wir zum nächsten Level gehen. Verschwenden wir also keine Zeit mehr und lasst uns scheitern. Oh, okay. Jetzt wechseln wir richtig von einer Ebene zur nächsten. Wir haben den Zeitskaleneffekt , bei dem wir alles verlangsamen. Das nächste, was wir tun wollen, ist, dass wir einen verblassenden Effekt haben wollen . Was wir also wollen, ist B1, das Bild oder das gesamte Spiel zu Schwarz zu verblassen. Und wenn wir dann ein neues Level betreten, wollen wir ausblenden. Also lasst uns das machen. Das erste, was wir tun müssen, oder wie funktioniert das Ausbleichen? Wir werden hier ein großes schwarzes Bild haben, das einblendet und dann ausblendet, wenn wir von Level zum nächsten wechseln. Es dreht sich also alles um ein schwarzes Bild und wir verwenden das Alpha darauf. Also lasst uns das machen. Wie werden wir ein Bild in Unity hinzufügen? Nun, wir brauchen etwas namens Leinwand. Also erstelle ich eine Leinwand. Ich klicke mit der rechten Maustaste in die Hierarchie, gehe zu deinem Auge und finde den Campus. Da gehst du. Jetzt haben wir einen Campus. Wenn ich darauf doppelklicke, kannst du sehen, dass es eine riesige, große Leinwand ist und du fragst dich vielleicht, warum ist die Leinwand so groß, während unser Spiel so klein ist? Nun, auf diese Weise verarbeitet Unity die Verwendung von Canvas und das Hinzufügen von Bildern. Es ist besser, hier mit den Bildern herumzuspielen. Anstatt in den Bildern herumzuspielen, schreibe es und habe alles vor dem Spieler und den Objekten im Spiel. Dies ist also ein viel besserer Weg oder die Art und Weise, wie Unity verwendet, um mit Dingen umzugehen. Sie können auch sehen, dass wir etwas haben , das als Ereignissystem bezeichnet wird. Und das erlaubt uns zum Beispiel, sagen wir, wir haben eine Art Button auf der Leinwand. Wir möchten darauf klicken, damit wir ein Ereignissystem unter dem Canvas hinzufügen, es zu einem Kind machen und es vorerst dort behalten können. Und dieses Ereignissystem ermöglicht es uns, tatsächlich Tasten auf dem Bildschirm zu drücken und uns die Interaktion mit der Leinwand zu ermöglichen . Wir werden nur ein bisschen sehen, wie das funktioniert. Aber im Moment wollen wir genau hier in den Canvas-Scaler gehen . Sie können sehen, dass wir mit der Bildschirmgröße skalieren können. Und wir möchten dies von 100 auf 1920 bis dahin acht ändern , was der Größe des Bildschirms entspricht, den wir verwenden oder das Gaming erstellen. Drücken Sie Enter. Da gehst du. Jetzt ist alles erledigt. Sie können sehen, dass wir den Ray Caster und ein Element für die Leinwand haben, was nicht so wichtig ist. Wir werden hier drin nichts zu sehr ändern. Wir möchten nur sicherstellen, dass der Canvas-Scaler als Bildschirmgröße skaliert wird und wir wollen ihn 1920 bis 1080 schaffen. Okay, großartig. Jetzt, da das erledigt ist, besteht der nächste Schritt darin, ein Bild hinzuzufügen. Also klicke ich mit der rechten Maustaste hier rein, gehe zu dir und finde ein Bild. So jetzt können Sie sehen, dass wir ein Bild in der Mitte der riesigen Leinwand haben ein Bild in der Mitte der und ich werde es tun, ist das verblassende Bild. Aber obwohl wir es auf der Leinwand haben, können Sie hier unten im Spiel sehen, dass wir es als kleinen Block haben. Und wenn ich es auf die obere Seite bewege, wirst du feststellen, dass es sich auf der oberen Seite des Spiels befindet, und in der Mitte befindet sich der Spieler in der Mitte. Und unten links sieht man es. Es ist also nicht, obwohl das Bild hier oben im Spiel riesig ist. Aber man sieht das auf der Leinwand, Es ist wirklich klein und es skaliert sich. So repräsentieren wir Dinge in Unity auf UI Canvas. Was werden wir tun? Wir möchten dieses Bild dazu bringen, die gesamte Leinwand zu füllen es komplett schwarz zu machen. Und dann werden wir die Transparenz nutzen , um ein- und auszublenden. Zuallererst, wie machen wir es so groß wie den Bildschirm? Nun, genau hier gibt es eine Option. Sie können sehen, dass es das Rect-Tool ist. Wenn Sie darauf klicken, können Sie dieses Bild ziehen und größer und kleiner machen. Und Sie werden genau hier feststellen, dass wir eine Menge Dinge haben, nämlich die Rect Transform zu handhaben und das Aussehen des Bildes zu ändern. Wir können auch Alt halten und eine der Ecken oder Armee wählen. Wählen Sie einen der Koordinatoren aus und halten Sie Alt gedrückt. Und Sie können sehen, dass wir es und alle Wege erweitern können . Aber dafür gibt es eine noch bessere Lösung. Und wenn wir hier klicken, können Sie sehen, dass wir ein paar Optionen haben , die als Anker bezeichnet werden. Wenn ich zum Beispiel auf diesen Anker klicke, wird das Bild groß und klein mit Skalierung basierend auf diesem Punkt genau hier nach oben und unten skaliert. Wir können auch auf diesen klicken, wo es basierend auf der gesamten Leinwand skaliert wird . Sie werden sehen, was ich mit Skalierung meine , wenn wir skalieren müssen. Aber was passiert, wenn wir Alt gedrückt halten? Sie können sehen, dass wir das Bild auf diese Weise erweitern können. Wir können es in der Mitte erweitern, wir können es nach links erweitern und wir können es rundum erweitern, und wir können es rundum erweitern damit es das gesamte Quadrat ausfüllt. Der gesamte Canvas sofort. Und Sie können sehen, dass das Bild das Spiel jetzt vollständig blockiert hat . Und wenn ich auf die Leinwand und das verblassende Bild gehe, kann ich die Farbe genau hier auf dem Bild ändern und es komplett schwarz machen. Nun, wie werden wir die Transparenz verändern? Zuallererst können wir dies genau hier tun, damit wir das Alpha auf dem Bild ändern können. Aber es ist ziemlich schwierig, auf das Alpha im Bild zuzugreifen, da wir auf alle roten, grünen und blauen Farben zugreifen müssen . Auf andere Weise ist es, etwas hinzuzufügen , das als Campus-Gruppe bezeichnet wird. Wenn ich also hier reingehe und eine Canvas-Gruppe hinzufüge, kannst du sehen, dass ich die Möglichkeit habe, Alpha zu haben. Und wenn ich dieses Alpha von 0 auf eins oder von eins auf 0 verschiebe , sieht man bei 0, dass es völlig transparent ist. Eins ist es das nicht. Und ich kann die Neubesetzung blockieren. Das bedeutet, dass Recast bedeutet, wann immer ich auf etwas klicken möchte, dies dazu beitragen kann, die Neubesetzung zu blockieren und das Interaktable ist dieses Bild interaktierbar? Sagen wir, es ist nicht. Und da gehst du. Jetzt ist es unser Ziel, eine Animation zu erstellen. Mit dieser Animation steuern wir Alpha der Canvas-Gruppe genau hier. Und dann werden wir jedes Mal und unseren Gewinn verblassen und verblassen. Mit dem Erklärten werde ich Ihnen eine Herausforderung stellen. Und deine Herausforderung besteht darin, das Bild ein- und auszublenden. Also gebe ich Ihnen einen Schritt-für-Schritt-Prozess, wie das geht. Zuallererst müssen Sie eine Animation für das Einblenden und Verblassen erstellen eine Animation für das Einblenden und wird schwarz bis transparent und verblassen, was transparent bis schwarz ist. Sie müssen einen Übergang zwischen dem Übergang zwischen den beiden Animationen basierend auf einem Trigger erstellen Übergang zwischen den beiden Animationen . Denken Sie also daran, dass wir den Übergang basierend auf einem booleschen Wert erstellt haben . Jetzt ist es an der Zeit, einen Trigger zu benutzen. Sie müssen einen Triggerparameter hinzufügen. Offensichtlich müssen Sie ein UI-Manager-Skript erstellen und der Leinwand hinzugefügt werden. Sie müssen eine Methode erstellen , die das Fading auslöst. Und schließlich müssen Sie diese Methode vom Laden von Colton im Level-Manager aufrufen . Wir kennen also fast alle Schritte. Vielleicht weißt du nicht, wie man einen Trigger setzt. Das ist es, was Sie also selbst suchen müssen. Und alles andere, glaube ich, ist etwas, das wir durchgemacht haben, mit dem wir getestet haben. Denken Sie daran, wie die Animation funktioniert, indem Sie die rote kleine Taste in der Aufnahme der Animation drücken, damit Informationen das Video jetzt anhalten und den Chavan machen. Okay, willkommen zurück. Das erste, was wir tun werden, ist, dass wir in die Animation einsteigen werden. Ich werde weitermachen und sicherstellen, dass ich das verblassende Bild habe und eine Animation erstelle. Und jetzt kann ich in die Animationen gehen, hier mit der rechten Maustaste klicken und das Fading-Bild erstellen. Also bin ich in Asset-Animationen und hier drin werde ich zuerst das Verblassen, Verblassen und Speichern erstellen . Was haben wir nun gesagt, die verblassende Pistole sollte das Verblassen von Schwarz zu Transparent sein. Okay, großartig. Wie lange soll das dauern? Also lasst es uns um 1,5 Sekunden schaffen. Also klicke ich auf den Aufnahme-Button. Und was habe ich nochmal gesagt, schwarz zu transparent. Ups, das ist nicht der Schlüssel, den ich gesucht habe. Und wo ist es? Okay, wieder hier drin. Also fangen wir bei Schwarz an und am Ende nehmen wir auf. Ich möchte das Alpha auf 0 senken. Was passiert jetzt, wenn ich die Animation spiele? Es beginnt schwarz und verblasst dann zu transparent. Exzellent. Das nächste, was ich tun werde, ist das Fade-Out zu erstellen. Also verblasst. Und jetzt fangen wir bei 0 an und dann gehen wir nach einer Sekunde in völlige Dunkelheit. Also haben wir mit der Aufnahme aufgehört, das Spiel so transparent laufen zu lassen, verblassen auf schwarz. Exzellent. Jetzt werden wir als Nächstes den Animator öffnen. Und hier drin werden wir zuallererst, okay, also bedeutet das Einblassen und Verblassen , dass wir von Schwarz zu Transparent gehen. Dies sollte beginnen, sobald wir wieder anfangen. Wir erscheinen also nicht nur im Spielmodus, wir verblassen in den Spielmodus, und dann haben wir das Fade zu Schwarz, um genau hier einen Übergang zu schaffen. Dieser Übergang sollte keine Ausstiegszeit haben und die Einstellungen sollten ein sein, ich meine, die Übergangsdauer sollte bei 0 liegen. Ich werde einen Parameter erstellen, der ein Auslöser sein wird, und ich nenne ihn einfach Start, Fade. Mach dieses Kapital. Da gehst du. Und füge es als Bedingung hinzu. Exzellent. Und ich hoffe, du hast all diese Schritte gemacht. Dies sind Dinge, die wir bereits behandelt und bereits erstellt haben. Und bevor wir weitermachen, müssen wir sicherstellen, dass diese Leinwand auch in der zweiten Ebene Y oder Stufe 1 vorhanden ist . Warum? Denn wenn wir zu Level 1 gehen, wo sind die Szenen? Wenn wir zu Level 1 gehen, werden Sie feststellen dass wir keine Leinwand haben, sodass wir das Ende nicht verblassen können , wenn wir Level 1 starten oder wenn wir zu Level 1 gehen. Also zurück in Level 2 nenne ich dies die UI Canvas Enter. Und ich gehe in die Prefabs. Wo sind die Prefabs? Und ich erstelle und hier einen UI-Ordner. Und hier drin ziehe ich den UI Campus. Spar dir das auf. Und jetzt schau, wie toll Prefabs sind. Eigen glaubt nicht, dass wir darüber gesprochen haben. Aber wenn wir in Level eins in die Szenen gehen, können wir sofort zur Prefabs-Benutzeroberfläche gehen und eine Leinwand und unsere Spiele hinzufügen. Jetzt haben wir eine Leinwand genau hier in Level 1 und wir mussten sie nicht noch einmal erstellen. Das ist das Schöne daran, Prefabs zu haben. Das ist wieder in Level 2 erledigt. Mal sehen, was wir hier haben. Die Animationen spielen also, alles sollte jetzt funktionieren, wenn wir unser Spiel ausführen, wir sollten ein Fading und eine Animation haben. Also führe ich das Spiel aus. Da gehst du. Sie können also sehen, dass ich ein Looping in Animation verblassen habe. Also gehe ich in die Animationen ein, finde das Ein- und Ausbleichen und stelle sicher, dass es keine Loop-Zeit gibt. Spar dir das auf. Und jetzt, wenn wir das Spiel laufen und das zweite jetzt haben wir ein Verblassen in einem Zoll. Exzellent. Wissen Sie also warum das passiert? Nun, denn beim Eintritt machen wir das erste, was wir tun, das Einblassen. Das ist also schon für uns eingerichtet. Das nächste, was wir tun müssen, ist, dass wir den UI-Manager erstellen und dem Campus hinzugefügt werden müssen . Also gehe ich hier in meine Skripte, klicke mit der rechten Maustaste und erstelle einen neuen Ordner für die Benutzeroberfläche. Wir ändern den Namen dieses Ordners sehr, aber jetzt erstellen wir ein C-Sharp-Skript, das der UI-Manager sein wird oder tatsächlich im Manager hätte sein sollen. Und es hat keine Sorgen. Warte, bis das kompiliert wurde. Verlegen wir es zu den Managern. Ich glaube, es ist Butter hier oder vielleicht nicht. Ich weiß es nicht. Es hängt von Ihren Vorlieben ab. Ich denke im Manager ist es vielleicht besser. Abbrechen oder nein, lasst es uns behalten. Lass es uns in dein Auge behalten. Obwohl es ein Manager ist, wird es auf der Benutzeroberfläche behalten. Ich öffne den UI-Manager öffne Visual Studio. Und das erste, was wir brauchen, ist ein Hinweis auf das Bild , das wir hier wieder verblassen möchten. Ich hoffe, das war nicht allzu schwer, weil es ein serialisiertes Feld sein wird, das ein Bild vom Typ Image ist. Oh, es gab also etwas, das ich hoffe, dass einige von euch herausfinden konnten. Wenn ich versucht habe, Bild genau hier zu benutzen. Sie werden feststellen, dass ich keine Option dafür habe. Was ich brauche ist, dass ich deinen Unity-Engine-Punkt verwenden muss . Also hoffe ich, dass das kein großes Problem für dich war. Ich hoffe, Sie haben diesen Fehler gefunden oder diese Unannehmlichkeit in der Herausforderung gefunden und Ihnen alles getan und versucht, die Lösung zu finden , wenn Sie es nicht getan haben, machen Sie sich keine Sorgen darüber. Es war in meinem Namen. Ich hätte dich vorher warnen sollen. Keine Sorge. Bild des Schicksals. Einige von euch denken vielleicht: Ja, keine Sorgen, sicher, nur mein Selbstvertrauen wurde zerstört. auch immer, was werden wir in dieser Klasse hier und im UI-Manager machen? Nun, wie gesagt, wir brauchen eine Methode. Erstellen Sie eine Methode, die das Fading auslöst, und rufen Sie diese Methode aus dem Loading Coworking im Level-Manager auf. Okay, also werde ich sicherstellen, dass dies eine Öffentlichkeit ist. Also erstelle ich ein öffentliches Leere Fade-Bild. Und hier drin gehe ich weiter und greife auf das Bild zu, um zu verblassen. Ich bekomme eine Komponente darauf, die der Animator ist. Und ich setze den Auslöser ein. Und dieser Trigger wird der String-Verweis auf das Start-Fade sein. Und heute, kopiere das hier wieder rein, füge es hier ein, schließe ab, speichere das. Was machen wir also? Weil wir die Animation für das eigentliche Bild erstellt haben , um zu verblassen. Du kannst sehen, dass der Animator hier auf diesem Spielobjekt ist . Eine der Komponenten im Bild, das verblassen werden soll. Was wir also tun, ist, dass wir auf den Animator des Bildes zugreifen und dann den Trigger einstellen, der gestartet wird. Okay, großartig. Der nächste Schritt besteht darin, es als Level Manager zu bezeichnen. Und es gibt zwei Möglichkeiten, dies zu tun. Wir können entweder das Spielobjekt finden oder den UI-Manager finden. Oder lasst uns weitermachen und eine Instanz davon erstellen. Ich erstelle einen öffentlichen statischen UI-Manager. Im Beispiel. Spar dir das auf. Und ich schaffe hier einen Anfang. Und dann starten Sie die Instanz wird gleich dieser sein. Spar dir das auf. Jetzt zurück im Level Manager, wo sollen wir das hinstellen? Nun, ich glaube, sobald wir treffen oder sobald wir das Ladeniveau betreten. Wir haben also die Zeitskala bei 0,2. Ich gehe weiter und greife auf den UI-Manager zu, die Instanz. Und ich werde weitermachen und das Bild verblassen. Jetzt werden Sie etwas bemerken, dass das des Bildes langsamer sein wird, da wir die Zeitskala auf 0,2 Verblassen des Bildes langsamer sein wird, da wir die Zeitskala auf 0,2 angegeben haben, langsamer sein wird als das , was wir hier haben. Testen wir das also und sehen ob es funktioniert. Wenn Sie das Gefühl haben, dass es etwas langsam ist, können Sie das Verblassen des Bildes etwas langsamer machen . Also los geht's. Wir fangen an, wir rennen hoch. Und wenn wir dieses Portal genau hier betreten, gehen wir los. Wir verlangsamen uns und wir haben vergessen, ein Hey hinzuzufügen, wir haben vergessen, die Referenz hinzuzufügen. Sie können genau hier den Fehler sehen. Wenn ich darauf doppelklicke, wirst du sehen, dass das Punkt-Bild des UI-Managers etwas nicht stimmt. Was ist los? Nun, es gibt keinen Fall. Okay, wenn ich also zur UI-Canvas gehe, würde ich feststellen, dass ich den Manager nicht einmal hinzugefügt habe, also bin ich mir nicht sicher, wie heißt. Ziehen wir also den UI-Manager hinein. Stellen wir sicher, dass wir das verblassende Bild gesagt haben und lassen Sie uns die Änderungen übernehmen. Beachten Sie also, dass die Leinwand auf dieser Ebene keinen UI-Manager hatte, oder? Und das ist derjenige, den wir in der Ebene eins benutzt haben. Wenn ich jetzt zur Stufe eins gehe, klicke ich auf die Benutzeroberfläche. Es hat einen UI-Manager und es hat das Image bereits eingerichtet. So können Sie die Macht der Verwendung von Trauer-Apps wieder sehen. Wie cool ist das? Also zurück im Level, um das Spiel zu starten, verblassen wir ein. Keine Fehler mehr. Wir gehen hoch, wir gehen durch das Portal und los geht's, wir verlangsamen uns. Wir haben diesen Zucker genau hier. Es gab also ein kleines Problem hier drin. Wie Sie bemerken, hatten wir nicht die Zeit, überhaupt zu verblassen. Also werde ich wieder auf das Fade-Out und das verblassende Bild zugreifen . Und wo ist das? Nun, das hängt davon ab, wie lange oder die Zeitskala Sie hier haben. Also schaffe ich es 0.5. Spar dir das auf. Und statt 1,5 Sekunden werde ich es schaffen, machen wir es einfach um 0, vielleicht 1 Sekunde oder 2,5. Sagen wir, es sind ungefähr 40 aus dem Spiel. Testen Sie es aus und sehen Sie, ob wir die Zeit haben, einzublassen. Also gehe ich hoch, ich gehe durch. Los geht's, wir verblassen vollständig und dann hörten wir auf zu verblassen. Und ganz normal. Wenn das erledigt ist, hoffe ich, dass es Ihnen gefällt. wir sicher, dass wir unsere Änderungen übernehmen. Stage alle verpflichten die Änderungen. Erstellen Sie ein Fading In- und Out-Bild mit Ihnen sind unzählige. Übernehmen Sie die Änderungen. Ich hoffe es gefällt dir und wir sehen uns im nächsten Video. 43. Abschnitt 7: Destructible Umgebung – -: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video maximiere ich das Spiel. Wir haben einen schneidigen Mechaniker hinzugefügt. Wenn wir uns jetzt bewegen, wenn ich auf die Leertaste klicke, los geht's. Man sieht, dass ich mich ein bisschen schneller bewege, aber tatsächlich die Geschwindigkeit verdoppelt habe. Wenn ich also sprenge, bewege ich mich zweimal schneller. Da sind wir los. Wir können sehen, dass ich die Feinde nicht töten kann , um sie herumzulaufen und sie zu erschießen. Und ja, los geht's. Also haben wir diesen wirklich gut aussehenden und coolen Mechaniker hinzugefügt . Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, okay, jetzt können wir zurückgehen und nicht spielen, doppelklicken Sie auf ihn. Okay, also was wir jetzt erstellen wollen , ist das erste, was ich tun möchte , dieses Bild loszuwerden. Was wir jetzt tun können, ist, dass wir die Leinwand ausschalten können, aber das ist nicht sehr praktisch. Aber was wir tun können, und dies ist eine großartige Gelegenheit , Ihnen etwas Neues beizubringen. Wenn Sie auf die Leinwand klicken, können Sie sehen, dass die Ebene und hier ist, sind Sie es. Wenn wir also hier in die Ebenen gehen, können Sie sehen, dass wir alle Ebenen hier haben. Und du kannst sehen, dass wir eine Art Schloss haben und dann können wir eine Art von Ich haben hier drin. Und wenn ich auf das Auge klicke, sieht man, dass alles unter der Benutzeroberfläche oder alles unter der Ebenen-Benutzeroberfläche verschwindet. Wenn ich den Spieler ausklicke , geht er, du kannst sehen, dass der Spieler auch verschwindet. Es ist immer noch im Spiel. Es funktioniert immer noch, wenn wir das Spiel starten. Man sieht im Spielfenster, es ist immer noch da, aber in der Szene können wir es nicht sehen. Was ist das aus dem Weg? Das nächste, was wir tun wollen, ist eine Art schneidige Mechanik hinzuzufügen , genau wie wir es im Spiel Hades getan haben. Wir können sehen, dass wir schnell abstürzen können. Wir werden das Gleiche in diesem Spiel machen. Es ist ein bisschen anders, offensichtlich wegen der Einschränkung und Sprites. Die Beschränkung in einem Team. Und wir werden die Sprites hier benutzen. Wo sind sie, diese Dramatiker sprites für die blaue Ebene. Und Sie können sehen, dass wir diese Drehung genau hier haben. Und das werden wir benutzen. Und offensichtlich, offensichtlich in den Ressourcen, die ich einer anderen Art von Torpedo überlassen habe , kann man das verwenden Es ist ein bisschen anders und Farben als diese, aber ich denke, das ist kein großes Problem. Was werden wir also tun? Wir werden zuerst erklären, was der Tornadotorpedo ist. Ich weiß nicht mal, wie ich es nennen soll. Vielleicht hast du einen ganz anderen Weg. Wir nennen es von nun an das schneidige, alles wird schneidig sein, nur um Verwirrung zu vermeiden. Zunächst einmal wird sich der Spieler viel schneller bewegen. Also werden wir die Bewegungsgeschwindigkeit des Spielers erhöhen. Und die Animation wird ausgelöst, wodurch der Spieler im Kreis geht. Und während der Spieler den Tornado macht, wird er unbesiegbar sein, damit er durch nichts verletzt werden kann. Dies ist etwas, das wir später implementieren werden , wenn wir dem Spieler ein Gesundheitssystem hinzufügen. Wissen Sie vorerst, dass dies passieren wird , wenn der Spieler schneidig ist. Und schließlich kann er Objekte um sie herum zerbrechen. Wie Sie den Namen dieses Abschnitts kennen, ebenso wie die Strukturobjekte. Und zuallererst müssen wir dem Spieler einen Weg oder ein bisschen fortgeschrittene Bewegung hinzufügen , damit er diese Spielobjekte ohne weiteres oder Blau zerstören kann diese Spielobjekte ohne weiteres oder Blau zerstören . Und lasst uns anfangen. Das erste, was wir tun wollen, ist, dass wir zum Layer-Controller gehen und schauen, wie viele Skripte wir haben. Mir ist gerade aufgefallen, dass das gut ist. Das bedeutet, dass wir unser Verständnis erhöhen. Wie auch immer. Zuallererst müssen wir eine Möglichkeit schaffen, die aktuelle Bewegungsgeschwindigkeit im Auge zu behalten. Da wir jetzt die regelmäßige Bewegungsgeschwindigkeit haben, werden wir jetzt die schneidige Bewegungsgeschwindigkeit haben. Das erste, was ich tun möchte, ist einen privaten Float und die aktuelle Bewegungsgeschwindigkeit zu erstellen . Und diese aktuelle Bewegungsgeschwindigkeit wird sich ändern ob wir den Torpedo oder den Tornado machen und ob wir einfach nur laufen. Dann erstelle ich einen privaten Bool, der als Can Dash bezeichnet wird. Und warum erstellen wir diesen booleschen Wert? Nun, weil du das jetzt ein Update sehen wirst , das wir abstürzen wollen. Wir werden also auf eine Art Schlüssel klicken und wir werden anfangen zu schneidigen, aber wir wollen nicht ständig in der Lage sein, zu sprengen. Wir wollen eine Abkühlung für den Strich haben, und wir wollen auch eine Art Länge oder den Strich haben. Also werden wir diesen booleschen Wert haben, um alles in Schach zu halten und sicherzustellen, dass wir 20 Mal hintereinander wechseln können . Das nächste, was ich tun werde, ist, dass ich hier nach unten scrolle und sehe wo sich der Spieler bewegt. Also doppelklicke ich und ich kann nach unten scrollen und den Rigo finden. Wir haben den Spieler in Bewegung und hier fügen wir die Geschwindigkeit hinzu. Es ist also der Bewegungseingang mal die Bewegungsgeschwindigkeit. Und anstatt die Bewegungsgeschwindigkeit zu verwenden, werde ich sagen, dass es die aktuelle Bewegungsgeschwindigkeit ist. Und nur um sicherzustellen, dass wir eine aktuelle Bewegungsgeschwindigkeit haben und es nicht 0 ist. Und beginne, ich stelle die aktuelle Bewegungsgeschwindigkeit auf gleich der regulären ein. Bewegungsgeschwindigkeit. Da gehst du. Sie können den Namen der Bewegungsgeschwindigkeit ändern , wenn Sie möchten, Sie können die reguläre Bewegungsgeschwindigkeit benennen. Ich behalte es einfach so. Es ist nicht allzu verwirrend für mich. Wenn es dick für dich ist, dann ändere den Namen. Das nächste, was wir tun wollen, ist, dass wir die Variablen 40 schneidig einrichten möchten. Lassen Sie mich hier einfach einen Kommentar hinzufügen, den wir schneidig machen. Dashing und Bewegung nach Looks. Also werde ich ein serialisiertes Feld erstellen und werde der Float sein, und es wird die Dash-Geschwindigkeit sein. Und im Moment setze ich es auf wie hoch ist unsere Bewegungsgeschwindigkeit? Wie hoch war die Bewegungsgeschwindigkeit des Dünenspielers? Mal sehen, zehn. Okay, dann werde ich das mindestens 20 machen, vielleicht noch mehr später. Übrigens werden wir in der Lage sein, vom Spektral aus zu steuern. Das ist also kein Problem. Und das nächste, was ich sicherstellen möchte, dass wir haben diese beiden Variablen, die die oder nein ist, eigentlich sollte dies privat sein. Oder lasst uns weitermachen und sie serialisieren lassen. Also die Strichlänge, die auf 0,5 f festgelegt wird. So lange sind wir also schneidig. Und dann werden wir den Strich abkühlen lassen, was die Zeit zwischen jedem Strich sein wird und ihn zu einem verkaufen wird. Jetzt haben wir die Möglichkeit, mit den Bindestrichen, der Strichgeschwindigkeit, der Strichlänge und dem gestrichelten herumzuspielen . Cool. Jetzt 1 Sekunde. Okay, großartig. Jetzt ein Update. Wir werden weitermachen und hier eine Methode erstellen , die eigentlich keine Methode ist. Bevor wir die Methode erstellen, werden wir zunächst nach einer Art von Eingabe suchen. Und basierend auf dieser Eingabe werden wir die aktuelle Geschwindigkeit ändern, sie zur Strichgeschwindigkeit machen und dann sicherstellen, dass wir nicht mehr dash können. Du kannst jeden Button benutzen, den du willst. Vielleicht benutze ich den Platz. Ich werde die Eingabe verwenden, die den Schlüssel herunterbekommt. Und Sie können sehen, dass dies während des Frames ein True zurückgibt , der Benutzer beginnt, eine Taste zu drücken und durch einen Schlüsselcode identifiziert zu werden. Drücken Sie also Tab, öffnen Sie die Klammern. Ich schreibe hier Schlüsselcode Dot Space, und da gehst du, Wir können sehen, dass wir die Möglichkeiten haben, unsere Schlüssel zuzuordnen , und wir möchten sicherstellen, dass wir das hier drin öffnen können . Das erste, was wir tun, ist, dass die aktuelle Bewegungsgeschwindigkeit zur Strichgeschwindigkeit wird. Und can dash ist auf false gesetzt. Also los geht's. Wir klicken auf das Feld. Wir prüfen, ob wir abstürzen können. Wenn beide zutreffen, wird die aktuelle Bewegung zur Strichgeschwindigkeit, also ist sie viel schneller. Die aktuelle Bewegung hier drin wird also 20, nicht zehn, wir bewegen uns schneller und wir können nicht mehr stürzen. Natürlich müssen wir diese Werte in nur ein bisschen zurücksetzen . Aber lasst uns das jetzt testen und sehen, ob es funktioniert. Oh, und wir haben vergessen, etwas zu tun , das die eigentliche Animation erstellt. Und lasst uns das vorerst in ein bisschen machen, lasst uns unsere Mechanik ihrer Arbeit testen. Also werde ich das ein bisschen größer machen. Also bewege ich mich herum. Hätte ich den Leertaste. Ja, nein, nichts ist passiert. Und warum ist das so? Weil wir einen Fehler haben. Okay, das ist sehr nervig, behindert uns aber nicht von irgendetwas. Was scheint das Problem zu sein? Ich habe Leertaste gedrückt, Keydown abrufen, Controller deklarieren. Okay, willkommen zurück. Also nach ein bisschen Graben und ich war sehr verwirrt, warum das nicht funktionierte. Und das liegt daran, dass der Kandidat nicht festgelegt wurde. Es war also nicht wahr. Ich habe darauf geachtet, dass es auf wahr gesetzt wurde und angefangen hat. Und jetzt hatte ich auch dieses Debug-Punkt-Log. Also lass mich dir einfach zeigen, was ich gemacht habe. Ich war verwirrt. Wenn nötig. Problem war, dass sich die aktuelle Bewegung aus irgendeinem Grund nicht änderte. Also hatte ich das Debug-Punktprotokoll genau hier eingestellt und ich habe in der Konsole gesucht. Also bemerkte ich, dass es seinen Zustand behielt, und so erkannte ich, dass diese Methode nicht gefangen wurde. Also wusste ich, dass das Drücken der Leertaste in Ordnung war. Sie können sich vermutlich nicht verprügeln. Ich habe es auf wahr gesetzt. Es hat geklappt. Lass mich das entfernen, speichere dir das auf. Dies ist nur die Macht des Debugs. Und wie Sie sehen können, funktioniert manchmal nicht alles perfekt. Manchmal muss man sich mit Dingen beschäftigen. Wenn ich mich jetzt bewege, kannst du die Bewegung sehen. Sie können erkennen, wie schnell es ist, wenn ich die Leertaste drücke. Da sind wir los. Sie können sehen, dass ich mich viel schneller bewege, okay, damit der nächste Schritt besteht darin, uns tatsächlich wieder auf die reguläre Geschwindigkeit zu bringen und sicherzustellen , dass der Dash Cooldown funktioniert und das Wochenende dann funktioniert wieder nach dem wo auch immer der Strich abkühlt. Und das wird tatsächlich Teil deiner Herausforderung sein. Ihre Herausforderung besteht darin, zwei Keimblätter zu erstellen. Der erste wird also der Cooldown-Zähler sein, an dem wir warten und dann wieder torpedieren können. Und die zweite wird die Geschwindigkeit sein , mit der wir uns bewegen, so dass wir am Ende die Geschwindigkeit wieder auf ihre normale Geschwindigkeit bringen. Diese Anweisungen pausieren das Video jetzt und erledigen die Herausforderung. Okay, willkommen zurück. Was machen wir hier drin? Sobald wir die Bewegung haben, müssen wir Routinen aufrufen. Der erste hier drin wird ein Augenenumerator sein. Und es wird der Strich sein. Kühlen Sie sich ab. Und hier drin werden wir nachgeben, neu zurückkehren. Warte vier Sekunden. Und wir werden auf den Strich warten, ziehen Sie nach unten. Und wenn es fertig ist, werden wir sagen, dass der Strich gleich wahr ist. Und dann werden wir einen weiteren I-Zähler erstellen , der als Strichlänge bezeichnet wird. Und weißt du was? Ich denke, dass der Name nicht genug ist. Ich nenne es den Strichlängenzähler, nur damit wir wissen, was los ist und der Strich Cooldown Zähler. Klar. Nennen wir es den Dashboard-Down-Counter. Und ich kopiere das. Ertrag also, gib neues Gewicht für Sekunde zurück, aber jetzt ist es die Strichlänge. Und wenn wir mit dem Strich fertig sind, bedeutet das, dass wir nach uns gedrängt haben, ich weiß nicht, wie lange die Abkühlung des Striches sein wird. So lange du willst, dass der Spieler schnell voranschreitet. Ich behalte es bei 0.5. Vielleicht ändern wir es. Du kannst machen, was wir wollen. Ich stelle die aktuelle Bewegungsgeschwindigkeit wieder auf die reguläre Bewegungsgeschwindigkeit ein. Schließlich müssen wir den Coltan starten, der den Strich , den Cooldown-Zähler ist , und dann eine weitere Co-Routine starten. Und es wird der Strichlängenzähler sein. Zähler für die Strichlänge. Okay. Also habe ich gesucht und mich gefragt, warum das immer noch rot war. liegt daran, dass wir den Dash Cool Down Counter nicht wirklich genannt haben. Wir nennen einfach die Variable da oben. Das sparen wir uns. Jetzt drücken wir das Leerzeichen. Wir sagten, die aktuelle Bewegung zur Schlaggeschwindigkeit. Ohne sie können wir nicht mehr stürzen. Wir beginnen mit der Co-Routine. Der Strich kühlt ab. Nachdem das Abkühlen beendet ist, können wir dann wieder strichen und die Strichlänge. Also spar dir das auf. Wir gehen zurück in unser Spiel. Wir führen das Spiel aus. Und da sind wir los. Wir können sehen, dass wir jetzt schnell vorankommen. Und dann fangen wir an, den Slogan zu bewegen, so schnell, dann wieder langsam und schnell, dann wieder langsam. Wie cool ist das? Los geht's, alles funktioniert. Und wenn ich mehrmals versuche zu stürzen, kannst du sehen, dass ich das nicht kann. Ich habe eine Zeitspanne dazwischen. Ich kann nicht so schnell handeln, wie ich möchte. Also hoffe ich, es gefällt dir. Ich hoffe, du begehst die Änderungen, die eine Torpedobewegung geschaffen haben, ich nenne das, weil es wirklich cool klingt. Stage alles erstellt. Torpedo, Bewegung. Übernehmen Sie die Änderungen. Und wir sehen uns im nächsten Video, in dem wir diesem Torpedo tatsächlich Visualisierung hinzufügen werden, zu diesem schneidigen. 44. Die Torpedo animieren: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und in diesem haben wir tatsächlich eine Animation hinzugefügt, die Ebene handelt, die in den Animator stürzt. Wenn ich das Spiel führe, siehst du genau hier, dass wir uns bewegen. Wenn wir die Leertaste drücken, bewegen wir uns nicht einfach schneller. Wir machen tatsächlich den echten Tyrann. Was ist sie wirklich schikanieren? Etwas aus meiner Kindheit. Aber wie auch immer, Sie können sehen, wie wir gehen, wir können das auch tun. Wir haben die Abkühlung und das raffinierte Ding ist, dass wir in letzter Sekunde hinzugefügt haben, es war ganz oben auf meinem Kopf, wenn wir schießen. Wenn ich den Torpedo mache, los geht's. Sie können sehen, dass wir das nicht mehr tun können, denn offensichtlich haben wir keine Waffe, unsere Hände. Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Okay, also Zeit, den Torpedo zu animieren. Erstens werden wir tun, dass wir in den Kuppelspieler gehen, die Animationen auswählen, den Leerlauf. Wir werden einen neuen Clip erstellen und hier der eingestellt wird und die Animationsebene. Und nennen wir es einfach schneidig, weil jeder von uns oder jeder Spieler versucht, mit dem anderen Namen in Einklang zu bleiben. Also Spieler schneidig, spar dir das auf. Und jetzt lasst uns anfangen. Jetzt wissen wir, dass wir darauf zugreifen. Wir ändern die Animationen oder die Eigenschaften des Body-Sprite-Renderers und scrollen nach unten in die Sprites. Also werden wir das hinzufügen. Lasst uns das öffnen, damit wir sie richtig sehen können, genau wie wir es immer getan haben. Also lasst uns das schneidige 1, 2, 3 sehen. Und lasst uns eigentlich, ich möchte das einfach öffnen und richtig sehen, was passiert. Also haben wir 1, 2, 3, 4, 5, 6, 7 Sprites. Und wir haben sie alle richtig. Mal sehen. Okay, also alle von ihnen, das heißt das, D1, D2, D3, D4, 5, 6 und 7. Also möchte ich nur die Verwirrung vermeiden , nur damit ich weiß, welche die Ds sind. Also los geht's. 12345 bis sieben. Halten Sie gedrückt, Umschalttaste, wählen Sie sie alle aus, legen Sie sie hierher. Und ich entferne den ersten und ich werde all dies an den Anfang verschieben. Und jetzt lasst uns das ein bisschen erweitern, aber lasst es uns schaffen. Los geht's, lass es laufen. Mal sehen. Okay, sehr nett. Obwohl wir immer noch den Arm hier drin haben, wenn du willst, habe ich viel darüber nachgedacht. Also bleiben der Arm und der Gon an Ort und Stelle. Was sollen wir dagegen tun? Nun, ehrlich gesagt, werde ich es einfach so behalten, wie es ist. Sie können den Arm drehen, Sie können wählen, dass er begonnen hat, Sie werden nicht schießen können. Ich denke, es wäre eigentlich ein guter Mechaniker. Vielleicht sollten wir es sogar hinzufügen. Nein, weil ich möchte, dass sich der Arm und die Waffe während dieser Zeit drehen , wird es offensichtlich nicht schießen können, aber wir wollen die Drehung der Waffe nicht ändern. Es wird ein Problem verursachen. Da sind wir los. Das ist das schneidige, aber wir können es tun, dass wir vielleicht ausschalten können, genauso wie wir eine Aufnahme erstellen können, in der wir Körper und Arm des Spielers ausschalten . Vielleicht verstecken Sie sie einfach für eine Sekunde. Am Anfang schalten wir sie aus. Und am Ende, Ups, nicht der Körper. Ich meinte den Arm und die Waffen an. Wir schalten sie aus. Und am Ende, wenn wir die Rotation beenden, müssen wir sicherstellen, dass der, dies der letzte ist. Füge es hier ein. Wir schalten das wieder ein. Jetzt wird dies hoffentlich keine Fehler verursachen. Wir speichern das, führen das Spiel aus. Auch. Wir müssen das tatsächlich auslösen. Lass mich einfach zurückgehen. Und sollte es sein, gibt es ein Problem. Was ich glaube, wird das passieren, vielleicht wird dies hier ein kleines Problem verursachen. So kannst du die Waffen an sehen. Wir haben einen Hinweis darauf und den fernen Punkt bekommen. Was ich also fürchte, ist, dass diese nicht mehr funktionieren werden, wenn wir die Waffen ausschalten . Aber mal sehen, was passiert und verschwenden wir das. Gehen wir in den Animator und wir werden uns darüber in ein bisschen Sorgen machen. Was sollen wir also tun? Wir werden anfangen zu schneidigen , wenn wir im Spieler laufen. Also gehe ich von Spieler zu Spieler schneidig. Ich erstelle hier eine Triggerung. Und ich nenne es den Strich. Da sind wir los. Die Bedingung hier drin wird der Strich sein. Ja, also vom Gehen bis zum Schneidern haben wir das. Und was wir tun können, ist, dass wir vielleicht eine Ausstiegszeit haben , weil wir keine tatsächliche Zeit haben , wann wir das Schneide gestoppt haben. Wir haben keine Bedingung, die uns dazu bringt, aufzuhören zu schlagen. Wenn wir nicht zurückgehen, werden wir für immer weitermachen. Und wir können auch schneidig sein, wenn wir uns erweitern. Also werde ich das ein bisschen bewegen sie ein bisschen besser aussehen lassen. Da sind wir los. Da sind wir los. Und ich werde sicherstellen, dass dies auch unter der Bedingung des Schneidens steht . Und wir werden jede Übergangszeit vom Gehen und dem Schneide entfernen . Lass uns weitermachen und das testen. Eigentlich, wenn ich in den Animator gehe, führe das Spiel aus, sehen wir genau hier den Leerlauf. Und es hätte beim Spielen des Spiels nicht maximieren sollen. Mal sehen, wie das funktioniert. Das ist also mein eigentlicher Prozess von I Dash. Da sind wir los. Wir haben es richtig funktioniert. Ich habe aufgehört, zwei zu zerschlagen. Okay. Wie Sie sehen können, stimmt etwas nicht, wenn ich gerade versuchen würde zu schießen, wo sind die Waffen? Damit wir einen Fehler beim Untergang machen, dem schneidigen Spieler , und dieser ist ausgeschaltet. Werden sie eingeschaltet? Ja, das tun sie. Im letzten Frame, aber aus irgendeinem Grund hat es sich nicht eingeschaltet. Also werde ich das Spiel noch einmal ausführen und sehen, was das Problem ist. Also schlage ich o, okay, jetzt kenne ich das Problem, das wir schleifen. In der Animation, Layer, Dash, hör auf zu schleifen, vergesse ich das erste Mal , dass ich so oft das Looping in einem Spiel entfernen muss. Lassen Sie uns das nochmal ausführen. Teste das aus. Also mache ich den Strich, ich habe aufgehört zu schneidigen. Ich schaue mir den Doom Player an. Ja, da sind wir los. Also schau mal, was passiert, wenn wir abstürzen. Okay, das wäre also Dash. Ich wusste nicht 0. Also sind wir immer noch in der schneidigen Animation. Großartig. Jetzt werden wir einen Übergang vom schneidigen zum Spieler machen, der läuft und der Spieler im Leerlauf ist. Und dieser wird eine Ausstiegszeit haben. Wir werden die Ausstiegszeit auf dem Rückweg entfernen. Vom Strich in den Spieler, im Leerlauf und Gehen, sollten beide Übergänge keine Ausstiegszeit haben, noch müssen sie eine Übergangsdauer haben. Und während wir gehen, haben wir hier eine Art Ausstiegszeit. Also werden wir die Ausstiegszeit so halten, wie sie ist. Warum? Denn wenn Sie Animationen erstellen und zusätzliche Zeit haben , die für diesen Moment automatisch und perfekt passiert , wenn wir eine etwas längere Ausstiegszeit haben, könnte die Animation in der Mitte schneiden und dann wieder in den Leerlauf gehen. Testen wir das also. Jedenfalls. Ich fahre weiter und führe das Spiel aus. Wenn ich also sprenge, gehen wir los und wir gehen nicht zurück. Warum ist das so? Wir gehen nicht zurück ins Auge, den Link aus irgendeinem Grund. Es gibt etwas, das nicht richtig funktioniert. So funktioniert das, wenn diese Animation abgespielt wird, dann haben wir eine Ausstiegszeit. Es geht also nicht um diesen, der auf das Schneide zugeht wenn der zurückkommt. Das war also ein Fehler meinerseits. Etwas, von dem ich dachte, ich wüsste es oder natürlich weiß ich das, aber aus irgendeinem Grund irre ich mich für den Rückweg, nicht den Weg. Aber wie auch immer, eine Sache ist mir aufgefallen, wenn wir jetzt spielen, funktioniert das Gushing richtig. Selbst wenn wir laufen, sagten wir den Auslöser, wir haben die Spaltung. Okay. Während wir arbeiten, gehen wir los. Wir hören auf zu arbeiten, weil wir darauf klicken. Wir werden das innerhalb des Spiels testen. Aber im Moment werden Sie sehen, dass wir beim Springen nur die Animationsnotiz hier im schneidigen Spiel haben . Sie werden also sehen, dass wir die Animation spielen und dann gehen wir zurück. Warum ist das so? Nun, denn zur Ausgangszeit und hier spielen wir 60% davon. Was wir also tun werden, ist, dass wir dies einfach erhöhen, bis es um 97 oder sogar eins wird. Und das auch, also ist das ein Prozentsatz. Und wenn du es vergrößerst, siehst du hier in der Timeline, dass wir das gesamte Dashing spielen und dann gehen wir zurück zu dem Spieler, der um 97 läuft. Ich mag es nicht, es auf einem zu behalten, weil wir das starten werden, wieder der Spieler schneidet oder etwas Abgestanden hat. Also führen 97 Prozent das Spiel aus. Wenn wir jetzt abstürzen, los geht's. Wir machen den Strich. Wir machen den Strich, wir machen den Strich und alles funktioniert richtig. Testen wir es, wenn wir aus dem Spiel gehen. Also laufen wir, wir laufen, wir stürzen. Okay, es wird nicht ausgelöst. Wirklich nett. Warum wird nicht ausgelöst? Nun, weil es Teil deiner Herausforderung ist. Ihre Herausforderung besteht darin, die Torpedoanimation auszulösen sodass Sie nur eine Aufgabe haben und das ist ein Update. Wenn wir die Tasten drücken, stellen Sie sicher, dass Sie die Animation auslösen und Sie sollten wissen, welche Tasten. Vielleicht benutzt du etwas anderes als den Raum. Deshalb benutze ich Knöpfe und pausiere das Video immer sofort und stelle sicher, dass wir dash. Okay, willkommen zurück. Also hier drin, wenn wir sprengen, werden wir fortfahren und sagen, dass der Spieler-Animator Trigger gesetzt hat, Trigger setzen. Und weil dies eine String-Referenz ist, gehen wir zurück, wir kopieren sie, wir gehen zurück, wir haben eingefügt, wir schließen das ab. Und schließlich möchte ich hier auch einen kleinen Kommentar für später hinzufügen , wir werden uns ändern oder sicherstellen, dass der Spieler unbesiegbar ist. Greifen Sie also auf den Layer-Health Handler , da es sich um ein separates Skript handelt. Und stelle sicher, dass er für eine Weile unbesiegbar ist. Großartig, also werden wir das jetzt speichern, gehen zurück in unser Spiel und wir werden rennen. Jetzt können wir also schießen. Wir machen den Strich, wir können schießen, wir machen den Strich. Und wenn wir schneidig sind, schießen wir immer noch, obwohl der Arm zerstört ist. Also los gehst du. Wir können auch Dash während wir laufen und es funktioniert einwandfrei. Da gehst du. Sie können sehen, dass wir beim Gehen abstürzen können und wir gehen wieder spazieren. Das Problem hier ist, dass wir beim Springen schießen, immer noch schießen können, obwohl wir schneidig sind. Jetzt ist es irgendwie einfach. Wir können hier eine Art Boolean erstellen. Stellen Sie sicher, dass wir abstürzen können, können wir nicht schießen. Das ist eigentlich eine gute Idee. Und wo zeigt die Waffe, während der Spieler schießt? Und wir können eine Bedingung schaffen. Und hier ist das echt nett. Ich wollte es jetzt nicht machen denn später, wenn wir fortschrittliche Waffen herstellen, wird alles, was sich um die Schießmechanik dreht , aus dem Drehbuch verschoben. Hier werden wir erklären, wie wir unsere Skripte entwickeln, während wir weitermachen. Aber jetzt fügen wir einfach diese kleine Bedingung hinzu. Das ist eine gute Möglichkeit, etwas Neues beizubringen. Wir werden prüfen, bevor wir mit dem Schießen von Spielern beginnen, wenn wir können, ist der Dash gleich falsch. Warum ist das so? Nun, denn während wir den Dose Dash Spot durcheinander bringen, haben wir diese Art von Zähler. Und wir werden hier sagen, dass sie zurückkehren, wenn diese, entschuldigen Sie mich, kehren Sie zurück, einfach nur das. Was bedeutet „Rückkehr“? Return bedeutet, dass wir vom Schießen des Spielers ausgehen. Dieser ganze Code hier wird also nicht ausgeführt sobald die Kerze falsch ist, wir können nicht mehr schießen. Testen wir das mal. Ich hoffe, du verstehst, was wir mit Rückkehr meinen. Rückkehr bedeutet, dass wir einfach raus, wir stoppen alles damit. Wenn diese Bedingung nicht zutrifft, so ist der Strich, der Strich allein wahr. Dies bedeutet, dass diese gesamte Bedingung falsch ist. Dies bedeutet, dass wir nicht zurückkehren. Also speichere das wieder in unserem Spiel, aus dem Spiel. Wir sollten sehen, dass wir gehen, wenn wir schneidig sind. Wir hören auf zu schießen, bis sie sich abkühlen. Okay, großartig. Dies ist also nur eine kleine Zeile wie wir das später beheben können, natürlich wird sich das alles ändern. Ich hoffe, dir hat das Video gefallen. Ich hoffe, Sie haben die Verpflichtungen hier eingegangen. Ich hoffe, du hast eine Bewertung hinterlassen. Wenn nicht, ist dies der perfekte Zeitpunkt dafür. Ich danke dir vielmals. Stage machte alle die schneidige Animation. Jetzt sind wir cooler. Übernehme die Änderungen und wir sehen uns im nächsten Video. 45. Breakable Objekte: Willkommen zurück, meine Spieleentwickler. Dieses Video wird etwas länger dauern, denn dies ist eine der Zeiten, in denen ich wirklich nicht sicher war, was wir machen werden. Ich war mir also nicht sicher, ob ich dies zu einem Auslöser machen wollte oder ich wollte dies zu einem festen Objekt machen. Aber wie auch immer, wenn wir das durchgehen , passiert nichts, aber wenn wir es durchlaufen, können Sie sehen, dass wir es brechen können. Wie cool ist das? Und es verschwindet nach ein paar Sekunden von selbst. Verschwenden wir also keine Zeit mehr. Stellen Sie sicher, dass Sie Ihre Konzentrations-SCAP auf setzen. Ich habe winzig winzige Fehler und einige Zögern dabei, aber keine Sorge, ich habe alles so gut wie möglich erklärt . Also lasst uns anfangen. Oh, okay, jetzt ist es an der Zeit, ein paar zerbrechliche Objekte hinzuzufügen. Dies ist der springende Punkt des Abschnitts. Wir sind beim zweiten Video und haben immer noch nichts zum Zerstören hinzugefügt. Also gehe ich hier drin in meine Sprites. Und ich werde das etwas größer machen. Auf diesem Weg. Ich schätze, wir können diese Icons sogar etwas kleiner machen, also passen sie gut. Da sind wir los. Also klicke ich mit der rechten Maustaste, um einen neuen Ordner zu erstellen, und dies sind die zerbrechlichen Objekte. Zerbrechliche Objekte, und deshalb erstellen wir immer Ordner. Stellen Sie sich vor, wir hätten alle Sprites insgesamt in einem einzigen Ordner gehabt, wäre es ein Albtraum gewesen. Wie auch immer, wir werden auf die Ressourcen eingehen, wie Sie hier sehen können, haben wir viele Bots zu zerstören. Ich wähle den richtigen aus. Ich wähle das weiße zerbrechliche Objekt aus. Da sind wir los. Plötzlich hier drin. Und wir können weitermachen und das sezieren. Also stelle ich sicher, dass es mehrere ist. Und ich werde das tun, ist vielleicht außerhalb Bildschirms und ich werde dich wissen lassen, wenn ich fertig bin. Okay. Also willkommen zurück. Lass mich dir sagen, was ich getan habe. Ich wollte dich nicht mit all den Details langweilen , also habe ich alles, was ich getan habe, 32 mal 32 die weiße Box aufgeschnitten. Wir haben hier drei verschiedene Teile und werden drei verschiedene Pausen verwendet. Der W1, W2 und W3 beschreiben den größten Pop-Breaking. Und ich sorge dafür, dass wir diese drei kleinen Teile hier haben . Sie werden sich später als nützlich erweisen. Also werde ich alle Änderungen verwerfen. Ich habe auch eine Animation für die Bikeable Parts erstellt. Also los geht's, du siehst, dass es sich löst. Wir werden von jetzt an sicherstellen , dass wir zum Zerbrechlichen gehen. So können Sie sehen, dass Weiß gekauft kaputt geht, stellen Sie sicher, dass es nicht läuft. werden wir alles retten. Jetzt den Bremstopf, ich füge ein Jahr Box Collider oder ein kreisförmiges Plus nein hinzu, keine Leinwand. Entfernen Sie die Komponente. Ich füge einen Box Collider hinzu. Also Box Collider 2D. Da gehen wir das um, ich werde es etwas kleiner machen. Ich mache die Pixelgröße auf dem Sprite. Lass mich dir zeigen, was ich auch getan habe. Du wirst also nicht verwirrt. Du kannst sehen, dass der Pot ungefähr eine gute Größe für den Spieler hat. Lassen Sie es uns so belassen. Und was wir tun können, ist, dass wir weitermachen und es schaffen können, nun, das wird von Ihnen abhängen. Möchten Sie, dass Ihr Objekt möchte, dass wir mit diesem Objekt kollidieren können, oder wir möchten es einfach zu einem Auslöser machen. Ich werde es vorerst später als Auslöser behalten, wenn Sie dies ändern möchten, wenn Sie Interaktionen mit den Pots haben möchten, möchten Sie, dass sie Sie davon abhalten, durch sie zu gehen. Dann empfehle ich dir, es nicht auszulösen. Wissen Sie was, lassen Sie es uns als Nicht-Trigger behalten. Und aus diesem Grund werden wir ihm einen starren Körper hinzufügen und ihn statisch machen. Okay? Es ist also eine Statik. Es bewegt sich nicht, aber wir können es brechen. Was sollten wir sonst noch hier machen? Nun, ich glaube, das war's. Vorerst. Speichern wir das und fügen wir ein Skript hinzu, das als Trennungsbullen bezeichnet wird. Also in den Skripten, weil wir offensichtlich Verhalten an der Stelle hinzufügen wollen , an der wir brechen wollten. Komm schon, okay, also lasst uns die Spieler-UI der Feinde sehen, und lasst uns weitermachen und hier einen Ordner erstellen. Und lass es uns zum Zerbrechlichen machen. Bubbles brechen öffnet sich mit der rechten Maustaste Erstellen wird wahrscheinlich kein anderes Skript oder ein anderes Skript haben , okay, also zerbrechlich. Aber das Gute daran, einen Ordner zu erstellen und nur ein Skript hier einzustellen nur ein Skript hier einzustellen , dass wir ihn von außen sehen können. Also und Skripte genau hier können wir das Zerbrechliche überprüfen , damit wir es sofort finden können. Ich füge das Bremsteil hinzu. Da sind wir los. Wir haben die Break Bubbles. Lasst uns das hier öffnen. Und was sollen wir tun? Nun, weil wir keinen Trigger verwenden, werden wir etwas verwenden, das als „On Collision Enter“ bezeichnet wird. So kann man bei Kollision sehen, wenn der weniger starre Körper der Collider begonnen hat einen anderen Collider oder starren Körper zu berühren, und wir werden sicherstellen, dass es sich um 2D handelt. Also hier drin sieht man, dass wir anstelle von anderen die Kollision haben. Was wir also tun werden, ist zu prüfen , ob das collision.com-Tag verglichen hat? Nein, tut es nicht. Etikett. Oder wir können auf das collider.com-Tag zugreifen. Da sind wir los. Jetzt haben wir den Collider der Kollision. Und wir prüfen, ob es der Spieler ist. Und wenn ja, dann werden wir das Spielobjekt zerstören. Entschuldigung, das Spielobjekt. Spar dir das auf. Und wir gehen auch hier rein, suchen nach dem Animator und sehen, welche Art von Trigger es macht. Also müssen wir hier ein Idol erschaffen. Also gehen wir auf die Asset-Animationen ein. Oder ist es, wo ist es? Wo ist es? Zerbrechlich? Weißer Teil, untätig. Das bedeutet, dass es sich nicht bewegt weil Sie offensichtlich sehen können dass es nicht kaputt geht, sobald wir das Spiel beginnen, wir wollen es so behalten. Was wir also tun können, ist mit der rechten Maustaste hier hineinzuklicken und dies als Standardstatus festzulegen. Also los gehst du. Und das fügen wir gleich hier hinzu. Erstellen Sie einen Übergang, der eine Art Trigger haben wird, nämlich die Pause, Scott Break der Einfachheit halber, keine Austrittszeit, Übergangsdauer 0. Und ich werde weitermachen und es als Pause machen. Dann gehen wir wieder hier rein. werden wir tun, denn das ist, wird das nicht zu kompliziert sein. Ich hole den Animator einfach sofort. Also hier drin werde ich sagen, ob die Kollision als Spieler bevor wir zerstören oder tatsächlich, weißt du, wir werden das entfernen. Ich werde weitermachen und die Komponente holen , den Animator. Und in Tor Dot setzt Trigger und wird der Rake sein. Und ich weiß, dass es eine String-Referenz ist und ich habe sie nicht kopiert, aber ich hoffe, dass die Pause leicht zu verstehen ist. Und dann schaffe ich eine öffentliche Leere. Zerstöre. Nun, nein, zerstöre. Nennen wir es einfach „Destroys“. Und vielleicht wollen wir eine Art Kälte hinzufügen , damit wir nicht wollen, dass der Topf zerstört wird. Also lass mich dir sagen, was ich hier drinnen tun will. Was ohne eine Coroutine, zerstöre einfach das Spielobjekt. Was ich sagen wollte, ich wollte eine Co-Routine nutzen, um das Verschwinden der kleinen Stücke genau hier zu verzögern . Auf der anderen Seite dachte ich, es wäre vielleicht noch besser dies genau hier einzustellen, das Ereignis nach vielleicht ein paar Sekunden anzurufen, oder wir können vielleicht auf die zweite drei wählen, los, setzen Sie das Event ein. Was ist die Funktion? Zerstöre, speichere das, führe das Spiel aus. Jetzt sollten wir sehen, dass sobald wir mit dem Pot kollidieren, er zerstört wird. Und los geht's, das Objekt ist verschwunden. Und was wir auch tun können, ist zum Beispiel, dass wir in die Animation des Bremsteils und der Animation gehen können . Sobald der Pot kaputt geht, zerbricht er genau hier. Was wir tun können, können wir mit der Aufnahme beginnen und dann den Box Collider ausschalten. Sie werden also sehen, dass die Box jetzt gut ist, wenn Sie den Pot vollständig sehen und wenn er kaputt geht, gehen wir los. Es gibt keinen Collider mehr. Und wenn wir genau hinschauen, können wir den Collider wählen und ihn vielleicht ein wenig bewegen , bevor er tatsächlich kaputt geht. Es scheint also, als wären wir es durchgegangen. Also spar dir das auf. Führe das Spiel aus. Oh nein. Sprechen Sie. Nein. So nicht. Entschuldigung. Oh, also nimmt es auf, ich habe vergessen, den rechten Knopf zu drücken. Wir führen das Spiel aus. Wir hatten den Pot. Da gehst du in Pausen. Es fühlt sich also wirklich an, als wären wir es durchgegangen und man kann sehen, wie der Pop verschwindet. Okay, großartig. Was das getan hat, was wir tun müssen, ist, dass wir sicherstellen müssen , dass dieser Topf kaputt geht, nicht wenn wir ihn nur durchlaufen, wir wollen, dass er kaputt geht, wenn wir ihn tatsächlich durchlaufen. Und ich denke, dass dies eine Herausforderung für Sie sein wird. Und Ihre Herausforderung wird darin bestehen, einen booleschen Wert zurückzugeben. Was ich fühlte, dass es darum ging, zu brechen, wenn wir laufen, nun, wenn wir schneidig sind, möchten wir einen Method-Int-Player-Controller erstellen , auf den wir von der Pause zugreifen können, auf die wir skripten werden. Warum ist das so? Nun, wir müssen eine Methode erstellen, die einen Bool anstelle einer Lücke zurückgibt. Und diese Methode sollte wahr zurückgeben , wenn wir schneidig und falsch sind, wenn wir es nicht sind und falsch, wenn nicht , das ist nicht w, es ist steil. Daher müssen wir die Spieler, die die Bewegungsgeschwindigkeit des Spielers oder was auch immer Sie verwenden möchten, verwenden. Warum schaffen wir diesen Rückgabewert? Denn in den Break Bubbles wollen wir sicherstellen, dass der Spieler tatsächlich schneidig ist. Also werden wir die Bedingung im On Collision Enter hinzufügen . Wir möchten sicherstellen, dass es nicht nur die Ebene ist. Wir wollen sicherstellen, dass es der Spieler ist , der gerade unseren Pot erreicht hat. Diese Informationen erstellen also die Methode, die einen booleschen Wert zurückgibt. Pausiere das Video sofort. Geh, mach die Herausforderung. Geh und gib dein Bestes. Ich weiß, dass wir diese Art von Methode nicht gemacht haben , die etwas anderes als nichtig zurückgibt. Aber ich weiß, dass du einfach versuchen willst, dein Bestes zu geben. Okay, willkommen zurück. Ich hoffe, das war nicht allzu schwer. Ich gehe in den Layer-Controller. Okay, also was ist das Problem hier drin? Man könnte sagen, dass ich eigentlich nur auf die aktuelle Bewegung zugreifen möchte. Und ich kann sofort wissen, wie hoch die Geschwindigkeit des Spielers ist. Aber hier drin sieht man, dass die aktuelle Bewegung privat ist. Was wir also tun müssen, wenn wir hier eine Methode erstellen werden. Und diese Methode wird eine öffentliche Bool-Layer sein , die schneidig ist. Und was machen wir hier drin? Wir werden prüfen, ob die aktuelle Bewegungsgeschwindigkeit der Strichgeschwindigkeit entspricht. Wir hätten die Kerze auch benutzen können, aber sie können dash ist nicht gleichwertig. Wo ist es? Wo setzen wir den Zähler zurück. So kann er dash nicht gleichbedeutend mit dem Zeitpunkt, an dem die Bewegungsgeschwindigkeit stoppt. Wir können also abstürzen, um den Schnitt abzukühlen während die Bewegungsgeschwindigkeit sofort von der gestrichelten Länge abhängt. also Wenn also die aktuelle Geschwindigkeit der Strichgeschwindigkeit entspricht, werden wir wieder wahr zurückkehren. Sonst werden wir falsch zurückgeben. Und übrigens hätten wir etwas Ähnliches tun können, damit ich diese entfernen kann. Und wie Sie sehen können, ist es viel sauberer. Warum? Weil wir nur eine Codezeile unter den if- und else-Anweisungen haben. Sonst hätten wir das nicht benutzen können. Jetzt haben wir es als öffentlich. Wir gehen zurück zum Zerbrechlichen. Wir werden innerhalb von Jahr 4 einen booleschen Wert erstellen. Wir zerstören den Pot, nachdem wir nach der Kollision gesucht haben, offensichtlich weil wir nicht immer wissen wollen , wie hoch die Spielergeschwindigkeit es sei denn, es ist der tatsächliche Spieler, der kollidiert ist, einfach getroffen. Also mache ich weiter und erstelle einen Bool. Und es wird Layer schneidig sein. Und es wird gleich Kollisionspunkt-Spiel-Objekt Dot Get Component sein. Es ist also ein bisschen anders als wenn wir einen Trigger verwenden. Und hier drin kriegen wir einfach den Spieler-Controller. Und wir werden prüfen, ob die Ebene schneidig ist, speichern Sie das. Jetzt sollte dies entweder wahr oder falsch zurückgeben. Und hier drin werden wir prüfen, ob die Ebene schneidig ist. Dann beginnen wir mit der Animation. Und wenn die Animation bei Pausen beginnt und schließlich das Stick-Spiel-Objekt zerstört. Eine Sache, die ich hier erwähnen wollte , ist, dass wir Collider benutzt haben. Hier benutzen wir das Spielobjekt. Wir hätten das Spielobjekt hier verwenden können, speichern Sie das, und es hätte genauso funktioniert, aber die Kollision, die Sie genau hier sehen können, gibt eine Kollision zurück. Es hat nicht die gewissen, sagen wir Methoden, die wir brauchen. Also wenn ich zum Beispiel gehe, und an der anderen Stelle, also zum Beispiel Level Exit, hier drin, unterscheidet sich der Collider 2D von der Kollision 2D. Kollision ist also Teil der detaillierten Rückkehr zur Physik. Wenn wir in den Level Exit schauen, der Collider 2D tatsächlich die Spielobjekte zurück sodass wir sofort auf das Tag zugreifen können , während es um die Kollision geht, es ist nur ein bisschen anders. Ich empfehle Ihnen, die Dokumentation von Unity durchzugehen und zu sehen, was der Unterschied zwischen Kollision Collider ist. Dies sind kleine Dinge, aber wissen Sie nur, dass wir zuerst auf das Spielobjekt zugreifen und dann den Vergleichstack verwenden. Wenn das aus dem Weg ist, speichern wir das alles. Gehen wir zurück in unser Spiel. Lass uns das Spiel laufen. Versuchen wir, den Patois zu brechen. Okay, da gehst du. Also bricht es nicht. Und wenn ich versuchte zu stürzen, oops, habe ich den unteren zwei Strich vergessen. Wenn ich sprenge. Okay. Es funktioniert auch nicht. Warum ist das so? Okay, also ist es kaputt. Da gehst du. Versuchen wir es noch einmal, denn es gibt etwas, das etwas langsam war. Und ich glaube, das Problem liegt beim Spiel. Warte eine Sekunde. Also denke ich, ich möchte das bewegen, das Ding, das mit dem Collider umgeht. Ich möchte es an den Anfang verschieben. Spar dir das auf, denn ich möchte, dass der Collider verschwindet, sobald wir anfangen, den Dollar zu brechen. Also los geht's. Sie können jetzt sehen, dass wir uns einfach durchziehen können. Wenn Sie ein bisschen mehr hinzufügen möchten, weiß ich vielleicht keine Authentizität dass wir es nur eine winzige Sekunde behalten wollen , bevor wir weitermachen und es brechen. Es ist Ihre Wahl. Stellen Sie sicher, dass Sie wählen, was Sie wollen. Lass es mich sehen. Okay, also wenn ich mich bewegen will, wenn du nur den zerbrechlichen Pot bewegst, wähle die zweite Zeile. Da gehst du und du siehst, dass du es bewegen kannst. Also spar dir das auf. Jetzt haben wir alles funktioniert. Versuchen wir es durchzugehen. Es wird nicht funktionieren. Wir sind durchgegangen. Es funktioniert nicht mit Dash hindurch, es geht kaputt. Großartig. Gehen wir und stellen sicher, dass wir alles inszenieren. Und im nächsten Video wollen wir die zerbrochenen Teile unseres Topfes zeigen. Wir wollen also einige Stücke haben, die sich ausbreiten. Deshalb habe ich erstellt und die Sprites in Forderungen hier haben wir den P1, P2 und P3. Dies sind Stücke, die um diese herum liegen werden und sie werden ein bisschen mehr Gefühl verleihen, dass Töpfe brechen. Wir wollen also, dass Stücke ein bisschen herumfliegen und dann langsam verschwinden, was die Dinge ein bisschen authentischer etwas weniger starr macht. Also sehe ich dich dann. 46. Broken Stücke: Willkommen zurück, Meine Lieblingsspielentwickler. Und in diesem Video, wenn wir das Spiel starten, brechen wir immer noch die Rolle, aber Sie werden feststellen, dass wir nach dem Verschwinden drei Teile haben. Teil 1 auf dem Boden wird zerstört. Wir haben einen Teil 2 und Teil 3 und einen anderen Teil 3. Wir instanziieren und zerbrochen Teile, wenn ein Objekt oder ein zerbrechliches Bondungsobjekt zerstört wird. Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Oh, Fall. Also Zeit, ein paar zerbrochene Stücke zu machen. Das erste, was wir tun werden, ist, dass ich dieses kaputte Stück genau hierher ziehen werde. Und wo ist es? Doppelklick auf k. Da sind wir. Und stellen wir sicher, dass es sich auf der Spielerebene befindet. Und ich denke, wir sollten dies ändern, um die Level-Objekte zu haben und nicht der Spieler lebt. Aber im Moment werde ich es einfach behalten, da es sich nicht lohnt. Offensichtlich sollten wir es ändern, aber das werden wir jetzt nicht tun. Ich füge eine 23 hinzu. Jetzt haben wir drei Teile. Ich wähle sie alle aus und mache sie alle für den Spieler. Los geht's, die PS2 und die Bienen. Drittens, das hebe ich auf. Bevor ich weitermache. Lasst uns das in den Barock und Teil eins verwandeln. Kopieren Sie den defekten Teil 2 und den defekten Teil 3. Da sind wir los. Jetzt gehe ich in den Prefabs-Ordner und klicke mit der rechten Maustaste und erstelle einen neuen Ordner für die defekten Teile. Mach es auf. Und ich füge sie nacheinander hinzu. Wenn wir alle auswählen und uns ziehen, funktioniert es nicht. Also ziehe ich eins nach dem anderen. Jetzt haben wir die drei kaputten Teile und wenn du willst, kannst du etwas noch besseres machen. So können wir zum Beispiel das dritte Stück hinzufügen. Wir können es drehen. Jetzt haben wir dieses Stück genau hier, wir drehen es um. Und das kann zum Beispiel das Stück genannt werden , wenn Sie möchten, empfehle ich Ihnen, Ihre Fantasie zu nutzen, wenn Sie an den Stücken zweifeln, die wir haben. Ich wähle diese drei aus und stelle sicher, dass ihre Position bei 0 liegt. Denn wenn wir es zum Beispiel haben, sagen wir das als Sechs, Okay, wir fügen sie um sechs hinzu oder haben sie alle um sechs wenn ich sie hinzufüge, also instanziiere ich sie. Sie können sehen, dass es an Position 6 beginnt , nicht auf 0. Dies wird Probleme verursachen. Also halte ich es immer gerne bei 0, obwohl es, wenn wir es an einer bestimmten Transformationsposition instanziieren , die Position einnehmen wird, die wir ihm sagen. Aber wie auch immer, lass uns weitermachen. Ich glaube, du weißt was ich meinte? Ich lösche diese zerbrochenen Teile. Ich öffne das zerbrechliche Skript, wenn ich es finde. Und hier drin werden wir zuerst einen Hinweis auf den kaputten Teil bekommen. Also erstelle ich ein serialisiertes Feld vom Typ Spielobjekt und nenne dies den defekten Teil. Spar dir das auf. Und bevor wir das Spielobjekt zerstören, instanziiere ich den gebrochenen Teil an der Position transform.py und transformiere die Rotation. Spar dir das auf. Lass uns wieder in unser Spiel gehen. Richtig, kompilieren Sie dafür jeden Tag jetzt. Okay, also sperre ich das ab. Ich gehe in Prefabs und wähle die zerbrochenen Stücke aus. Und lasst uns einfach den ersten hinzufügen, außer dass das Spiel mit dem Objekt kollidiert geht es in Pausen und wir sollten dieses Stück hier übrig bleiben. Okay, sehr nett. Jetzt verschwindet es nicht. Das werden wir in ein bisschen erledigen. Aber im Moment haben wir die Teile zerbrechen. Aber offensichtlich wollen wir offensichtlich mehrere Teile brechen und nacheinander erscheinen lassen. Das wird also Ihre Herausforderung sein, Ihre Herausforderung, alle Teile zu instanziieren. also zuerst Holen Sie sich also zuerst alle Teile aus den Sprites, die wir schon gemacht haben. Erstelle eine Reihe von Spielobjekten für die kaputten Teile, die durch die Teile geschleift werden, die du mit der for-Schleife verwendest. Wir haben also bereits gelernt, wie eine for-Schleife funktioniert. Sie müssen jedes Mal eine Zufallszahl generieren . Und wir müssen die Nummer verwenden, um ein kaputtes Stück zu instanziieren. Jetzt denken Sie vielleicht nach, das bedeutet, dass einige zerbrochene Teile zweimal gemacht werden. Und das ist okay. Ehrlich gesagt denke ich, dass es nicht sehr schlimm ist, worüber man sich Sorgen machen muss. Wenn Sie möchten, können Sie noch tiefer darauf eingehen und einen zufälligen Winkel für die Teile instanziieren , damit sie anders erscheinen und dies nicht tun. Stellen Sie sich am selben Ort ein. Jetzt wird es hier natürlich ein kleines Hindernis geben. Wir werden darüber sprechen, sobald Sie die Herausforderung bewältigt haben. Also pausiere das Video jetzt und mach die Herausforderung. Oh, komm zurück. Bevor wir also das Spielobjekt zerstören, werden wir es tun, und ich denke, dass dies nicht der perfekte Ort dafür ist . Anstatt also hier drinnen zu instanziieren, werde ich das hier drin bewegen. Also nachdem wir mit der Animation begonnen haben, oder weißt du was? Dies ist auch ein Problem. Also werde ich das ein bisschen größer machen. Und nachdem wir mit der Animation begonnen haben, instanziiere ich die Stücke, wenn du willst. Wenn Sie möchten, können Sie auch eine separate Methode erstellen und diese mit den Ereignissen aufrufen. Aber jetzt machen wir die Dinge, die wir tun wollten. Zunächst werden wir das Spielobjekt in ein Array verwandeln , und der kaputte Teil doppelklickt hier hinein. Und das werden die defekten Teile sein, die das anwenden. Ich werde das kommentieren, um alles im Inspektor zu sehen. Zerbrechliche Töpfe scrollen also nach unten, schließen Sie diese ab, weil sie nervig sind. Und was haben wir hier? Die kaputten Teile. Sperren Sie dies, wählen Sie alle aus und ziehen Sie sie hier hinein. Jetzt haben wir die drei defekten Teile einsatzbereit. Ich geh hier wieder rein. Und was werden wir tun? Zuallererst werden wir alle Teile durchlaufen. Also, denn ich werde bei r gleich 0 initiieren. Also hoffe ich, dass das nicht allzu schwer war. Fangen wir noch mal an. Wir beginnen damit, die Variable zu erstellen. Wir haben mit einer 0 angefangen. Was wir dann überprüfen werden, oder wir werden weiter schleifen. Während ich weniger als die gebrochenen Teile Punkt, Länge und Länge bin, weil wir Arrays verwenden. Wenn wir Listen verwenden, verwenden wir count und jedes Mal erhöhen wir ich um eins. Wir müssen also drei Teile generieren, und wir möchten, dass diese Teile zufällig sind. Wir haben also eine Abwechslung beim Zerlegen von Töpfen. Also int, es ist eine ganze Zahl. Wir nennen es den zufälligen defekten Teil. Und es wird gleich dem zufälligen Punktbereich sein. Und wie groß ist die Reichweite? Der Bereich reicht von 0 bis zur Punktlänge der gebrochenen Teile. Da sind wir los. Nachdem wir das getan haben, werden wir die Instanziierung nach oben verschieben. Und drinnen von hier anstelle der Teile das werden wir anstelle der Teile das Teil mit dem zufälligen gebrochenen Teil verwenden. Also werde ich das alles retten. Okay, also lasst uns diesen Code testen. Also gehe ich hier wieder rein. Ich werde sehen, was wir sonst noch tun müssen? Ich denke, alles ist gut. Führe das Spiel aus. Jetzt gehen wir zum Bot, bricht nicht. Wir haben versucht, es zu zerstören. Los geht's, es wird zerstört und los geht's. Wir haben einige Stücke sind nein, vielleicht hätte ich das Spiel nicht maximieren sollen. Hören Sie wieder auf, maximieren Sie das Spiel. Lasst uns das größer machen. Wir wollen die Hierarchie sehen. Wir wollen wissen, was passiert. Okay, also treffe ich auf den Teil, der getrennt ist. Also los geht's. Wir haben Teil zwei gebrochen, Teil 1 gebrochen und Teil zwei gebrochen. Also kann ich das nur ein bisschen bewegen und die defekten Teile liegen übereinander. Deshalb habe ich empfohlen , dass wir ein bisschen Rotation erstellen. also sicherstellen, Lassen Sie uns also sicherstellen, dass wir hier alles inszenieren. Wir inszenieren das. Und ich nenne das, jetzt instanziieren wir defekte Teile. Wenn wir defekte Teile instanziieren, sind ein Töpfe der Strich. Wenn Bots zerstört werden, speichern Sie das und übernehmen Sie die Änderungen. Und ich hoffe es gefällt dir, ich hoffe, du verstehst alles. Und im nächsten Video werden wir sicherstellen, dass die zerbrochenen Teile nicht einfach an Ort und Stelle bleiben. Sie breiteten sich aus, als wäre dies zerstört worden und wir haben irgendeine Art Einfluss. Also sehe ich dich dann. 47. Spreading (Lerp): Willkommen zurück, meine Spieleentwickler. In diesem Video haben wir die zerbrochenen Teile erstellt und stellen sicher, dass sie, wenn wir diese zerbrochenen Teile treffen, etwas auseinander fliegen. Also, wenn ich es treffe, los geht's. Sie können sehen, dass sich diese Spots ein wenig bewegt haben und Sie können das sehen, okay, also war das nicht das beste Beispiel. Versuchen wir zu sehen, wann wir zwei Teile haben, die gleich sind. Also los gehst du. Kannst du sagen, welcher Teil 2 ist und welcher ist auch Teil zwei? Nein, das kannst du nicht, weil wir eine zufällige Rotation hinzugefügt haben. Ich dachte, es wäre eine sehr nette Idee gewesen , als ich dir im vorherigen Video davon erzählt habe. Ich dachte, warum nicht gerade in dieses Spiel implementiert wurde. Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Der ganze Fall. Wenn wir jetzt unseren zerbrochenen Kauf zerstören, haben wir die zerbrochenen Stücke und spezialisiert. Aber zuallererst sind sie manchmal gleich, sind sie manchmal gleich obwohl wir Zufallszahlen wählen. Und das zweite ist, dass sie sich nicht auseinander bewegen. Das erste, was ich behandeln möchte, ist die Rotation. Anstatt also nur die Transformationsrotation zu haben, aber ich werde es tun, werde ich eine weitere ganze Zahl erstellen , zufällige Rotation. Und es wird einem zufälligen Bereich zwischen 04, Y4 entsprechen, weil ich sie in vier Richtungen um die Z-Achse drehen werde . Ich mache das also, indem ich hier mit 90 Grad multipliziere . Und wir werden vier Möglichkeiten haben. Entweder drehen wir einhundertzwanzig zweiundzwanzig siebzig oder wir haben es einfach rundgebracht. Vielleicht sollte dieser 0 sein. Wir fangen um 0123 an. Okay, statt der Transformationspunkt-Rotation werde ich etwas verwenden, das als Quaternion bezeichnet wird, dieses Lineal. Los geht's, das ist Herrscher. Ich habe danach gesucht und es gesehen. Sie können also sehen, dass dies die drei Achsen und die Rotation übersetzt . Und wir werden uns offensichtlich um die Z-Achse drehen. Also 90 Halbmal die zufällige Rotation. Da sind wir los. Spar dir das auf. Sie können die Instanziierung genau hier sehen. Wenn Sie der Meinung sind, dass diese Zeile etwas zu lang ist, können Sie in jeder einzelnen Zeile die Eingabetaste drücken. Und jetzt ist es viel offensichtlicher, was diese Instanziierung bewirkt und was die Elemente davon sind. Okay, großartig. Jetzt, da das keine ist, wollen wir als Nächstes unseren kaputten Töpfen Verhalten hinzufügen . Also gehen wir in die Skripte hier und die zerbrechliche Rechtsklick und erstellen ein C-scharfes Skript, das als kaputter Pot bezeichnet wird. Also gebrochener Teil, drücken Sie Enter. Okay, ich weiß nicht, warum das immer wieder passiert und ich gehe in die kaputten Teile ein, wähle alle drei aus und füge das kaputte Teilskript für jedes dieser Prefab hinzu. Öffne das Skript und was wollen wir hier drin? Zuallererst wollen wir auch nach der Bewegungsgeschwindigkeit dieser Teile eine Variable . Es ist also ein serialisiertes Feld, das ein Float sein wird. Und wir gehen zur Fahrgeschwindigkeit. Und wenn Sie etwas mehr Abwechslung hinzufügen möchten, können Sie sogar dafür sorgen, dass jeder von ihnen eine andere Geschwindigkeit und ein anderes Baby hat, je nachdem, wie schnell Bindestriche oder was auch immer Sie tun möchten. Dann erstellen wir einen privaten Vektor 3. Und dies wird die Bewegungsrichtung darstellen. Also Bewegungsrichtung. In welche Richtung bewegt sich jedes Stück? Und schließlich werden wir etwas haben, als serialisiertes Feld bezeichnet wird, das ein Float sein wird. Und das ist der Haltefaktor. Und es werden 50 dieser Zahlen willkürlich sein und ich habe bereits ein paar überverkauft getestet. Darum weiß ich warum Five-Act. Aber was ist der Haltefaktor? Wenn sich unsere Stücke zerbrechen, werden sie sich offensichtlich ausbreiten, aber dann werden sie irgendwann aufhören. Unser Ziel ist es also, den Salzfaktor herzustellen, der die Stücke beeinflusst wenn sie sich voneinander entfernen und schließlich stoppen. Also werden wir langsam langsamer werden. Und ich zeige dir, wie wir mit etwas, das Lappen genannt wird, langsamer werden. Aber lasst uns nicht einen Schritt voraus sein. Als erstes wollen wir eine zufällige Richtung haben , in die sich jedes Stück bewegt. Also zuerst werde ich eine Bewegungsrichtung von x machen. Warum mache ich das und fange an? Weil der gebrochene Teil an dem zerbrochenen Stück befestigt ist , das instanziiert. Und sobald es instanziiert, wird der Start aufgerufen. Und dann wird start bestimmen, in welche Richtung die Richtung ist. Der Bewegungsrichtungspunkt x2 ist also gleich dem zufälligen Punktbereich und welche Werte Sie haben, Sie können hier einen beliebigen Wert auswählen. Aber nur um es ein bisschen Spaß zu machen. Zum Beispiel haben Sie die zerbrochenen Teile sehr schnell davonfliegen. Ich denke, die Richtung, die Zufälligkeit der Richtung wird etwas verrückter sein, nennen wir es. Was wir also tun werden, ist, dass wir die Minus-Bewegungsgeschwindigkeit als Minimum und die Bewegungsgeschwindigkeit als Maximum verwenden die Minus-Bewegungsgeschwindigkeit als . die Bewegungsgeschwindigkeit zunimmt, erhöht Wenn die Bewegungsgeschwindigkeit zunimmt, erhöht sich auch die Zufälligkeit, wenn Sie sie erhöhen möchten . Und ein Minus zu haben, wird sicherstellen , dass einige Teile einfach gehen. Ich weiß nicht wo ein zufälliger Ort ist. Jetzt, wenn die Bewegung nach unten wirkt, hat das die Bewegung y und es wird genau dasselbe sein. Damit. Lasst uns weitermachen. Wir wollen anfangen, die Teile tatsächlich zu bewegen, und wir werden die Transformationspunkt-Position verwenden. Und wir werden es um die Bewegungsrichtung mal Zeitpunkt-Delta-Zeit erhöhen . Offensichtlich wissen wir Plus, plus gleich, also bewegt es sich langsam und die Bewegungsrichtung mal zeit.Deltatime, um sich von der Bildrate zu lösen. Das wäre also stabiler. Wie auch immer. Jetzt müssen wir sicherstellen, dass wir die Bewegung jedes Stücks stoppen und sie nicht nur in die Unendlichkeit bewegen und alles durchlaufen lassen. Die Art und Weise, wie wir das tun werden , ist etwas namens Learn zu verwenden. Also zeige ich Ihnen, was ist, stellen Sie sicher, dass Sie es in Unity's Dokumentation selbst finden . Was macht es? Es nimmt drei Variablen auf. Der erste ist der Startwert der Geschwindigkeit von und mit seinem Startwert. B ist der Endwert und t ist der Wert, der zwischen a und b interpoliert werden soll. Was bedeutet Interpolation? Also, lineare Interpolation zwischen den beiden Punkten. Was also passiert, ist, dass wir den Wert a oder einen beliebigen Wert von a nach B mit dem Faktor t jedes Mal nehmen möchten. Dies wird also der Haltefaktor sein , über den wir gesprochen haben, den wir anwenden werden und sicherstellen, dass Sie verstehen, was hier passiert. Wir versuchen, die Teile langsamer und langsamer zu bewegen. Also beginnen wir mit einer Art Richtung. Und dann werden wir es auf 0 bringen , um zu verhindern, dass sich die Teile bewegen. Also werde ich diese Herausforderung stellen, um sie zu benutzen, um die Bewegung zu stoppen. Zunächst wollen wir also den Schwung der zerbrochenen Teile, der beweglichen Teile verringern den Schwung der zerbrochenen Teile, . Wir wollen die Bewegungsrichtung festlegen, um zu lernen. Wir werden den Wert beginnen. Der Startwert wird die tatsächliche Bewegungsrichtung sein, und der Endwert sollte der 0 sein. Und schließlich wird die Geschwindigkeit, mit der wir die Bewegung stoppen werden, der Haltefaktor sein. Im Grunde genommen stoppt diese Herausforderung, wenn Sie sich bewerben, die Bewegung. Also pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Also hier drin, nach unserer Zeit bewegen wir uns in bestimmte Richtungen. Wir haben also die Bewegungsrichtung als einzigen Faktor, der dies beeinflusst. Also hier wird die Bewegungsrichtung so eingestellt, dass sie einem Vektor drei Abfüllern entspricht. Und hier drin wird der Anfangswert die Bewegungsrichtung sein. Der endgültige Wert ist Vektor 3 0, und der Faktor, das T wird mal der Haltefaktor sein mal der Haltefaktor . DeltaTime, weil wir jeden einzelnen Frame lernen, also wollen wir nicht, dass es sehr schnell ist. Okay, also lass uns wieder reingehen und lass uns das testen und sehen, ob es funktioniert. Denn wir machen das. Ich gehe ins Prefab und schau, was wir kaputt haben. Vielleicht können wir sie hier hinzufügen. So zerbrechlicher Topf. Da sind wir los. Es ist in den kaputten Teilen, vielleicht wie auch immer es heißt. Okay, kaputte Pots, führe das Spiel aus. Mal sehen, was passiert. Vielleicht funktioniert das überhaupt nicht. Oh, nett. Wie Sie sehen können, jeder Teil unsere eigenen Wege gegangen und Sie können sehen, dass wir den ersten Teil haben , der genau auf dem Teil eins oder dem anderen Teil 1 lag . Sie hatten also die gleiche Rotation. Testen wir das noch einmal. Los geht's, wir zerstören es. Was haben wir? Teil 2. 2. Und kannst du also herausfinden, welcher Teil die beiden waren? Wenn ich das also nach rechts bewege aus irgendeinem Grund immer noch die gleiche Rotation habe, haben wir etwas nicht ganz richtig gemacht, also werde ich den Pot brechen und mal sehen. Okay, also habe ich das Gefühl, dass die Rotationssache nicht funktioniert, wenn ich zurück zur zerbrechlichen Zufallsdrehung gehe. Okay, willkommen zurück. Also war ich besorgt, dass etwas mit dem Code nicht stimmte, aber nein, anscheinend sind wir entweder die glücklichsten Menschen auf der Welt oder die unglücklich gefragten Menschen auf der Welt, je nachdem, wie man es sieht. Aber jedes Mal waren die Rotationen gleich. Sie können also genau hier sehen, dass Teil zwei minus 180 und der andere Teil 2 minus 90. Also lasst uns das noch einmal testen. Und mal sehen, da geht's los. Wir brechen es auf. Und Sie können sehen, dass wir Teil 1 und Teil eins haben. Aber kannst du den Unterschied zwischen diesen beiden Teilen erkennen? Sie können also sehen, dass dieser um 90 Grad gedreht ist und dieser gleich ist. Habe es geschrieben. Es gibt also einen großen Unterschied zwischen ihnen. Ich hoffe, dass Sie sehen und schätzen können , wie zufällige Rotationen funktionieren. Ich hoffe, Sie können sehen und schätzen, wie das kleine Detail, den zerbrochenen Teilen ein bisschen Geschwindigkeit hinzuzufügen , alles mehr aussehen lässt und sagen wir natürlich und besser. wir also sicher, dass wir alle unsere Änderungen behalten und ich hoffe, dass es Ihnen Spaß macht alle unsere Änderungen behalten und ich hoffe, dass es Ihnen und ich sehe Sie im nächsten Video dem wir diesen Teil, der auseinandergefallen ist, tatsächlich loswerden werden diesen Teil, der auseinandergefallen ist, Stellen wir also sicher, dass wir alle unsere Änderungen behalten und ich hoffe, dass es Ihnen Spaß macht und ich sehe Sie im nächsten Video, in dem wir diesen Teil, der auseinandergefallen ist, tatsächlich loswerden werden etwas Ähnliches zu lernen. Aber wir werden es auf die zerbrochenen Teile anwenden, damit sie langsam verschwinden und nicht nur einen Augenblick verschwinden. Also sehe ich dich. 48. Teile langsam zerstören: Willkommen zurück meine Spieleentwickler und dieses Video, als wir als Spiel waren, als wir maximieren, dass wir gehen, führen wir das Spiel aus. Wenn wir herumlaufen, wenn wir einen der Teile treffen, sieht man, dass es zerstört wird und sie langsam, langsam ausblassen und dann aus der Hierarchie verschwinden. Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Oh, okay. Jetzt ist es an der Zeit, das endlich zu beenden und die zerbrochenen Teile auf dem Boden zu zerstören. Wie werden wir das machen? Nun, wir werden ein paar Dinge kombinieren, die wir bereits kennen, und vielleicht eine Methode, die wir nicht haben. Also lasst uns anfangen. Das erste, was ich tun werde, ist dass ich in meine Drehbücher gehe. Und hier drin, im kaputten Teil, werde ich hier zunächst einen Timer erstellen , der ein serialisiertes Feld sein wird. Und es wird ein Float mit einem Leben sein , das Leben genannt wird. Und lassen Sie es uns einfach auf etwa drei Sekunden einstellen. Okay? Vielleicht noch mehr, vielleicht fünf, lass es uns auf fünf setzen. Und nachdem wir instanziiert haben, nachdem wir angefangen haben, uns zu bewegen und die Position und wild zu sein oder schließlich, zeigen wir, während wir die Richtung lernen , wollen wir weitermachen und ins Leben gehen und sicherstellen, dass einzelne Frame entfernen wir die Zeit, diese Delta-Zeit. Okay, großartig. Was passiert, wenn das Leben lang ist, wo ist es? Wenn die Lebenszeit kleiner oder gleich 0 ist, zerstören wir das Spielobjekt. Schauen wir uns das an und schauen ob es funktioniert. Also gehe ich noch einmal darauf ein, lass mich das speichern. Ja, wir haben das Spiel laufen lassen. Hatte die zerbrochenen Stücke, 1, 2, 3. Okay. Es ist also ungefähr fünf. Ich schätze. Ich glaube, das waren sowieso fünf. Aber offensichtlich wollen wir das nicht zerstören. Wir wollen es langsam auseinanderreißen, also wollen wir sicherstellen, dass es nicht einfach explodiert. Wir wollen uns langsam mit der Zeit verschlechtern. das zu tun, werden wir etwas benutzen, das als „Schritt in Richtung“ bezeichnet wird. Aber bevor wir uns damit beschäftigen, möchte ich dir etwas zeigen. Wir werden auf die Farben zugreifen, also verwenden wir den Pot. Okay, auf den zerbrochenen Stücken haben wir den gleichen zerbrechlichen Topf. Wissen Sie was, lassen Sie mich einfach eines dieser zerbrochenen Stücke hier hineinfügen und demonstrieren Sie sie. Sie können also sehen, dass wir den Sprite-Renderer haben, wir haben die Lebensdauer und alles. Wenn ich auf die Farbe zugreife, habe ich diese drei Farben. Also das R, Sie können sehen, dass ich die Farbe ändern kann, wenn ich hineinzoome, Sie können deutlich sehen, wie hässlich diese Pixelkunst ist. Nein, ich mache Witze. Es ist erstaunlich. Und dann haben wir das Rot. Endlich haben wir das Gelb, und wir haben auch das Schicksal, und darauf wollen wir zugreifen. Nun, wie ich immer sage, gibt es einfachere Möglichkeiten, dies zu tun, aber ich möchte alles testen. Ich möchte so viel wie möglich mit dir erforschen. Also lösche ich das. Ich gehe zurück zu Unity und greife auf den Sprite-Renderer zu. Also werde ich hier zunächst eine Referenz erstellen. Und es wird eine Serialisierung sein, weißt du was? Es muss kein serialisiertes Feld sein. Ich bekomme nur Zugriff auf die rechte Seite, einen Renderer. Und ich nenne den Teil Sprite. Und es wird in Ordnung sein. Es wird privat sein. Ich habe vergessen, es privat zu machen weil wir es nicht sehen und anfangen müssen. Ich werde sicherstellen, dass das Teil Sprite gleich ist um Komponenten-Sprite-Render zu erhalten. Okay, los geht's. Jetzt haben wir einen Hinweis auf den Teil Sprite. Und hier drin greife ich auf den Teil Sprite Punktfarbe zu. Okay, Sie merken also, dass wir auf dem Sprite-Renderer die Farbe haben. Also greifen wir hier auf die Farbe zu. Und wir sagen, dass es eine neue Farbe ist. Und was soll diese Farbe B. Ich öffne die Klammer genau hier und ich drücke Enter und fange an zu tippen. Also können wir genau hier sehen, wo ist es? Wo ist die neue Farbe? Okay, aber wie auch immer, wir müssen ihm Rot, Blau und Grün geben . Und wie Sie gesehen haben, werden sich Rot, Blau und Grün nicht ändern. Die ersten drei werden also extrem einfach sein. Es werden die Teile heller Farbpunkt r, Komma Duplikat, Duplikat, Rot, Grün, Rot, Grün und Blau sein. Und da sind wir los. Wenn wir den Mauszeiger hier zeigen, können wir sehen, dass es sich um drei Farben handelt, die wir wollen. Und schließlich wollen wir das A ändern. So können wir darauf zugreifen, durch den Teilpunkt-Farbpunkt A. Aber dieses Mal möchten wir dies natürlich ändern. Wir möchten, dass dies von dem, was es derzeit ist, auf 0 übergeht. Und das ist der Mathe-Out-Punkt, der sich bewegt hat. Wie Sie sehen können, verschiebt es einen Wert vom Strom in Richtung Ziel. Und Sie können genau hier sehen, in Richtung der Mathe-Bibliothek gehen. Wir können den aktuellen Wert, den Zielwert, den wir erreichen möchten, und das Maximum hinzufügen. Es ist also die maximale Änderung , die auf den Wert angewendet werden sollte. Es ist also so, als hätten wir einen Alarm, den Verlangsamungsfaktor oder den Halting-Faktor. Dies ist auch eine Art Faktor, den Sie verwenden können. Okay, also lasst uns weitermachen und diesen Schritt in Richtung umsetzen. Also hier drin schreibe ich Methodenpunkt in Richtung. Und ich öffne das. Das aktuelle Ziel wird also das aktuelle Alpha sein. Das Ziel, okay, also der Strom, der aktuelle Wert, wollte ich sagen, und das Ziel wird offensichtlich 0 F sein. Und wir werden uns mit den Fade-Geschwindigkeiten bewegen. Also schreibe ich einfach Glaubensgeschwindigkeit hier rein, mal time.Deltatime. Und ich werde weitermachen und eine Art Fade-Geschwindigkeitsvariable erstellen. Kopiere das und lass uns weitermachen. Wo sollen wir hinzufügen? Okay, also los geht's. Dies wird die Schicksalsgeschwindigkeit sein und es auf fünf setzen. Lass es uns auf eins setzen und sehen, wie schnell das ist. Ich bin mir nicht sicher, wie schnell es sein wird. Ich hab wirklich keine Ahnung. Also werden wir das retten. Was hier passiert, ist, wenn die Lebensdauer ein Fehler vorliegt, nämlich dass die Lebensdauer weniger als 0 beträgt. Okay? Also müssen wir einen Punkt hinzufügen und auftauchen. Was passiert hier, wenn die Lebensdauer weniger als 0 beträgt? Also haben wir uns ausgebreitet, die Lebensdauer ist vorbei. Wir werden das jedes Mal durchmachen. Was passiert hier drin? Das Rot, das Grün, das Blau bleiben auf dem Teil Sprite gleich. Aber die Farbe, der Alpha, bewegt sich mit einer Art Fade-Geschwindigkeit vom aktuellen Zustand, dass es n ist aktuellen Zustand, dass es n ist, zu 0. Also lasst uns das testen. Also führe ich das Spiel aus. Ich werde versuchen, das zu vergrößern, alles zu sehen. Ich zerstöre das. Und jetzt werden wir sehen, dass die zerbrochenen Stücke nach ein paar Sekunden. Whoa, wie cool ist das? Also verschwanden sie langsam. Und wenn Sie es bemerkt haben, hatten wir die drei Teile Teil 3 und sie sehen alle anders aus. Also hatten wir nichts, was ähnlich aussieht. Aber wie Sie bemerkt haben, sie immer noch genau hier, obwohl sie es verblassen haben wir sie immer noch genau hier, obwohl sie es verblassen. Wir müssen das loswerden und es wird eine Herausforderung für dich sein , die Teile zu zerstören. Erstellen Sie schließlich eine if-Anweisung , die prüft, ob die Stückalphas auf 0 sinken. Und wenn ja, musst du das Spielobjekt zerstören. Also pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Also hier drin, nachdem wir uns in Richtung bewegt haben, werden wir weiter prüfen, ob der Teil Sprite Punkt-Farbpunkt Alpha, der das a ist, gleich 0 f ist. Dann werden wir einfach das Spielobjekt zerstören. Spar das wieder in unserem Spiel auf. Lassen Sie uns das Spiel maximieren. Unser Spiel sieht fantastisch aus. Ich meine, bis auf die blauen Linien, die du gerade gesehen hast. Ich meine, wir haben die Feinde, die auf uns schießen und uns folgen. Wir haben Waffen richtig schießen. Wir haben unterschiedliche Auswirkungen auf verschiedene Waffen, die Dinge treffen. Sie können sehen, dass das Salzschlagen vielleicht ein bisschen Hilfe gebrauchen könnte. Wir haben überall Blut. Wir haben Blut, wenn wir interagieren. Nun, was hast du das gesehen? Wenn wir also warten sollten, wenn wir einen der Feinde erschießen, können Sie sehen, wie das Blut aus ihnen herauskommt, was wirklich nett ist. Da gehst du. Du kannst das Blut sehen. Wir haben zufälliges Blut wir haben jetzt auch die Strukturobjekte, wenn Sie wollen. Wir können ihre Zerstörung auch umsetzen , wenn wir sie erschießen. Aber wie auch immer, wenn wir sie zerquetschen, sind dies die Teile. Und sie verschwinden langsam, was eine sehr nette Ergänzung ist. Und ich vergesse es auch immer, ich wollte es, okay? Okay, also entferne die Maximierung. Da gehst du. Wir können sehen, dass wir keine Teile mehr haben, aber wir haben immer noch das Blut, das du weißt was, ich werde es dir als Herausforderung von Ich weiß nicht geben . Ich werde mich gerade nicht damit befassen. Offensichtlich werde ich das irgendwann tun, aber ich bin mir ziemlich sicher, dass du weißt, was zu tun ist. Sie können jede Methode verwenden, die wir gelernt haben. Es gibt viele Dinge, also hoffe ich, dass Ihnen dieser Abschnitt gefallen hat. Ich denke, es trägt wirklich zur gesamten Atmosphäre des Spiels bei, die sich bewegend, langsam zerstört. Wir haben auch in diesem Abschnitt viel gelernt. Stellen Sie also sicher, dass Sie Ihre Änderungen immer vornehmen. Und wenn du es noch nicht getan hast, weiß ich, dass ich dich gelangweilt habe, aber bitte hinterlasse mir eine Bewertung, die mir sehr hilft. Natürlich, wenn Sie den Kurs genießen, wenn nicht, bis Sie anfangen, den Kurs zu genießen. Wie auch immer, wir sehen uns im nächsten. 49. Teil 8: Erweiterte Shooting – Erstellung eines Aufnahmesystems: 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. 50. Fire: Willkommen zurück meine Spieleentwickler zu einem anderen Wartungsvideo. Ich weiß, dass es nicht die lustigsten Teile des Videos sind, aber es ist sehr wichtig und es gibt entscheidende Lektionen, die wir lernen müssen und diese. Wenn wir das Spiel jetzt ausführen, werden Sie feststellen, dass wir nicht mehr die Möglichkeit haben, eine automatische Waffe zu erstellen. Aber wenn wir den Knopf gedrückt halten, können Sie sehen, dass wir 11111 sollten. Und wenn wir versuchen, so viel wie möglich zu drücken , hören Sie auf die Maus, Sie können sehen, dass wir nicht mehr die Möglichkeit haben, diese Mechanik zu schießen oder zu umgehen, um die Zeit zwischen den Schüssen zu nehmen. Verschwenden wir also keine Zeit mehr und lasst uns den 0-Fall beibehalten. Dies ist also ein weiteres Video, in dem wir unsere Sachen reparieren wollen. Das erste, was wir reparieren wollen, ist, schauen wir uns die Schrotflinte an. Sagen wir also, es ist nicht automatisch. Also ein Shooting. Und da gehst du. Wir haben einen Versuch. Wenn ich es weiter unten halte, funktioniert es nicht. Aber das Problem ist, wenn ich oft drücke, kann man sehen, dass wir viele Geschäfte haben. Das ist kein großes Problem, aber zum Beispiel sollte eine Schrotflinte nicht so schnell schießen. Wenn wir es automatisch machen und weiter gedrückt halten, können Sie sehen, dass wir alle Sekunde schießen. Und wenn wir oft versuchen, zu drücken, ist das kein Problem. Aber wir müssen immer noch die Tatsache beheben , dass wir, wenn wir die Waffe nicht automatisch haben, so viel wir wollen sollten. Eine andere Sache, die wir beheben möchten , ist die Redundanz im Code. Dies ist also keine perfekte Möglichkeit, den Code darzustellen. Es gibt einen viel besseren Weg. Wir können uns zunächst von einem der Probleme befreien, uns zunächst von einem der Probleme befreien zwischen automatischer und nicht-aromatischer Wahl zu müssen , damit wir zunächst eine Variable loswerden können . Und das zweite, was wir vermeiden können , Redundanz und Kälte. Sie können also genau hier sehen, dass wir die Punktzahl haben, die eine Kugel instanziiert , und diese, die auch instanziiert oder Ebola. So gut ist es also nicht. Wir wollen etwas viel effizienteres und viel besser aussehen lassen. Also werde ich diese auskommentieren. Und hier drin werde ich nach etwas anderem suchen. Ich überprüfe zunächst, ob der Schusszähler größer als 0 ist. Wenn der Schusszähler also größer als 0 ist, werden wir den Ladenzähler jedes bisschen entfernen lassen. Also zählen wir den Ladentisch runter. Und weil man sich daran in den feuernden Kugeln erinnert, bedeutet das, dass dies gut funktionieren wird. Dann werden wir hier drin nach den Eingaben suchen. Und wenn diese Eingaben wahr sind , werden wir die Kugel instanziieren. Was ich also tun werde, ist, dass ich es dir als Herausforderung ausstellen werde. Ihre Herausforderung besteht also darin, sicherzustellen, dass wir nach beiden Eingaben suchen, egal ob wir gedrückt halten oder nur einmal drücken. Und dann instanziieren wir die Kugel und stellen sicher auch den Schusszähler zurücksetzen. Also pausiere das Video jetzt und mach die Herausforderung. Oh, okay, willkommen zurück. Also hier drin mache ich das erste, was tun werde, die if-Aussage. Und ich kopiere diese Zeile genau hier. Wenn also der Eingabepunkt die Maustaste nach unten bekommt oder wo ist er, Okay, so, oder oder wie durch diese beiden dargestellt. Oder wenn der Eingabepunkt die Maustaste bekommt. Also halten wir Nomen, dann werden wir weitermachen und die Kugel auf dem Feuerpunkt instanziieren. Und wir werden auch den Schusszähler holen und ihn auf die Zeit zwischen den Schüssen zurücksetzen. Da gehst du. Was passiert hier drin? Wir rufen immer das Feuer an, aber wir prüfen, ob der Spieler schneidig ist. Wenn dies nicht der Fall ist, werden wir weitermachen. Wenn der Schusszähler größer als 0 ist, zählen wir die ganze Zeit nach unten und wenn er unter 0 fällt. Also werden wir weiter herunterzählen , solange der Shut-Counter größer als 0 ist. Wenn es nicht mehr ist , haben wir die Möglichkeit zu schießen. Und das Tolle daran ist , ob die Waffe automatisch ist oder nicht. Wenn wir weiter festhalten, können wir nicht ständig schießen. Aber wenn es nicht automatisch ist und wir den Finger nur einmal, zweimal oder dreimal drücken, zweimal oder dreimal werden wir instanziieren und wir werden den Zähler jedes Mal zurücksetzen lassen , wenn wir sollten, sobald es anhält und darauf wartet, dass der Kurzkonterer auf weniger als 0 zurückkommt, dann können wir schießen und so viel wir wollen. Das einzige, was hier ist, ist, dass wir nicht mehr prüfen, ob die Waffe automatisch ist oder nicht. Also können wir das löschen. Wir haben eine Art Abkürzung erstellt. Wenn Ihnen das nicht gefällt, wenn Sie hinschauen , kommentiere ich diesen ganzen Code aus. Wenn du eine automatische Waffe haben willst und nicht stört, erlaubst du das? Wir können so viel schießen, wie wir wollen, denn am Ende des Tages, wenn es automatisch ist, wird es nicht sehr schnell schießen. Dann sei mein Gast. Hält kalt. Es ist nicht schlimm. Aber für mich will ich das ehrlich gesagt nicht. Ich hätte das viel lieber als sehr einfachen Code und lasse uns ein paar Variablen speichern. Also und ich auch ein paar redundanten Code, was sehr wichtig ist. Also haben wir das alles gerettet. Wir gehen zurück in Unity. Wir werden das Spiel ausführen und jetzt ist die Zeit zwischen den Schüssen verkürzt. Selbst wenn wir oft kochen, können Sie sehen, dass es weiter wartet, bis der kurze Zähler zurückgesetzt wird. Wenn wir es unten halten, los geht's. Man sieht, dass wir jede Sekunde einen Schuss auslassen. Wenn wir das zum Beispiel machen, sagen wir 0.1, dann können wir mehrmals schießen. Und wenn wir so schnell drücken, wie wir versprochen haben, werden wir niemals schneller sein, als der Schusszähler uns jemals erlauben wird. Da das erledigt ist, hoffe ich, dass es Ihnen gefallen hat. Und im nächsten Video werden wir dem Spieler verschiedene Waffen hinzufügen . Und Sie werden sehen, wie etwas anderes als eine Schrotflinte den Code wirklich viel sichtbarer macht oder die Änderungen, die wir vorgenommen haben, viel wichtiger, wenn Sie immer noch nicht das Gefühl haben, dass es so gut ist. Also sehe ich dich dann. 51. Verschiedene Waffen: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video haben wir eine zusätzliche Reihe von Waffen erstellt. Wir haben ein Gewehr geschaffen und eine Pistole geschaffen. Jetzt, wenn wir das Spiel laufen, sind wir nicht nur auf die Schrotflinte beschränkt, sondern wir können auch eine Pistole finden. Offensichtlich sind die Kugeln auch anders. Die Schussrate ist unterschiedlich. Der, sogar der Schaden, den die Kugeln verursachen, und die Geschwindigkeit jeder Kugel ist unterschiedlich. Wie Sie hier sehen können, kann ich das Gewehr einschalten, die Pistole ausschalten, rennen. Ups. Das war also ein großer Fehler. Tut mir Leid dafür. Und schalte die Pistole aus, schalte das Gewehr und ich kann anfangen zu schießen. Und wie Sie sehen können, sind die Kugeln des Gewehrs oder ein bisschen schneller, sie sind etwas grüner und verschwenden wir keine Zeit mehr. Und lasst uns anfangen. Oh, Fall. Also Nile, es ist Zeit, noch ein paar Waffen hinzuzufügen. Wie werden wir das machen? Also haben wir schon das Prefab für die Schrotflinte. Also gehe ich ins Präfrontal, damit wir kein Prefab für die Schrotflinte haben, wir haben nur für den verdammten Spieler, der einen Laden hat. Also erstelle ich hier einen neuen Ordner , der als Waffen bezeichnet wird. Und ich ziehe die Schrotflinte hier rein. Okay, also müssen wir das Prefab öffnen. Da sind wir los. Jetzt können wir also doppelklicken und den Zug und die Schrotflinte. Jetzt haben wir also eine Schrotflinte als Prefab getrennt vom Deuterium. Und Sie können sehen, wie der Platz ein bisschen blauer wurde. Jetzt kann ich die Schrotflinte hinzufügen und hier und wir haben die Waffe, die wir anpassen und etwas anderes schaffen werden . Also zuerst müssen wir diesen Stolz ändern. Lasst uns also in die Sprites gehen, die wir hinzufügen, alle Waffen oder das Blut, Kugeln, Feinde, Spielerfliesengewehre. Okay, also haben wir nur eine Waffe. Gehen wir zum Fall Resources 0. Mal sehen, was wir hier haben. Wie Sie sehen können, habe ich Ihnen viele Dinge zur Verfügung gestellt. Einer von ihnen ist die Animation für verschiedene Arten von Waffen. Und Sie können sehen, dass wir auch das Mündungsfeuer haben , Maulkorb Rauch. Ich habe empfohlen zu versuchen, all dies hinzuzufügen. Wir könnten das auch ein bisschen machen, aber im Moment wollen wir nur das Grundkonzept haben. Wir schauen nicht sehr darüber nach, wie hübsch das Schießen ist, obwohl es wichtig ist , wenn es um ein Spiel geht. Aber wie auch immer, wir haben dieses Gewehr genau hier, wir haben diesen Scharfschützen und wir haben auch die kleine Waffe. Also wähle ich alle drei aus und ziehe sie in das Waffensprite und füge sie hinzu. Okay, großartig. Jetzt, da wir die Schrotflinte haben, benennen wir sie in das Gewehr um. Ein Gewehr. Und wenn ich es öffne, siehst du den Feuerpunkt genau hier. Aber bevor wir das tun, wollen wir diesen Stolz ändern. Und für das Gewehr sieht man, dass es sehr klein ist, also haben wir sie 42 gemacht. Wählen wir diese aus und machen sie alle 40, um die Änderungen zu übernehmen. Los geht's, wir haben unser Gewehr. Aufgrund der Färbung des Hintergrunds kann man sehen, dass das Gewehr nicht so weit verbreitet ist, nennen wir das. Es sieht nicht so gut aus, aber machen wir uns darüber keine Sorgen, solange es dort ist und sobald es auf der PLR ist, bin ich mir sicher, dass es ein bisschen besser aussehen wird. Also wie auch immer, lasst uns eins fortsetzen, was wir sonst noch zwischen Schüssen definiert haben, offensichtlich für ein Gewehr und es ist kein Gewehr, es ist ein Sturmgewehr, also ist es automatisch. Es wird viel weniger sein. Also schaffe ich es um 0.3. Und mal sehen, der Brennpunkt muss sich offensichtlich ändern, damit Sie sehen können, wo sich der Muskel gerade befindet. Ich verschiebe es genau hierher. Und was haben wir sonst noch? Wenn ich auf das Gewehr klicke? Los geht's, wir können sehen, dass alles gut ist. Was müssen wir sonst noch ändern? Oh, wir wollen auch die Kugel ändern , die es abfeuert, damit wir nicht die gleiche Kugel wie die Schrotflinte haben wollen . Und ich gehe wieder in die Prefabs, geh zu den Kugeln. Lasst uns das finden, okay, also die Spielerkugel, ich werde das von Spielerkugel zu Schusskugel ändern . Und ich werde weitermachen und unsere Welt hinzufügen. Und ich werde die Schusswaffen-Kugel duplizieren. Ich nenne es die Gewehrkugel. Und diese Gewehrkugel wird fast alles haben, hat das Gleiche vielleicht die Geschwindigkeit sollte in der Lage sein, ein bisschen besser zu werden. Sagen wir also, die Geschwindigkeit ist vielleicht sechs, ich weiß es nicht. Der Schadensbetrag sollte vielleicht geringer sein. Nehmen wir zum Beispiel an, der Schadensbetrag beträgt fünf. Und was müssen wir sonst noch ändern, vielleicht das Sprite. Schauen wir uns also den Bullets-Preis an, den wir haben. Wir verwenden derzeit den 14. Und vielleicht können wir für ein Gewehr eines der kürzeren benutzen. Also mal sehen, lass uns das kleine grüne benutzen. Also das kleine grüne, das ist diejenige, die wir benutzen werden, während die Gewehrkugel das kleine grüne hinzufügen wird. Okay. Das hat also nicht funktioniert. Warum? Aus diesem Grund hat funktioniert, aber wir haben die Schrotflintenkugel nicht gesehen. Wie auch immer, lasst uns die republikanische Kugel entfernen. Und das wird unsere Gewehrkugel sein. Da sind wir los. Es ist ziemlich klein, dass ich das Gefühl habe , dass es etwas auch die Skala 0,5 gab? Und lass es uns eins machen. Behalte es so wie es ist. Okay, großartig. Jetzt haben wir diese Gewehrkugel. Ich gehe ins Gewehr und weise ihm eine Schusswaffen-Kugel zu, aber die Gewehrkugel. Aber bevor ich das mache, müssen wir alles vorfertigen. Also gehe ich zurück in die Prefabs, gehe zu den Kugeln und füge die Kugel hinzu. Und es wird mich fragen, möchtest du eine neue oder originelle oder Variante des Prefabs erstellen ? Wenn ich zwei für die Prefab-Variante klicke, ändert sich diese, aber ich erstelle ein originales Prefab. Ich gehe auch in die Prefabs, die Waffen, Waffen, wo sind sie? Und ich ziehe auch das Gewehr ein. Jetzt haben wir eine Schrotflinte und ein Originalgewehr. Und in diesem Gewehr gehe ich in diesen Schlitz, anstatt die Schrotflintenkugel zu benutzen , gehe in die Kugeln bei der Gewehrkugel, spar all das auf. Und schließlich werden wir das Gewehr löschen. Lösche die Gewehrkugel. Alles geht zum wo ist es? Prefabs. Okay, also Waffen, es ist die letzte. Und ich füge das Gewehr als Kind der Waffen hinzu. Und offensichtlich sollte die Position der Gewehre auf 0 gesetzt werden. Versuchen wir es jetzt noch einmal. Auch hier fügen wir das Gewehr hinzu, wie die Waffen sind, und wir schalten die Schrotflinte aus. Großartig. Jetzt haben wir das Gewehr und die Arme, und wie Sie sehen können, ist es nicht perfekt positioniert. Was wir tun können, ist, dass wir es aus dem Prefab entfernen können. Du denkst vielleicht, warum ist es nicht in der Lage zu schreiben? Nun, wenn wir hier wieder auf Ressourcen zurückgreifen, können Sie sehen, wenn Sie genau hinschauen, dass das Schrotflintenspray sehen kann, wo es endet. Das Gewehr hat vorne und hinten etwas Platz. Dies ist also nur eine Formalität und wenn Sie diese zum Beispiel hinzufügen, wird es noch weiter sein. Was ich also machen werde, ist, dass ich das einfach ein bisschen in die x-Richtung bewegen werde. Also gehen wir um den Nullpunkt 40 herum , um dies zu kopieren und zum Gewehrvorschub hinzuzufügen. Also jetzt, wenn ich das Gewehr ausschalte, versuchen wir es noch einmal, hinzugefügt zu den Waffen, die unterwegs sind, passt perfekt. Also entferne das. Schalte das Gewehr an. Wir haben den Schusspunkt, wir haben die Gewehrkugeln, wir haben alles richtig eingestellt. Testen wir das, speichern Sie das, führen Sie das Spiel aus. Lassen Sie uns das ein bisschen größer machen. Okay, also los geht's. Ja, da sind wir los. Sie können jetzt sehen, dass wir die Schrotflinte haben, nicht die Schrotflinte, entschuldigen Sie mich, die wir tatsächlich maximieren das Spiel zu spielen, um es richtig zu sehen. Da sind wir los. Wann sollten die Kugeln jetzt viel schneller und die Zeit zwischen den Schüssen ist viel besser. Da sind wir los. Wie cool ist das? Siehen die echt nett aus? Vielleicht sollten wir ihren Schaden etwas weniger machen, aber nicht sicherstellen, ob der Schaden richtig funktionierte. Und du kannst sehen, dass es sich umdreht und alles tut, was die Schrotflinte gemacht hat und es war ziemlich einfach zu erstellen. Damit werde ich Ihnen eine Herausforderung stellen und es ist, Ihre eigenen Waffen hinzuzufügen. Erstellen Sie also eine oder zwei weitere Waffen Ihrer Wahl. Ich füge eine Pistole hinzu. Es ist, alles wird genauso sein, wie ich es gezeigt habe. Ich werde eine andere Kugel dafür erstellen usw. Also hast du vielleicht ein paar Waffen heruntergeladen, Sprites futuristischer Waffen. Und ich wollte das wirklich machen, aber ich fand keine wirklich schönen futuristischen Öffnungen, all die Sprites, bei denen man entweder für sie bezahlen musste oder sie nicht so gut waren. Und ich wollte sicherstellen, dass das alles endet. Alle meine Kurse der Vermögenswerte , die wir verwenden, sind 100% kostenlos. Und schließlich mindestens eine weitere Waffe oder füge mindestens eine weitere Waffe mit eigenen Attributen hinzu. Also pausiere das Video jetzt, mach die Herausforderung im nächsten Video, vielleicht benutze ich einfach die Magie der Bearbeitung, erstelle die Waffe, die du den Prozess gesehen hast, du musst sie nicht wiedersehen, aber ich empfehle dir, deine eigenen Waffen hinzuzufügen. Es macht viel mehr Spaß, Waffen zu haben, die du geschaffen hast und nicht nur Dinge, die du von mir kopierst. Das heißt, dass ich dich in ein bisschen sehen werde. Okay, willkommen zurück. Also habe ich eine Pistole hinzugefügt und ich hatte nur ein paar verrückte Dinge, die ich kreieren wollte. Du siehst, also habe ich einen Stand mit einer Zeit zwischen den Schüssen gemacht. Ich habe eine Pistolenkugel gemacht. Es ist keine perfekte Kristallkugel. Ehrlich gesagt ist es ziemlich groß, wenn es um die Funktionsweise der Pistole oder die Größe der Pistole geht. Aber machen wir uns darüber keine Sorgen. In diesem Spiel dreht sich alles um Kreativität und Spaß haben. Also was immer du machen willst, mach es einfach. Also los gehst du. Man kann die kleine Pustel sehen. Es bewegt sich und wenn wir buchen sollten, gehen wir los. Und man sieht, dass die Kugel irgendwie groß ist, aber ich denke wirklich, dass es wirklich nett ist. Es wird also zumindest zwischen den regulären Kugeln der Schrotflinte und den Kugeln des Gewehrs unterscheiden. Sie werden also wissen, dass dies eine Pistole ist und das ist die Kugel des Kolbens. Wenn das erledigt ist, hoffe ich, dass es Ihnen gefällt. Ich hoffe, du hast deine eigenen Waffen geschaffen. Und wenn du mir noch keine Bewertung hinterlassen hast , hilft mir das sehr. Stellen Sie sicher, dass Sie Ihre Änderungen übernehmen. Da sind wir los. Hat ein Salzsalzgewehr und eine Pistole als zusätzliche Waffen geschaffen . Hinterlassen Sie mir also bitte eine Bewertung. Es hilft mir eine Tonne und wir sehen uns im nächsten Video, in dem wir tatsächlich zwischen unseren Waffen wechseln werden . Wie Sie sehen können, müssen wir bestimmte Waffen ein- und ausschalten und wir können sogar auf Waffen einschalten, was ein cooler Mechaniker ist, aber keine, die wir tun wollen, besonders wenn sie nicht unter unserer Kontrolle sind . Wir sehen uns also im nächsten Video. 52. Wechsel zwischen Waffen: Willkommen zurück, meine Spieleentwickler. In diesem Video, wenn ich das Spiel führe, wirst du jetzt sehen, dass ich ein Gewehr benutzen kann, ich muss nicht zur Hierarchie gehen und die Waffe wechseln. Ich kann auf die Lasche drücken und du siehst, dass ich gerade die Pistole habe. Ich drücke erneut die Tabulatortaste. Ich hole die Schrotflinte. Ich drücke erneut die Tabulatortaste. Ich hab das Gewehr. Ich drücke nochmal den Tab, ich habe die Pistole und so weiter und so weiter. Ich schaffe das den ganzen Tag. Erschieße sie mit einer Schrotflinte, sollte das Muttergewehr dann mit einer Pistole tun, kann ich tun was ich will und niemand kann mich aufhalten. Verschwenden wir also keine Zeit mehr und lasst uns den Waffenwechsel machen. Oh, Fall. Also Zeit, unsere Waffen zu wechseln. Das erste, was wir tun werden , ist, dass wir einen Hinweis auf alle Waffen erhalten , die dem Spieler zur Verfügung stehen. Nun, dies ist ein Punkt der Debatte. Wo wollen wir mit all dem umgehen? Wo wollen wir die Liste der Informationen über alle Waffen haben und so weiter. Und ich habe mich deswegen gefühlt. Wir können den Waffen ein Skript hinzufügen und sicherstellen, dass hier alles reibungslos läuft. Aber eigentlich denke ich, dass der Spieler vielleicht derjenige sein sollte , der mit den verfügbaren Waffen umgeht, die er hat. Also werde ich nach oben gehen und Spieler und ich werde alles entfernen, was Sie wissen, lassen Sie es uns als Erinnerung daran behalten wir manchmal nicht sehr aufmerksam sind und Fehler machen. Also sichern Sie sich hier. Ich werde weitermachen und zunächst den Hinweis auf alle Waffen erstellen, die wir haben. Es wird also ein serialisiertes Feld sein, das eine Liste des Typs, des Waffen- und Waffensystems sein wird . Und so. Und ich scrolle ein wenig nach unten und ich nenne es die verfügbaren Waffen oder verfügbaren Waffen. Nennen wir es einfach verfügbare Waffen. Und es entspricht einer neuen Liste von Waffensystemen. Spar dir das auf. Das nächste, was wir haben wollen, ist eine Variable, die eine Ganzzahl ist, die die aktuelle Waffe verfolgen wird , die wir haben. Also werde ich einen privaten Int erstellen und es wird die aktuelle Waffe sein. Spar dir das auf. Also was machen wir hier drin? Was wir tun wollen, ist, dass wir einen Hinweis auf alle drei Waffen erhalten wollen , die hielten oder was auch immer, wie viele Waffen wir zur Verfügung haben. Ich sperre das ab, wähle aus. Und bevor ich das mache, stellen wir sicher, dass der Dünenspieler alles überschreiben wird. Wir wissen also, dass wir die Waffen bei sich haben. Ich sperre sie ein und wähle das Gewehr, die Pistole und die Schrotflinte und füge sie den verfügbaren Waffen hinzu. Wie Sie jetzt sehen können, haben wir einen Hinweis auf das Schrotflintengewehr und die Pistole. Was ich also machen werde, ist, dass ich eine Art Schleife erstellen werde , die aktiviert wird. Und diese Schleife wird alle Waffen durchlaufen und nur die drehen, die ich will. Also die aktuelle Post und jedes Mal werde ich die aktuelle Pustel eins nach dem anderen erhöhen. Ich weiß also, dass diese Erklärung etwas verwirrend ist. Lassen Sie uns weitermachen und es wird viel sinnvoller sein. Also hier drin werde ich zuerst die Methode erstellen , die sein oder wissen wird , bevor ich das mache. Lassen Sie mich einfach das Schießen des Spielers entfernen und was macht das alles? Dies, holen Sie es auf Platz, okay, also schneidiger Spieler, also Rechtsklick, schnelle Aktion und Refactoring-Extrakt-Methode. Da sind wir los. Also schneidig, Spieler oder Spieler schneidig. Ich denke, es ergibt mehr Sinn. Steuern Sie RR. Da sind wir los. Wie Sie sehen können, kenne ich alle Abkürzungen zur Fehlerbehebung, weil ich so viele gemacht habe. Wie auch immer, wir werden die Waffe wechseln. Ich werde hier sofort eine Methode erstellen , damit wir nicht extrahieren. Es wird also eine öffentliche Void-Switch-Pistole sein. Und hier drin wollen wir zunächst prüfen, welche Art von Schlüssel wir drücken möchten, um die Waffe zu wechseln. Es wird also eine Eingabe sein, die C0 erhält, erhalten Keydown war ein Schlüsselcode. Und du kannst benutzen, was immer du willst. Und lass uns den Tab benutzen. Nein, nicht die Flucht. Da sind wir los. Wenn wir also die Tabulatortaste drücken, wollen wir unsere Waffen wechseln und nennen wir das genau hier. Also wechsle die Waffe, wechsle die Waffen mit Schärfen. Ich bin ein bisschen verwirrt. Du kannst es nennen, wie immer du willst. Waffenwaffe ist also dieselbe. Wir wollen etwas anderes als Waffen als Waffen haben. Wie auch immer, lass uns weitermachen. Das nächste, was wir haben wollen. Wir wollen sicherstellen, dass wir tatsächlich Waffen in unserem Besitz haben. Wir werden also prüfen, ob die Punktzahl der verfügbaren Ghanas größer als 0 ist. Und du denkst vielleicht nach, naja. Natürlich werden wir eine Waffe haben. Michael, wovon redest du? Nun, später, wenn wir anfangen, Waffen zu kaufen , werden Sie feststellen, dass der Spieler vielleicht irgendwann keine Waffen hat. Was das wird uns also einen großen Fehler vermeiden. Und ich füge hier einfach eine Warnung hinzu. Die Debug-Punkt-Warnung und keine Waffen verfügbar. Heb was auf. Das ist also anders als das reguläre Protokoll. Dies ist eine Protokollwarnung und wir haben auch einen Protokollfehler, eine andere Farbe hat. Und die Konsole sind, wie Sie sehen können, Fehler und aus irgendeinem Grund haben wir die klare Vorschau Bargeld. Das geht schon lange so und ich habe es nachgeschlagen. Ich habe viele Dinge ausprobiert, aktualisiert oder alles. Nichts funktioniert. Anscheinend ist es ein Problem in Unity, aber es hat keinen Einfluss auf unser Spiel, also mach dir darüber keine Sorgen. Ich werde es mit diesem Knopf löschen. Und Sie können sehen, dass es sich um Fehler handelt. Wir haben regelmäßige Logs protokolliert und wir haben Warnprotokolle. Aber lasst uns fokussiert bleiben. Was passiert, wenn wir wissen, dass wir eine Waffe haben? Wir werden zuerst den aktuellen Kaugummi holen und ihn um eins erhöhen. Das macht also ein Plus. Nachdem wir das getan haben, werden wir nach etwas suchen , das sehr wichtig ist. Und das ist, nachdem wir alle Waffen durchlaufen haben. Wenn wir also steigen und die aktuelle Waffe, die jetzt um 1 erhöht wurde, ist größer als die verfügbare Punktzahl der Waffen. Wir wollen zurück zur ersten Waffe. Und wie machen wir das? Wir setzen den Strom zurück, der auf 0 zurückgeht. Also was passiert hier drin? Sagen wir, wir haben die drei Waffen. Das bedeutet, dass die Anzahl der verfügbaren Waffen drei beträgt. Das heißt, wir fangen um 012 an. Die beiden sind der letzte Index des letzten Elements ist der Index des letzten Elements. Was passiert also hier drin, sobald wir den Tab drücken, überprüfen wir, dass verfügbaren Waffen um ein Elektron erhöht wurden. Wir werden die Waffe anschalten. Aber im Moment stellen wir sicher, dass, wenn wir die aktuelle Waffe haben, also nehmen wir an, Sie befinden sich bei Index zwei und die verfügbare Anzahl von Gone ist drei. So werden wir, die aktuelle Waffe wird drei, was bedeutet, dass wir sie wieder auf 0 zurücksetzen wollen. Also schnappen wir uns dann die erste Waffe und den ersten Schritt und vermeiden einen großen Fehler. Was das gemacht hat, was müssen wir sonst noch tun? Nun, es gibt etwas , das wir sicherstellen müssen, und das heißt, wenn ich wieder hier reingehe. Denken Sie also daran, wie wir die verschiedenen Zahnfleisch benutzt haben. Wir schalten nicht einfach das Gewehr an. Wenn ich also auf das Gewehr klicke, schalten wir nicht einfach das Gewehr ein und fangen an zu schießen. Wir drehen zuerst die Pistole und dann haben wir das Gewehr an und wir können damit schießen. Das wird also deine Herausforderung sein. Ihre Herausforderung wird darin bestehen, alle Waffen einzustellen, um sie einzusetzen. Erstellen Sie also eine für jede Schleife, um alle verfügbaren Waffen zu durchlaufen, stellen Sie alle auf inaktiv ein. Also alle von ihnen sind inaktiv. Und dann setze nur die aktuelle Waffe aktiv. Und ich gebe dir einen kleinen Hinweis, wenn du bereits weißt, was zu tun ist oder du das Gefühl hast, dass du es an dir selbst machen willst. Pausiere das Video, mach die Herausforderung. Wenn nicht, benötigen Sie das. Sie müssen auf die verfügbaren Waffen der aktuellen Waffe zugreifen . Und du musst auf das Spielobjekt zugreifen da die verfügbaren Waffen vom Pfeifenorgelsystem sind, also können wir einfach aktiv darauf einstellen. Wir müssen auf das Spielobjekt zugreifen , das die aktuelle Waffe enthält, und dann auf „true“ oder „false“ setzen. Also pausiere das Video jetzt und setze alle Waffen auf aktiv. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Ist wirklich, wirklich, das war eine interessante Herausforderung, eine für jedes Abschalten der Dinge zu verwenden und die Mechanik wirklich zu verstehen. Als erstes werden wir also eine for-each-Schleife erstellen. Und hier drin wird das Waffensystem sein. Wir nennen es die Waffe in verfügbaren Waffen. Scheint irgendwie komisch zu sein, oder? Weißt du was? Benennen wir dies von verfügbaren Waffen in verfügbare Waffen um. Da sind wir los. Und wir müssen sicherstellen, dass wir sie wieder in Unity versetzen. Denn wenn wir den Namen einer Variablen ändern, werden Sie sehen, dass die Liste jetzt immer noch gut ist. Warum? Weil wir nicht gespart haben. Wenn wir sparen, sollten wir jetzt sehen, dass alles verschwindet. Wir müssen es wieder zurücksetzen. Da sind wir los. Du siehst, dass es bei 0 ist. Dies ist etwas, das man immer im Hinterkopf behalten sollte. Also tu das, bevor wir vergessen, irgendwelche Fehler zu vermeiden, außer dir das, okay, jetzt, zurück in Unity, was wollen wir hier drin machen, während wir alle Waffen durchlaufen. Was ich also tun werde, ist, dass ich die Waffe benutze. Punkt. Gameobject dot wird aktiv auf „false“ gesetzt. Was passiert hier drin? Wir haben alle verfügbaren Waffen. Wir haben sie alle auf „false“ gesetzt. Und was wir dann tun, um die verfügbaren Waffen an der aktuellen Waffe erneut zu überprüfen , der GameObject-Punktsatz aktiv. Stimmt. Warum schalten wir also alle Waffen aus und nicht nur die Waffe, die wir benutzen. Das war etwas, worüber ich auch nachgedacht habe. Aber auch später, wenn wir anfangen, Amin zu wechseln, wenn wir anfangen, Waffen aufzuheben, wird die Waffe wechseln wollen. Und es ist viel sicherer, alles auszuschalten und dann einfach das zu drehen, was wir wirklich brauchen. Vielleicht wird die Reihenfolge der Waffen manchmal anders sein. Und wenn wir einfach den drehen, den wir gerade haben, schalten wir vielleicht etwas anderes ein, das wir nicht wollen. Also habe ich die zusätzliche Vorsichtsmaßnahme getroffen , einfach alle Waffen zu durchlaufen sie alle auf falsch zu setzen. Und dann denke ich, dass das eine Sache, die wir erfüllen müssen, hoffe ich, dass das verständlich ist. Und wenn du eine Art komplexere Mechaniker schaffen willst , würde ich mich wirklich freuen, sie zu sehen. Du kannst dort zwigen und deine Sachen zeigen. Also gehe ich gleich hier wieder in mein Spiel, heb dir das auf. Und ich werde weitermachen und mal sehen, das Spiel laufen und sehen, was passiert. Also habe ich das Gewehr. Sie können sehen, dass es genau hier in der Hierarchie aktiviert ist . Wenn ich auf den Tab klicke, wenn ich den Tab drücke, gehen wir los. Ich hab die Pistole. Wenn ich wieder auf den Tab treffe, habe ich die Schrotflinte. Wie cool ist das? Sie können alles in der Hierarchie sehen. Versuchen wir es noch einmal. Gewehr, Gewehrschüsse, Pistole, Pistolenschüsse, Schrotflinte, Schrotflintenschüsse und so weiter und so weiter. Ich hoffe, es gefällt Ihnen und stellen Sie sicher, dass Sie Ihre Änderungen übernehmen. Und ich habe gerade dieses Gericht erwähnt, ich hoffe, Sie wussten bereits, dass wir eine Zwietracht hatten. Zeig deine Sachen, die wir sehen. Ähm, okay, also habe ich diesen Kurs nicht eröffnet , nur um konzentriert zu bleiben. Ich antworte dort immer so schnell ich kann. Manchmal antworte ich nicht so schnell wie es sein sollte. Es liegt natürlich daran, dass MyTime, wir alle 24 Stunden haben und weil jeder auf einer anderen Zeitskala oder was auch immer ist, wäre es verschiedene Orte auf der Welt gewesen. Wir haben eine erstaunliche Community. Viele Leute sind da, weil wir mit der Denkweise umgegangen sind, die wir haben, dass wir alle Studenten sind. Ich lerne immer Neues, wenn ich jemandem helfe und das solltest du immer tun. keine Angst, Fehler zu machen. Versuche so viel wie möglich zu helfen. Der Zwietracht beigetreten. Hinterlasst mir eine Bewertung. Ich hoffe es gefällt dir und ich sehe dich im nächsten Video, in dem wir eigentlich nicht nur die Waffen hier in den Spielern sehen werden, und wir werden sie auch in der Benutzeroberfläche sehen können Canvas, die wir erstellt haben. Mit dem Gesagten sehe ich dich im nächsten Video. 53. Waffen Anzeige von UI: Willkommen zurück, Meine Lieblingsspielentwickler und dieses Video, wenn wir das Spiel laufen, werden Sie sehen, dass wir das Gewehr haben. Wenn wir eine Waffe wechseln, haben wir eine Pistole. Wenn wir die Waffe wechseln, haben wir eine Schrotflinte. Jetzt haben wir eine visuelle Darstellung, die weg ist, wir mit uns tragen. wir also ohne weiteres Verschwenden wir also ohne weiteres keine Zeit mehr und lasst uns anfangen. Oh, Fall. Anstatt also nur die Waffe zu wechseln, die die Säulen halten, möchten wir dies auch auf dem von uns erstellten Benutzeroberflächenbildschirm anzeigen. Also lasst uns weitermachen und das machen. Zuallererst werde ich die Szene ein bisschen größer machen , damit wir richtig sehen können Ich doppelklicke irgendwo hier auf der Leinwand, während die Leinwand darauf doppelklickt. Und da sind wir los. Jetzt haben wir die riesige Leinwand. Gehen wir zu den Ebenen und lassen Sie uns festlegen, dass wir die UI-Ebene sehen können. Und hier drin schalte das nur für einen Moment das verblassende Bild aus, damit wir sehen, was los ist. Und hier drin, was werden wir handeln? Nun, wir wollen, dass zwei Dinge die Waffen darstellen , die wir gerade benutzen. Wir wollen eine Art Bild haben , um die Waffe darzustellen, und wir wollen eine Art Text unter diesem Bild. Also lasst uns weitermachen und loslegen. Das erste, was ich hinzufügen werde, ist mit der rechten Maustaste hier. Und lasst uns zuerst ein leeres Spielobjekt erstellen , nur um alles über die Waffe darzustellen. Also sage ich Waffen, UI. Und unter Waffen schaffe ich zuerst ein Bild. Also Bild, das wird das Waffenbild sein. Und ich werde auch einen Text erstellen , der das Werk sein wird. Was ist es, der Waffentext. Da sind wir los. Jetzt haben wir also ein Waffenbild und einen Waffentext. Ich klicke hier für eine Sekunde auf die Leinwand. Öffne das einfach. Indem ich die Leinwand öffne, kann ich, wo immer ich klicke, immer noch die Grenzen sehen. Also wähle ich das Bild aus und ziehe es zur Seite. Und Sie können genau hier in der Spielansicht sehen, was wir ständig sehen werden. Also werde ich das ein bisschen größer machen, wie etwas in dieser Größe. Und das wird der Waffeningenieur sein. Und dann haben wir hier die Texte, die wir darunter schreiben können. Und lass uns das einfach testen und sehen, wie es funktioniert. Im Bild wählen wir also eine Quelle aus. Ich werde das sperren, nur damit wir es nicht verlieren. Und ich gehe in die Sprites-Pistolen. Und lass uns weitermachen und die Schrotflinte hinzufügen. Also los gehst du. Du siehst jetzt, dass wir die Schrotflinte sehen können. Wir können es auf die native Größe einstellen , um es etwas kleiner zu machen. Aber weißt du was? Ich mag ehrlich gesagt, wie es vorher war. Groß und leicht zu sehen. Jetzt wollen wir den Waffentext ein wenig ändern, weil wir diesen zum Beispiel den Waffennamen haben wollen . Und später erfahren wir, wie wir unsere eigene Schriftart ändern oder erstellen können. Aber im Moment behalten wir es einfach so, wie es nur zu Testzwecken ist. Wir können die Ausrichtung hier ändern und wir können sie in die Mitte setzen. Wir können es mutig machen. Wir können viel mit dem Text machen, aber einer von ihnen ändert die Farbe und macht komplett weiß, damit wir ihn im Hintergrund sehen können , egal was passiert. Ich werde es etwas größer machen damit wir die Größe vergrößern können. Los geht's, Sie können sehen, dass wir so die Größe erhöhen und jetzt erhöhen wir die Schriftgröße. Also los gehst du. So wollte ich es schaffen. Die Waffennamen also direkt unter der eigentlichen Waffe und wir können die Box sogar ein bisschen größer machen und die Größe der Wörter vergrößern. Also los gehst du. Jetzt können wir die Schrotflinte schreiben und so weiter und so fort. Lassen Sie uns das Wrack hier als Ziel entfernen , da wir das Ziel rekursieren, wie gesagt, wir können darauf klicken. Wir wollen nicht darauf klicken. Es wird keinen Unterschied machen, aber lassen Sie es uns einfach dabei behalten. Wir können den horizontalen Überlauf, den vertikalen Überlauf ändern , und wir können etwas schaffen, das als die beste Passform bezeichnet wird. Und das ist wirklich schön, denn jetzt, wenn wir uns ändern, können Sie sehen, dass sich die Schriftart mit der oder der Größe der Wörter ändert V und ich bin mir nicht sicher, warum ich etwas richtig sagen kann, aber jedenfalls, da gehst du. Verstehst du was ich mit „Best Fit“ meine? Du hast gerade gesehen, was passiert. Okay, lass uns weitermachen und aufhören zu wandern. Das nächste, was wir tun möchten, ist, dass wir Zugriff oder auf das Verhalten dieser Benutzeroberfläche haben möchten. Was wir also tun werden, wollen wir zunächst jeder Waffe das entsprechende Sprite und den entsprechenden Namen zuweisen. Also gehe ich ins Waffen-Prefab. Also Prefabs, Waffen, wählen Sie die Pistole aus. Und hier werden wir alles einstellen. Also öffne ich das Drehbuch genau hier. Und auf dem Waffensystem , weil jedes ein Waffensystem hat werden wir zwei Variablen hinzufügen, weil jedes ein Waffensystem hat. Der erste wird ein Sprite sein. Und es wird das Waffenbild sein. Und der zweite wird eine Schnur sein. Und es wird die Waffe sein. Lasst es uns behalten. Eine Waffe und die Waffe. Waffe, Hals. Da sind wir los. Also Waffe Text, Waffenbild und was passiert ist Name. Und wenn ich nach dem Kompilieren wieder in Unity gehe , los geht's. Wir können sehen, dass wir das Bildsprite und den Bildnamen haben. Also wählen wir die Pistole. Geh zur Pistole beim Bild. Mach das zum Stein. Und dann gehen wir zum Gewehr oder Nano, um zurück zum Prefabs-Waffengewehr zu gehen, das zu sperren und das Bild hier unten zu finden. Wie lautet der Name? Lasst es uns einfach ohne den Sturmteil am Gewehr behalten. Und was haben wir sonst noch? Wählen Sie weniger die Schrotflinte, wissen Sie, dass die Prefab Schusspistole diese absperrt. Endlich, Schrotflintenbild, hier grün, Waffenname, schockiert, Pistole. Da sind wir los. Jetzt hat jedes Fertighaus sein eigenes Gartenbild oder Waffenbild und seinen eigenen Waffenhals. Das nächste, was wir tun müssen, ist, dass wir jedes Mal zwei brauchen , wenn wir eine Waffe wechseln, um dieses Bild zu füllen. Wenn ich das Spiel führe, wirst du feststellen, dass ich das Bild genau hier habe, ich kann mich bewegen, aber wenn ich versuche, meine Waffe zu wechseln, ändern sich die Bilder nicht. Jetzt ist es an der Zeit, dem Verhalten hinzuzufügen. Und das werden wir im UI-Manager tun, der sich auf dem Campus befindet. Öffnen wir also den UI-Manager und schauen wir uns an, was wir hier machen werden. Als erstes brauchen wir einen Verweis sowohl auf das Bild als auch auf den Text. Also werde ich hier ein serialisiertes Feld erstellen, das vom Typ Image sein wird. Und wir können EMG verwenden, weil wir Unity Engine Dot QI dort oben verwenden. Wir werden das das Waffenbild nennen. Lassen Sie uns die Dinge einfach halten, genau wie zuvor. Und hier drin werden wir einen Text haben, mit dem der Waffenname steht. Spar dir das wieder in Unity auf. Und mal sehen, dass wir das absperren können. Und wir können das Waffenbild hinzufügen, und wir können die Waffensteuer hinzufügen. Wir können auf die Benutzeroberfläche klicken und sicherstellen, dass wir diese Änderungen in unserem gesamten Projekt anwenden. Exzellent. Das nächste, was Sie tun müssen, ist, Ihnen eine Herausforderung zu zeigen. Und Ihre Herausforderung besteht darin, eine Methode zu entwickeln, die den Darm verändert. Als erstes müssen Sie also eine void-Methode erstellen, die öffentlich ist und zwei Parameter annimmt. Ein Bild für die Waffe und eine Schnur für den Waffennamen oder Waffennamen oder wie auch immer du es nennen willst. Dann musst du das Gun UI Sprite mit dem Bild einstellen . Und Sie müssen auch den Namen der Waffe als Spaltennamen festlegen . Und schließlich gebe ich dir einen kleinen Hinweis, wenn du willst, wenn du es nicht tust und die Herausforderung machst. Wenn nicht, können Sie die Waffe verwenden, die Sie ich punkte Sprite und die Waffenoberfläche oder den Waffennamen, die Sie sind, oder wie auch immer der Name der tatsächlichen Variablen lautete. Punkttext, Punktsprite für den Zugriff auf das Sprite und den Text. Denken Sie daran, dass dies eine Waffe und kein UI-Image sein sollte. Oh, okay, also los geht's. Pausiere das Video sofort. Geh und mach den Chaldäer. Okay, willkommen zurück. Was machen wir hier drin? Und wir werden eine öffentliche Lücke erstellen und ändern oder die offene Benutzeroberfläche ändern. Und wir sagten, dass wir zwei Parameter aufnehmen werden. Der erste Parameter wird ein Sprite sein, und es wird das Waffenbild sein. Und weiß was, denn wir haben bereits das Waffenbild-Jahr. Lasst uns das in eine Waffe umwandeln. Also los geht's, Waffenbild. Und wir werden auch eine Schnur aufnehmen, die der Waffentext sein wird. Dies sind also die beiden Parameter, die wir erstellen werden , und jetzt, wo wir sie haben, wie werden wir die Bilder ändern? Wenn wir hier reingehen, wie ich dir gesagt habe, in den Händen, wenn wir auf das Waffenbild klicken, können wir sehen, dass wir genau hier das Quellbild haben. Wenn ich also gehe, werde ich sagen, dass wir das Weapon Image Sprite haben das Weapon Image Sprite und es entspricht dem Waffenbild, das uns zur Verfügung gestellt wurde. Und dann haben wir den Punkttext des Waffennamens. Also greifen wir auf. Lass mich wieder reingehen und dir was zeigen. Also haben wir die Waffen entspannt. Es ist vom Typ Text, aber die Komponentensteuer, aber wir greifen auf den Text im Text zu. Wir haben also diesen Textparameter oder dieses Merkmal. Die Komponenten. Wir greifen also darauf zu, indem wir dot txt sagen und es entspricht dem Waffentext. Spar dir das auf. Oh, großartig. Jetzt können wir die Benutzeroberfläche tatsächlich ändern, aber der nächste Schritt besteht darin, die Benutzeroberfläche der Waffen zu ändern , wenn wir sie wechseln. Und wo werden wir das machen? Nun, das werden wir in der Switch-Waffen-Methode 0 und 0 tun . Es gibt etwas hier, das ich dir sagen wollte , habe ich kommentiert. Lassen Sie mich Ihnen jetzt sagen, wenn Sie bemerkt haben, wann wir unser Spiel spielen, sobald wir zum Beispiel beginnen, haben wir das Gewehr, okay, also drücken wir die Tabulatortaste und es ändert sich nicht, erst wenn wir die Tabulatortaste erneut. Was ist also das Problem? Das Problem ist, dass wir in unserer Ebene genau hier sehen können, dass wir die Strömung weg haben, aber wir haben ihm keinen Wert zugewiesen. Es weiß also nicht, wie hoch der Wert ist. Also was ich getan und angefangen habe und der Spieler-Controller, wir können einfach diese beiden Codezeilen schreiben. Und was diese tun, ist zuerst, dass wir die aktuelle Waffe einstellen, die eine ganze Zahl auf die verfügbare Waffenpunktzahl ist, und dann wechseln wir einfach zur Waffe. Also fangen wir am Gewehr an. Also, wenn ich das Spiel führe, oder wir können sogar etwas viel Besseres, wenn du mit der ersten Waffe beginnen willst, die wir haben. Wir können dies als verfügbare Waffenpunktzahl minus eins festlegen . Jetzt, sobald wir das Spiel beginnen, haben wir die erste Waffe bei uns. Okay, also los geht's. Jetzt können wir sofort wechseln und hier stimmt etwas nicht. Oh, okay, also nochmal, es ist dieser nervige Fehler. Also zurück in Spielen. Wie Sie jetzt sehen können, können wir, sobald wir anfangen, auf den Tab klicken. möchte dies vielleicht öffentlich machen, aber wie ich Ihnen im vorherigen Video gesagt habe, ist es keine gute Möglichkeit, Zugriff auf Variablen zu erhalten. Ein viel besserer Weg ist es, hier reinzugehen und zwei Methoden zu erstellen. Der erste wird eine Öffentlichkeit sein. Es wird zurückgeben, ein Sprite wird als Get Gun Image bezeichnet werden . Du bekommst Waffenbild tatsächlich die Waffenbild-UI. Und ich öffne die Klammern und ich gebe einfach die Waffen zurück und schließe sie mit einem Semikolon ab. Und dann erstelle ich eine ähnliche Methode, die eine Zeichenfolge zurückgibt und die Waffe bekommen wird. Holen Sie sich Waffe, Text, Benutzeroberfläche oder Namen, nennen tatsächlich UI oder nicht. Wir können nicht einmal das Wort UI verwenden. Aber lasst es uns nur behalten, um zu wissen, warum wir diese bekommen. Also Waffenname, spar dir das auf. Jetzt können wir auf das Waffensystem zugreifen. Und von diesem Waffensystem aus können wir auf diese beiden Methoden zugreifen. Und mit diesen beiden Methoden können wir das Bild und den Namen der Waffen haben , ohne das Problem zu haben, diese Variablen versehentlich zu ändern oder einen Fehler zu verursachen. Was wir jetzt tun können, ist dass wir die verfügbare Waffe bekommen können. Verfügbare Waffe an der Position aktuelle Waffe oder ist es die aktuelle Waffe? Und wir können die Komponente dieser aktuellen Waffe bekommen, die offensichtlich das Waffensystem ist. Und von diesem Waffensystem aus können wir, was können wir tun? Wir können zuerst bekommen, wie es heißt? Hol dir Waffenbild. Und dann können wir hier Enter drücken, weil die Zeile zu lang ist. Bei einem Komma. Kopieren Sie dies und fügen Sie es hier bei der ersten Eingabetaste ein. Und was scheint hier das Problem zu sein? Warum sagt mir der erste, der mir sagt, dass Methodengruppe 2 nicht konvertiert werden kann , oder? Okay. Okay. Dies ist eine Methode. Und nimm den Namen, hol den Waffennamen UI. Da sind wir los. Das sparen wir uns. Wenn Sie möchten, empfehle ich, dass wir hier etwas tun , weil wir redundanten Code haben. Wir können dies als Variable festlegen und dann die Waffe abrufen und ein Bild erhalten. Das wäre etwas klügeres zu tun. Aber im Moment behalten wir es einfach, damit wir immer wissen was passiert, nachdem wir die Waffe gewechselt haben, wir setzen sie auf wahr greifen dann auf den UI-Manager zu. Wir bekommen die verfügbare Waffe an der aktuellen Position, wir bekommen das Waffensystem-Skript und dann bekommen wir das Waffenbild. Wir senden es an die Change Open UI, die sich im UI-Manager befindet. Und das sollte das Bild verändern , wenn wir die Waffe wechseln. Also zurück in unserem Spiel, Lasst uns rennen und sehen, was passiert. Da gehst du. Wenn wir Tab treffen, bekommen wir die Schusspistole, wir bekommen das Gewehr, wir bekommen die Pistole, die aus irgendeinem Grund zerschlagen wird , weil die Pistole versucht, die gesamte Lücke zu füllen. Mal sehen, wo ist es, wo ist es? Wo ist es? In der Benutzeroberfläche das Waffenbild. Wenn wir es also als Waffe setzen, ist es offensichtlich nicht so gut, aber keine Sorgen darüber. Solange es für Sie funktioniert, können wir dies ändern, verkleinern und vergrößern. Vielleicht sogar eine bessere Idee, vielleicht hat die Art und Weise verändert, wie dieses Bild dargestellt wird. Stört mich zu sehr. Wenn es dich stört und ich empfehle, werden wir vielleicht sehen, wie wir das später beheben können. Aber im Moment können wir sehen, dass es funktioniert. Das einzige, was nicht funktioniert. Sobald wir rennen. Wir können sehen, dass wir, wenn wir nicht die Waffe wechseln, die erste ist, die der Waffenname ist, einfach so ein leeres Bild und einen leeren Text. Was wir also tun können, ist im UI Manager hier drin. Also wähle ich das aus. Ich klicke mit der rechten Maustaste auf schnelle Aktion und Refactoring. Und ich nenne das die Setzwaffen. Waffen. Du, ich hab Enter geklickt. Und jetzt kann ich anfangen. Ich werde die Waffe nicht wechseln, weil mir gerade etwas aufgefallen ist , dass das nicht funktioniert, wenn wir nicht den Tab haben. Alles, was wir hier drin tun ist nur den Strom einzustellen, damit er sofort funktioniert. Sie können es auf 0 setzen, wenn Sie möchten. Aber lasst uns das entfernen und stattdessen werden wir die Waffenoberfläche einrichten. Also setze dir Waffen ein. Sobald wir anfangen. Und lassen Sie mich diese einfach auswählen und ein paar Mal die Umschalttaste drücken ein paar Mal die Umschalttaste , um sie ein bisschen besser aussehen zu lassen. Wir speichern das, wie ich Ihnen gesagt habe, ist klug, dies zu ändern es ist klug, dies zu ändern und in eine der Variablen einzufügen. Ich empfehle, dass du das machen kannst. Und bei all dem Set, Lass uns wieder in unser Spiel gehen und lass uns das testen, um zu sehen, ob es vom Spiel aus funktioniert. Und nein, das hat zuerst nicht geholfen. Warum ist das so? Nachdem ich ein bisschen recherchiert hatte, erkannte ich etwas und verstand, woher das Problem kommt. Also hier drin versuchen wir, die Waffen-Benutzeroberfläche einzustellen, die hier ist, und wir versuchen, auf die UI Manager-Don-Instanz zuzugreifen. Das Problem ist, und mir ist aufgefallen, dass Sie, wenn ich das Spiel führe, wenn ich das Spiel führe, feststellen werden, dass ich diesen Pfeil genau hier habe. Und Sie können sehen, dass die Objektreferenz nicht als Instanz eines Objekts festgelegt ist. Also habe ich doppelt geklickt und ich habe hier reingeschaut und mir ist aufgefallen, dass das Player-Skript aus irgendeinem Grund instanziiert wird oder gestartet wird, bevor das UI-Skript gestartet wird. Wir haben also immer noch keinen Verweis auf den UI-Manager. Was wir tun können, ist, dass wir versuchen können das zu machen und wach zu werden statt eines Startes und warten nur ein bisschen früher als am Anfang. Testen wir das und sehen ob es funktioniert. Wenn ja, haben wir uns eine Menge Probleme erspart. Ich bin mir nicht sicher, ob das funktionieren würde, aber testen wir es. Also führe das Spiel im Spiel aus. Okay, also los geht's. Es hat funktioniert. Wie cool ist das? Wen wir so viel Zeit gespart haben, ich war mir nicht sicher, ob es funktionieren wird. Eine andere Sache ist, dass die Pistole zerschlagen wird. Wir können hier ins Bild gehen und unbedingt auf den Aspekt „Beibehaltung“ klicken. Sie können sehen, dass die Pistole gleich bleibt. Also beende ich das Spiel und die Voreinstellungen, speichere das und stelle sicher, dass ich die Änderungen übernehme. Jetzt, wenn wir rennen, gehst du los. Sie können sehen, dass der PESTEL richtig eingestellt ist, aber was ist das Problem? Das Problem ist, dass ich ein Gewehr habe und meine Hand doch die Pistole dargestellt wird. Warum ist das so? Nun, denn wenn wir zurückgehen, speichern wir das wieder. für zukünftige Zwecke immer sicher, dass die Instanz und das Erwachen nicht am Anfang festgelegt werden. Dies war also eine erstaunliche Gelegenheit für Sie, den Unterschied zwischen dem Start und dem Wachen zu verstehen . Awake fange nur ein bisschen an, bevor wir anfangen. Lasst uns eins fortsetzen, warum haben wir die Pistole am Anfang? Es ist alles wegen der verfügbaren Strömung. Die aktuelle Waffe wird also auf die Punktzahl minus eins eingestellt, also die Pistole. Weil die Pistole, wie Sie im Dooms-Spieler sehen können, die Zählung minus eins ist, was Element zwei bedeutet. Wie werden wir das beheben? Nun, was wir tun können, sind zwei Dinge. Wir werden einfach die aktuelle Waffe einstellen. Ich denke vielleicht eins. Auf diese Weise beginnen wir an der richtigen Position. Also wieder hier drin führen wir das Spiel aus. Wir halten ein Gewehr und wir haben ein Gewehr vertreten. Und so bin ich mir sicher, dass wir später eine intelligentere Lösung dafür finden werden, aber im Moment werden wir einfach machen, was funktioniert. Ich hoffe, dir hat das Video gefallen. Ich hoffe, du sagst alle deine Akten und wir sehen uns im nächsten. 54. Camera erstellen: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und in diesem, wenn wir anfangen zu schießen, haben wir nicht mehr diese langweilige Sache, die passiert. Wir haben tatsächlich geschüttelt. Wenn wir also schießen, gehen wir los. Sie können sehen, wann immer wir sollten, wir haben eine Art Schütteln, also fügt es ein Maß an Intensität hinzu. Offensichtlich ist die Intensität der Schrotflinte einfach zu groß, aber wie Sie sehen können, hat jede Waffe ihre eigene Intensität. Also beachte das Gewehr, beachte die Waffe und beachte die Schrotflinte. Da gehst du. Sie können also sehen, dass wir unterschiedliche Intensitäten für verschiedene Waffen haben. Verschwenden wir also keine Zeit mehr. Und lasst uns anfangen. Oh, okay, was wir jetzt tun wollen, ist, dass wir der Art und Weise, wie wir schießen, ein bisschen Intensität verleihen wollen. Derzeit funktioniert also alles gut. Wir schießen mit unseren Waffen. Wir können sie in verschiedene Waffen umwandeln. Wir können Feinde töten. Alles ist gut, aber es stört mich immer noch etwas und das ist, dass die Dreharbeiten nicht so aufregend sind. Also haben wir die Dreharbeiten, wir fühlen es nicht wirklich. Wir sehen es. Es wirkt sich nicht aus, aber wir fühlen es nicht in uns. Was wir also tun werden, ist, dass wir der Kamera ein bisschen zittern. Und zum Glück ist es extrem einfach, wenn es um die Verwendung einer Sündermaschine geht. Bevor Sie eine einzelne Maschine haben, würde es viel dauern, wann immer Sie die Kamera wackeln lassen möchten , und es würde nicht funktionieren. Manchmal hat es das getan. Verschwenden wir also keine Zeit mehr. Und lasst uns in die virtuelle Kamera gehen und unter dem Rauschen etwas hinzufügen , das als Basis-Mehrkanal-Berlin bezeichnet wird. Du willst mich also fragen, was ist der grundlegende Multi-Channel Berlin? Ich habe keine Ahnung, aber ich weiß, dass es Lärm erzeugt. Wenn du also tiefer in diesen Strahl eintauchen willst, würde ich mich wohl sehr freuen. Also ist ihr das aus dem Weg. Mal sehen, was hier passiert. Wir haben verschiedene Arten von Profilen, Rauschen, nennen wir es nicht mehr weiß. Und wir können dies ändern, um verschiedene Aspekte zu haben. Sie können weitermachen und über all dies lesen. Ich weiß wirklich nicht, was sie eigentlich tun. Ich bin nicht so tief in SONA-Maschine, aber was ich weiß ist, dass wir 60 Shake verwenden können und wir haben die Amplitude und die Frequenzverstärkung. Wenn ich das Spiel führe, wirst du feststellen, dass wir jetzt zittern werden. Okay, also los geht's. Du kannst das kleine Zittern sehen und du kannst die Kamera sehen, wie sie zittert. Wenn ich die Amplitude erhöhe, dann kannst du sehen, dass wir immer mehr und mehr zittern bis wir damit umgehen können. Kein Krieg. Lassen Sie es uns vorerst auf 0 setzen, Sie können sehen, dass ich auch einen Offset erstellen kann. Wenn ich es also auf eins setze und das y erhöhe, denke ich, dass es am Y mehr Zittern geben wird, aber lassen Sie es uns bei 0 halten. Wir können auch die Häufigkeit erhöhen, was die Häufigkeit des Schüttelns erhöht. Also lasst es uns auf eins behalten. Setzen wir es auf 0 zurück. Und lasst uns einen Weg finden, dieses Zittern zu kontrollieren , wenn wir tatsächlich schießen. Um das zu tun, erstelle ich ein neues Skript. Also gehe ich in das Skript, wir mit der rechten Maustaste und erstellen einen Ordner für die Kameras. Weil wir später vielleicht einen Kamera-Controller haben. Und lasst uns weitermachen und ein C-scharfes Skript erstellen und es Shake, Camp nennen . Drücken Sie Enter und warten Sie, bis es kompiliert ist. Und wir werden es der virtuellen Kamera hinzufügen . Und da sind wir los. Jetzt haben wir ein Drehbuch hier drin. Ich öffne es und wir werden ein paar Dinge tun. Als erstes müssen wir Cin eine Maschine benutzen. Dies ermöglicht es uns, auf verschiedene Dinge innerhalb des Computers zuzugreifen , genau wie die Verwendung der Unity Engine-Doc-Benutzeroberfläche um auf Dinge in der UI-Canvas zuzugreifen. Das nächste, was wir tun werden, ist ein paar Variablen zu erstellen. Jetzt ertrag mit mir. Das wird ein bisschen seltsam sein, aber du wirst alles verstehen. Erstens brauchen wir offensichtlich einen Hinweis auf die virtuelle Kamera. Also werde ich eine private Sünde eine Maschine erschaffen. Eigentlich lassen Sie uns nur virtuelle Kamera, virtuelle Kamera der mittleren Maschine. Und ich nenne es meine virtuelle Kamera, nur um die Dinge sehr einfach zu halten. Als Nächstes erstellen wir eine weitere private Variable, die die Mehrkanal-Pfette sein wird. Und wir nennen das den Lärm. Wie gesagt, diese Animation, grundlegende Multi-Channel-Berlin. Dies ist das letzte Mal, dass ich die Liederwelt retten werde. Da ist es, genau hier, und wir werden einen Hinweis darauf und den Lärm brauchen. Also wieder hier drin, was brauchen wir sonst noch? Nun, ich denke, wir müssen eine Instanz davon erstellen, weil wir nicht weiter danach suchen wollen und wir es nur einmal brauchten. Ich glaube. Also werde ich das zu einer öffentlichen Statik machen. Und wir machen das zu einer Art wackeliger, wackeliger Cam. Und es wird Instanz in Haltung genannt . Und da sind wir los. Und in gewisser Weise, wann immer wir eine Instanz instanziieren wollen, ist sie von nun an immer und wach. Instanz ist also gleich dem. Großartig. Lassen Sie uns als Nächstes alles einrichten. Und solange wir jetzt wach sind, stellen wir hier das MD-Rauschen der virtuellen Kamera ein. Also zuerst meine virtuelle Kamera, was ist sie gleich? Nun, es ist sehr einfach. Wir holen die Komponente, holen die Komponente und wir werden die virtuelle Kamera bekommen . Da sind wir los. Jetzt haben wir Zugriff auf die virtuelle Kamera. Dann müssen wir den Lärm kriegen. Rauschen ist also gleich raus oder tut mir leid, das Rauschen ist gleich meinem virtuellen Kamerapunkt. Und Sie können genau hier sehen, dass wir dies in einer Maschinenkomponente haben . Was also das Problem ist oder nicht das Problem, warum haben wir eine Maschinenkomponente und warum können wir nicht einfach eine normale Komponente bekommen? Nun, denn wenn ich hier reingehe und vier, mache ich das, lass mich einfach dieses Ende füllen. Das wird also die Mehrkanal-Pfette sein. Da sind wir los. Warum verwenden wir also die Komponente „Get Cinema Machine“? 12 Silan-Maschinen sind etwas knifflig und deshalb empfehle ich Ihnen, sich die Dokumentationen anzusehen und alles darüber zu lernen. Sie können übrigens Maschinen verkaufen, um Trailer und Cut-Szenen usw. zu erstellen . Es ist also ein sehr, sehr mächtiges Werkzeug. Du wirst lernen, was es tut. Sie können also genau hier sehen, dass es sich um verschiedene Komponenten innerhalb der virtuellen Kamera handelt . Und was ist das Problem hier aus irgendeinem Grund. Okay, also hat es sich nicht geöffnet. Haben wir gesagt, dass wir die Leiche brauchen? Oh, okay. Also los geht's. Aus irgendeinem Grund hat es die Kino-Maschine nicht geöffnet und diese zu einer 60 Cam gemacht. Spar dir das auf. Okay, lass uns weitermachen. Jetzt, da wir Zugriff auf das Geräusch haben, werden wir zuerst den Start und das Update löschen oder entfernen. Und wir werden eine Methode erstellen , um tatsächlich zu zittern. Also werde ich eine öffentliche Leere erstellen und wir nennen das die Shake-Kamera. Und innerhalb der Shake-Kamera werde ich einen Schwimmer von Intensität aufnehmen. Und diese Intensität wird in das Rauschen übersetzt. Wenn wir also unter dem Rauschen hier unten schauen, haben wir die Amplitudenverstärkung. Lasst uns darauf zugreifen. So gewinnt Amplitude ihr Ego und wir haben das kleine m dahinter. Aber das ist der Name der Variablen, auf die wir zugreifen, und wir werden sie als Intensität verkaufen. Und warum haben wir diesen Intensitätsparameter während? Denn jedes Mal, wenn wir unsere Waffe abschießen, wollen wir eine gewisse Intensität haben. Zum Beispiel sollte die Schrotflinte etwas mehr hinzufügen, um den Arno zu schütteln, was auch immer es ist, das Gewehr wird etwas weniger hinzufügen die Waffe fast nicht schütteln sollte. Aber jetzt rufen wir diese Methode genau hier auf. Und wir werden weitermachen und vor allem als die erschütterten, zum Beispiel die Kamera schütteln. Und lass es uns einfach vorerst 55 geben. Also werden wir Schütteln mit fünf Intensität erzeugen und wir werden sehen, wie das aussieht. Also warte ich, bis das kompiliert wird. Ich führe das Spiel aus. Und jetzt sollten wir das sehen, wenn ich schieße. Da gehst du. Du siehst, dass ich das Zittern habe. Jetzt gibt es zwei Probleme hier drin. Der erste ist, dass wir viel zittern. Die zweite ist, dass wenn ich in eine andere Waffe umziehe, das Schütteln dasselbe ist. Wenn wir es testen, wird es dasselbe sein. Vertrau mir. Das scheint nicht so zu sein, aber sagen wir, ich habe versucht, die Waffe zu benutzen. Sie können also jetzt sehen, wenn ich schieße, die Intensität gleich ist und das wollen wir nicht. Also werde ich dir eine kleine Herausforderung stellen. Du wirst die Kamera wackeln lassen. Erstellen Sie also zwei Variablen für jede Waffe. 14, die Intensität des Shakes, und eins für die Zeit, in der wir weiter zittern, wollen wir nicht ewig weiter zittern. Zweitens müssen Sie der Shape-Methode , die die Zeit in Anspruch nimmt, einen Parameter hinzufügen . Außerdem müssen Sie das Zittern mit einer Co-Routine stoppen und Sie müssen das Methoden-Shake-Camp jedes Mal aufrufen , wenn wir werden sollten. Ich denke, der letzte Punkt, den wir bereits gemacht haben. Also pausiere das Video jetzt und mach den flachen Ausfallschritt. Okay, willkommen zurück. Wie hast du das alles bekommen? Das erste, was ich tun werde, ist hier drin, dass ich ein serialisiertes Feld vom Typ float erstellen werde. Und es wird eine Waffenschüttelintensität sein. Und die Waffen. Was? Waffe? Schütteln Sie Zeit. Und lasst uns die Waffen entfernen und es schaffen. Jetzt haben wir also die Intensität und die Schüttelzeit. Als Nächstes werden wir tun, was sollen wir tun? Sehen wir uns die Herausforderung an oder vergessen sie sogar als Parameter. Okay, also gehen wir wieder rein und fügen eine Float-Zeit oder Schüttelzeit hinzu. Schüttelzeit, dann müssen wir das Schütteln mit einer Co-Routine stoppen. Also hier drin werde ich einen Enumerator erstellen und es wird „Stop-Schütteln“ genannt. Also hör auf zu zittern und es wird hier eine Variable aufnehmen , die keine Zeit zum Warten ist. Und wie immer werden wir nachgeben, zurückkehren. Neu, warte, vier Sekunden, Zeit, warte. Und hier drin, nachdem wir fertig sind, werden wir wieder das Geräusch bekommen, Punktamplitude. Und wir setzen es auf 0 zurück. Spar dir das auf. Und wir werden das Gericht hier oben starten. Also fang an Coroutine. Hör auf zu zittern, bitte. Und wir werden die Zeit schütteln. Schüttelzeit. Sag das endlich, da ist etwas drin. Also los geht's. Also Waffenschüttelintensität und Waffenschüttelzeit. Spar dir das auf. Ich glaube, das ist alles, was wir tun müssen. Also rufen wir an, wir bekommen die Instanz der Erschütterung, wir greifen auf die Methode zu, geben ihr die Intensität der Waffe, wir geben ihr die Zeit, die sie braucht, um weiter zu zittern. Und dann nennen wir diese Methode genau hier, die die Intensität der Schüttelzeit in Anspruch nimmt, gibt uns die Intensität des Rauschens. Es fängt an zu schütteln und beginnt dann eine kalte Sache , die das Zittern nach einiger Zeit stoppt. Damit das erledigt ist, sparen wir all das. Wir gehen hier zurück, wir haben das Warum schließt der Lärm weiter? Hast du bemerkt, dass jedes Mal aus irgendeinem Grund etwas stimmt , das damit nicht ganz stimmt. Ich hoffe es funktioniert. Also setze ich es auf 0. Spar dir das auf, führe das Spiel aus. Oh, und ich habe vergessen, jedem etwas Zittern hinzuzufügen. Also Schrotflinte, wie hoch ist die Intensität des Shakes bei einer Schrotflinte? Lass uns sechs machen. Und die Zeit beträgt vielleicht zwei Sekunden. Ich weiß es nicht. Ich habe das nicht getestet. Die Intensität eines Gewehrs beträgt vier mit einer Schüttelzeit von eins. Und auf der Pistole wird eine Drei für die Schüttelzeit von 0,5 sein. Spar dir das auf, führe das Spiel aus. Und lass uns unsere Waffen auf das Schütteln testen. Also werde ich das Spiel maximieren , damit es viel schöner aussieht. Ich glaube, das wird funktionieren. Ich glaube nicht, dass wir einen Fehler haben. Also, wenn ich jetzt mit einem Gewehr schieße, geh und ich, wenn ich rechne, habe wir die ganze Zeit geschüttelt, dann, wenn ich die Pistole wähle, ist es etwas weniger, also 0,5 Sekunden und das Schütteln ist etwas kleiner. Und dann haben wir die Schrotflinte, die viel brauchen sollte und für MLA. Also boom, da geht's los. Wir werfen eine Art Atombombe ab. Aber offensichtlich müssen diese alle ein bisschen optimiert werden. Ich werde hier ein bisschen optimieren. Wir wollen nicht so viel zittern. Wir werden ein bisschen weniger haben, aber es kommt immer wieder auf Sie zurück. Wie soll sich dein Zittern anfühlen? Muss es intensiv sein? Muss es nicht intensiv sein? Wir werden alle unsere Änderungen begehen und wir werden das als wackelige Kamera bezeichnen , wenn ich schieße. Kommentiere diese. Und da gehst du. Ich glaube, dies wird das letzte Video in diesem Abschnitt des fortschrittlichen Waffensystems sein. Wir haben unsere Waffen später hinzugefügt, wir werden die Summe abholen. Wir werden sehen, wie wir alle unsere Waffen finden werden. Wir haben gelernt, die Waffen zu wechseln. Wir haben gelernt, sie zur Benutzeroberfläche hinzuzufügen. Wir haben eine Feuerrate hinzugefügt, wir haben ein erstaunliches Schießsystem entwickelt und ich hoffe, es gefällt Ihnen. Ich hoffe, du musst es überprüfen, was mir sehr geholfen hat und wir sehen uns im nächsten. 55. Abschnitt 9: Gesundheitssystem – Einrichte des Player: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video werden wir dem Player tatsächlich ein Gesundheitssystem hinzufügen. Jetzt töten wir nicht nur die Feinde, sondern auch wenn wir zu sehr mit den Schwertern getroffen werden, sterben wir. Offensichtlich gibt es Dinge, über die wir den Vortrag reparieren müssen, aber im Moment tun wir nur das Gesundheitssystem unseres Spielers einzurichten , wodurch wir der Realität ein bisschen näher kommen und fühlt sich viel besser und füge ein bisschen Steak hinzu. Vor diesem Video sind wir also immer herumgelaufen und haben Spaß gemacht und alle getötet und uns keine Sorgen um etwas auf der Welt machen. Aber jetzt sterben wir. Es ist so, als würde man das College beenden und einen richtigen Job beginnen. Du gehst in die reale Welt. Es steht eine Menge Dinge auf dem Spiel. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, Fall. Derzeit ist also alles richtig eingerichtet. Wir können schießen, wir können angeschossen werden, wir können alles machen. Wir haben den Feind gehört, wir können ihn töten, aber wenn der Feind uns erschießt, tut es nicht so weh. Was wir also in diesem Abschnitt und insbesondere in diesem Video tun werden, ist die Schaffung eines Gesundheitssystems. Beginnen wir also damit, alles einzurichten. Als erstes gehen wir in die Skripte, gehen in den Player und erstellen hier ein C-Sharp-Skript, das der Spieler Health Controller sein wird der Spieler Health Controller oder Player hätte anrufen sollen Handler, weil er die Spielergesundheit nicht wirklich kontrolliert. Es geht darum. Weißt du was? Lass uns weitermachen und es zum vollständigen Löschen machen. Dies wird einen Layer-Health-Handler schaffen weil er damit umgeht und es kein so großes Problem ist, aber ich behalte die Dinge immer gerne ihren Gesundheitshandler. Weil dies die Gesundheit des Spielers bewältigt, kontrollieren Sie ihn in keiner Weise. Also füge ich es der Doom-Ebene und werde alle Änderungen übernehmen. Und ich eröffne den Spieler-Gesundheits-Handler. Also was brauchen wir hier? Nun, offensichtlich brauchen wir als erstes ein serialisiertes Feld, das die aktuelle Gesundheit repräsentieren wird. Und das dient nur zu Debugging-Zwecken. Offensichtlich wollen wir nicht immer in der Lage sein , die aktuelle Gesundheit zu sehen. Dann werden wir eine zweite Variable erstellen , die die maximale Gesundheit darstellt. Und dann fangen wir an, wir werden die aktuelle Gesundheit als maximale Gesundheit instanziieren . Wenn wir also ein Spiel beginnen, wann immer unser Spieler Papyrus oder anfängt zu spielen, werden wir die aktuelle Gesundheit als maximale Gesundheit haben. Der nächste Schritt besteht darin, eine Methode zu erstellen, die tatsächlich damit umgehen wird, Schaden durch die Feinde zu erleiden. Und das wird Teil deiner Herausforderung sein. Deine Herausforderung besteht also darin, eine Methode zu entwickeln, um Schaden zu erleiden. Erstellen Sie also eine Methode, die den Spieler beschädigen wird. Es sollte einen Parameter annehmen, der Schadensbetrag bestimmt, welcher Typ der Parameter innerhalb der Methode enthalten sein soll. Entferne den Schadensbetrag aus dem aktuellen Gesundheitszustand und überprüfe, ob die Gesundheit kleiner oder gleich 0 ist. Wir möchten den Spieler inaktiv machen. Also pausiere das Video jetzt und mach die Herausforderung. Willkommen zurück. Ich glaube also, dass dies eine ziemlich einfache Herausforderung war. Ich glaube nicht, dass es zu schwer war. Also werde ich das Update entfernen. 56. Health UI: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video, in dem wir alles über Schieberegler erfahren haben. Wir werden mehr über nächstes Mesh Pro lernen und wir erstellen auch unsere eigene Schriftart. Wie aufregend ist das? Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, Fall. Also Zeit, der Art und Weise, wie sich unsere Gesundheit von den Feinden verschlechtert, etwas mehr Geschmack zu verleihen . Also lasst uns anfangen. Das erste, was wir tun wollen, ist, die Szene ein bisschen größer zu machen. Und wir doppelklicken auf die riesige Benutzeroberfläche, die wir haben. Wir können also sehen, dass wir das, was hier passiert, das verblassende Bild haben was hier passiert, das , das wir ausgeschaltet haben. Und wir werden die Waffen nur ein bisschen nach rechts bewegen. Und wir können genau hier sehen, dass diese Bilder bei 0, 0, am y und am x sein sollten . Nur damit wir sie in der Mitte der Nicht-UI haben und lassen Sie uns sie nach unten bewegen. Das ist nur ein bisschen Anpassung, und los geht's. Jetzt setze ich die Waffe nach rechts, weil ich links etwas hinzufügen werde, das als Schieberegler bezeichnet wird . Davor erstelle ich hier ein Spielobjekt, das die Gesundheit repräsentiert. Nennen wir es einfach Gesundheit. Da sind wir los. Und unter der Gesundheit gehe ich mit der rechten Maustaste zu dir und erstelle etwas, das als Schieberegler bezeichnet wird. Fügen wir also den Schieberegler hinzu. Wie Sie sehen können, haben wir einen kleinen Schieberegler erstellt. Und der Schieberegler macht ein paar Dinge. Es bewegt sich von links nach rechts. Es hat einen Hintergrund. Wenn ich es öffne, hat es einen Hintergrund, es hat einen Füllbereich und es hat den Handle-Schieberegler. Wenn ich hier auf den Schieberegler klicke, siehst du, dass sich eine Spielkomponente oder Komponenten auf dem Schieberegler befindet. Und du kannst sehen, dass es ein paar Dinge gibt. Die normale Farbe, die hervorgehobene Farbe, all das gute Zeug. Aber das, worauf wir uns am meisten konzentrieren möchten, der Mindestwert, der Maximalwert und der Wert genau hier. Sie können das sehen, während ich es bei Bewegungen von links nach rechts erhöhe , und das werden wir verwenden , um die Hilfe darzustellen, die wir haben. Aber offensichtlich ist es ziemlich hässlich, dass der Schieberegler von links nach rechts bewegt wird. Sie möchten also nie, dass Ihre Gesundheit so dargestellt wird. Wir wollen also eine Art Bar haben, um die Gesundheit zu repräsentieren , genau wie wir es bei den professionell aussehenden Gewinnen haben . Also werde ich zuerst den Handle-Schieberegler löschen. Jetzt haben wir also nicht mehr so wenig oder gar nichts, was sowieso so genannt wird , diesen Kreis, der sich bewegte , und jetzt sehen wir nur noch die Bar. Das nächste, was ich tun möchte, ist, dass ich auf den Hintergrund zugreifen möchte. Und der Hintergrund. Ich klicke hier rein. Weißt du was? Bevor wir das tun, fügen wir diese Sprites hinzu, die UI-Elemente, die wir verwenden werden. Also öffne das in den Sprites diesen Ordner und lass uns sehen, was wir hier drin haben. Wir klicken mit der rechten Maustaste, um einen neuen Ordner für die UI-Elemente zu erstellen . Doppelklicken Sie hier rein und gehen wir in die Ressourcen. Wie Sie sehen können, habe ich Ihnen ein paar Balken zur Verfügung gestellt und Sie können die gewünschte Farbe verwenden. Sie haben auch die Schaltflächen genau hier, die wir später verwenden werden, und die Schriftart. Also wähle ich die Schriftart, den roten Schieberegler und den Schiebereglerhintergrund aus. Und ich ziehe sie in das UI-Element. Okay, Großartig. Gehen wir jetzt zum Schieberegler. Nennen wir es den Gesundheits-Schieberegler. Und wenn wir auf den Hintergrund klicken, können Sie sehen, dass wir das Quellbild ändern können. Also das Quellbild, das ich diesen Schieberegler haben möchte. Wenn ich es also hier hinzufüge, los geht's. Sie können den Schieberegler jetzt sehen , wenn ich ihn auf die native Größe setze, es ist irgendwie riesig. Vielleicht machen wir es etwas kleiner. Aber der Punkt ist, dass wir jetzt diesen Hintergrundschieberegler haben. Und ich möchte sicherstellen, dass wenn ich hier hineinklicke und Alt gedrückt halte, das gesamte Schiebereglerbild nicht nur auf sich selbst ausfüllt . Also haben wir das Health-Schiebereglerelement. Wenn wir auf die Rack-Tools klicken, sehen Sie die Kanten davon. Und bevor wir das hatten, sieht man, dass die Kanten die Kanten sind. Da sind wir los. Diese vier Punkte waren die Ränder des Gesundheitsschiebereglers, aber der Hintergrund war viel größer. Wenn wir also klicken, Alt gedrückt halten und auf die Strecke klicken, füllen wir den gesamten Schieberegler aus. Als Nächstes haben wir den Fill Bereich. Jetzt, wenn wir den Bereich ausfüllen wollen, werden Sie feststellen, dass es sich um eine sehr hässliche weiße Linie handelt. Was wir also tun werden, ist, dass wir auf die Füllung zugreifen. Und Sie können sehen, dass wir diese Helle auch ändern können und ich benutze den roten Schieberegler. Jetzt können wir hier rein klicken und du wirst sehen, dass es viel hübscher ist, oder? Nicht so schnell, weil wir auch sicherstellen möchten , dass der Füllbereich, wenn wir hier hineinklicken, Alt gedrückt halten und ihn ganz im Feldbereich strecken lassen . Und dann sollte sich der Füllbereich auch auf den ganzen Hintergrund dehnen. Aber weil wir im Hintergrund arbeiten. Und wir wollen den Hintergrund sehen. Ich meine, wir werden es kleiner machen und so passt es genau in diesen Hintergrund. Das sieht gut genug aus. Also verschiebe ich es nur ein bisschen nach oben. Und okay, also los geht's. Wir können sehen, dass wir den Health-Schieberegler auswählen können und wir können bei 0 beginnen und ihn erhöhen, bis er einer wird. Nun, wie werden wir die Gesundheit aufgrund unserer eigenen Gesundheit verändern ? Das wird ein Video für später sein. Aber wie Sie sehen können, haben wir vorerst alles erstellt, was wir für den Gesundheitsschieber benötigen. Ich zoome ein bisschen raus. Und vielleicht mache ich den Schieberegler ein bisschen größer. Vergrößern wir also die Größe. Und wie Sie sehen können, , weil alles an diesen Punkten verankert ist wachsen sie reibungslos zusammen, weil alles an diesen Punkten verankert ist. Machen wir es etwas dicker. Offensichtlich wird dies ein wenig geändert werden müssen. Und ich werde das Gesundheitselement nach unten bewegen, dann verkleinern und sehen, wie das aussieht. Also los geht's, hier denke ich, dass es gut ist. Oder bewegen Sie es vielleicht ein bisschen nach oben oder nein, lassen Sie es uns hier unten behalten. Zu, hier unten ist gut. Zoomen wir hinein. Vielleicht mach es ein bisschen länger. Und übrigens hängen alle Dinge, die ich tue, von mir ab. Wenn Sie also etwas anderes erstellen möchten, seien Sie bitte mein Gast. Ich empfehle Ihnen, einen eigenen Schiebereglertyp zu erstellen. Füllen wir es auf, damit wir die richtigen Dimensionen haben können . Und da geht's, links, weiter, hoch und nach links. Okay, also los geht's. Das ist unsere Gesundheit und es sieht wirklich gut aus, ich denke Wenn ich also beim Spielen maximiere und das Spiel spiele, lass uns sehen, wie das aussieht. Okay, also los geht's. Wir haben die Gesundheit, wir haben das Gewehr. Es gibt noch eine Sache, die fehlt, und das heißt, wir möchten auch die Gesundheit mithilfe von Text darstellen. Zuallererst ist das, was unser Zombie-Spiel ist, und ich denke, es sieht wirklich gut aus. Zweitens wird es eine gute Möglichkeit sein zu wissen, wie sehr wir uns tatsächlich verändern und ein paar Dinge mehr zu lernen. Also lasst uns weitermachen und hier einen Text hinzufügen. Aber dieses Mal, weil wir unsere eigene Schriftart hinzufügen werden, fügen wir nicht nur einen Text hinzu, sondern fügen einen Text Mesh Pro hinzu. Wenn ich also hier reinklicke, kannst du sehen, dass du ein paar wichtige Dinge importieren musst . Klicken Sie einfach auf den ersten und warten Sie, bis er importiert wird. Wenn das zu viel Zeit in Anspruch nimmt, werde ich auf magische Weise wieder auftauchen. Okay, war das. Da sind wir los. Jetzt haben wir etwas namens „Mesh Pro“. Und ich nenne das den Gesundheitstext. Drücken Sie Enter. Und lass es uns ein bisschen nach links bewegen. Also hier drin, machen wir es kühn. Und Sie können sehen, dass derzeit die darauf verwendete Schriftart der Befreiungssinn oder so ist. Aber wir möchten die Schriftart verwenden, die ich Ihnen in den Ressourcen zur Verfügung gestellt habe, sie von der font.com heruntergeladen haben. Oh mein Gott, das sowieso, wie werden wir das in eine Schriftart umwandeln? Nun, wenn wir irgendwo hier im Windows-Text Mesh Pro gehen , können Sie sehen, dass wir die Option für den Font-Asset Creator haben . Wenn Sie hier klicken, werden Sie nach der Quellschriftdatei gefragt. Ziehen wir es hierher. Und es wird dir nur sagen, dass du einen schönen Atlas erschaffen sollst. Sparen Sie. Und es wird dich fragen, wo willst du es speichern? Wir speichern es genau hier in den Schriftarten. Oder im UI-Element. Spar dir das auf. Großartig. Wenn wir jetzt auf UI-Elemente eingehen, können Sie sehen, dass wir genau hier den Platz haben. Es hat eine Reihe von Immobilien, in die ich nicht einmal versuchen werde . Gesundheitstexte ziehen die Schrift also einfach in ihre Position. Und los geht's, wir können sehen, dass wir gerade eine andere Schriftart haben. Jetzt empfehle ich, weil ich, wie ich schon mehrfach gesagt habe, sehr schlecht darin bin, Dinge zu zeichnen. Und ich habe einen sehr schlechten Geschmack, wenn es um Farben geht, und damit geht es um Text und alles, was damit zu tun hat, etwas hübsch aussehen zu lassen. Daher empfehle ich Ihnen, vielleicht einen besseren Text zu finden. Aber im Moment versuchen wir, die Art von Gesundheitssystem zu erstellen und es vielleicht zur automatischen Größe zu machen. automatische Größe bedeutet, dass es mit der Größe wächst und schrumpft. Ja, da sind wir los. Also werde ich es größer machen, es mutig machen. Und das Coole daran, Text Mesh Pro zu haben , ist, dass wir viele Dinge ändern können , damit wir Beleuchtung hinzufügen können, wir können Unterlagen hinzufügen, wir können eine Art Glühen hinzufügen und Sie können damit herumspielen. Wir können auch eine Gliederung hinzufügen. Wenn ich also ein bisschen Dicke hinzufüge, werden Sie feststellen, dass wir den Umriss haben, wir können den Offset, die Fliesen, die Geschwindigkeit, viele erstaunliche Dinge ändern den Offset, die Fliesen, die Geschwindigkeit . Und ich werde einen weißen Umriss machen nur damit wir alles klarer sehen können. Vielleicht. Da gehen wir, einhunderteinhundert. Das ist die Hilfe. Wir können viele Dinge ändern, die die Farbe und so weiter und so fort. Und solange wir hier sind, werde ich Ihnen eine Herausforderung stellen. Ihre Herausforderung besteht also darin, Ihre eigene Benutzeroberfläche einzurichten. Recherchiere also ein bisschen und finde deine eigenen UI-Elemente, die du für dein Spiel verwenden kannst. Verwenden Sie diese Elemente, um Ihre Benutzeroberfläche für den Player einzurichten und sich andere Dinge zu überlegen , die Sie auf dem Bildschirm anzeigen möchten. Zum Beispiel möchten Sie vielleicht unsere Ops haben. Vielleicht möchten Sie Countdown-Timer für die Schrotflinte haben . Vielleicht willst du nur die Schrotflinte für die Waffe, das schneidige oder was auch immer. Ich weiß nicht, was du sonst noch willst. Was immer du willst, denk darüber nach, versuche es hinzuzufügen. Sie, auch wenn Sie nicht wissen, wie man das Ding kreiert es einfach dorthin legen und dann aufschreiben soll. Vielleicht wirst du die Ergebnisse durchsehen, während wir weitermachen. Oder vielleicht würdest du alleine eine Lösung dafür finden. Und es gibt eine zusätzliche Herausforderung. Ich empfehle Ihnen, den Waffennamen umzuwandeln , den wir unter der Schrotflinte zeigen. Aber ich muss Sie warnen, dass es ein bisschen optimiert werden muss , bevor Sie es tatsächlich geschafft haben, den Waffennamen zu ändern. Das ist also pausieren Sie das Video jetzt und gehen Sie zur Herausforderung. Okay, willkommen zurück. Dieses Video ist also schon ein bisschen zu lang, also werde ich jetzt nicht den Namen dafür ändern. Später werden wir es offensichtlich ändern. Ich werde alle Änderungen übernehmen , die wir an der Benutzeroberfläche vorgenommen haben. Und jetzt, wenn wir das Spiel laufen, und jetzt können wir sehen , dass wir zur Pistole wechseln können, rennen Sie herum. Wir haben die Gesundheit, wir haben die Pistole und jemand bleibt irgendwo stecken. Oh, also sind wir bei der, das Licht genau an diesem seltsamen Punkt hier auf den Feind gestorben das Licht genau an . Es gibt also eine Panne. Offensichtlich werden wir uns später darum kümmern. Ich hoffe es gefällt dir. Ich hoffe, du begehst deine Änderungen. Und wir sehen uns im nächsten Video, dem wir tatsächlich auf die UI-Sprites zugreifen und sie aktualisieren. Wir sehen uns dann. Hey Michael hier aus der Zukunft, du dachtest, du wärst fertig mit mir? Nein. warst du nicht. Hier ist also etwas drin, als ich meine Änderungen vornahm, und das ist das Säure Stacks Mesh. Und wenn ich hier reingehe, Wo finde ich das in den Assets, können Sie sehen, dass wir diese Text-Netzdatei und dieses Text-Netz erstellt haben . Mal sehen wir uns die Eigenschaften darauf an. Kann ich die Größe sehen? Nein, ich kann die Größe nicht sehen, also denke ich, dass wir sie nicht wirklich in unseren Commits speichern müssen . Was wir also tun können, um ein bisschen Platz zu sparen, ich hier mit der rechten Maustaste. Und wir werden alles unter dem Asset-Text Mesh PRO ignorieren . Okay, los geht's. Das brauchen wir nicht. Inszeniere alles und nenne es hinzugefügte UI-Elemente zu Canvas, um Gesundheit darzustellen, und erstelle meinen eigenen Shop. Also übernehme ich diese Änderungen und wir sehen uns im nächsten. Ich verspreche, dass ich gerade weg bin. 57. UI mit Scripts aktualisieren: Willkommen zurück, meine Spieleentwickler. In diesem Video sehen wir nicht nur diese Bar hier, die hübsch aussieht, wenn wir getroffen werden, werden Sie sehen, dass unsere Gesundheit sinkt. Wenn wir also ein anderes Mal getroffen werden, können wir sehen, dass wir sterben. Offensichtlich gibt es dieses kleine Problem, über das wir sprechen werden, das gerade nicht angesprochen wird, aber wir werden später darüber sprechen. Also ohne weitere oder tun wir keine Zeit mehr verschwenden und lasst uns anfangen. Okay, jetzt haben wir einen Schieberegler, wir haben den Text. All dies repräsentiert die Gesundheit des Spielers, aber wenn wir Schaden erleiden, sinkt die Gesundheit nicht. Was wir also tun werden, ist, dass wir dieses Verhalten basierend auf der Verwendung des UI-Managers ändern werden . Gehen wir also in den UI-Manager und lassen Sie uns einen Verweis sowohl auf den Gesundheitsschieberegler als auch auf den Gesundheitstext erhalten einen Verweis sowohl auf den Gesundheitsschieberegler . Jetzt werden diese öffentlich sein. Und warum sind sie öffentlich? Nun, weil wir sie in einem anderen Skript behandeln werden , nämlich die Gesundheit des Spielers. Also werde ich einen öffentlichen Slider erstellen, und es wird der Health Slider sein. Und denken Sie daran, wir hätten diesen Schieberegler nicht benutzen können, wenn wir die Unity-Engine nicht hätten. Wie Sie sehen können, habe ich das kommentiert und Sie können sehen, dass der Schieberegler jetzt nicht existiert. Das ist also weiter, haben wir jetzt einen Hinweis auf den Gesundheitsschieberegler? Als nächstes brauchen wir einen Verweis auf den Text der Gesundheit verärgert. Und diese sind sehr einfach. Jetzt speichern wir das und erinnern uns daran, dass wir eine Instanz haben, eine statische Instanz im Wachzustand. Also gehe ich gleich hier in den Spieler-Handler, Health Handler und fange dann an. Sobald ich sagte, der aktuelle Zustand, werde ich auf die Punktinstanz des UI-Managers zugreifen, Punktgesundheitsschieberegler punkten den Maximalwert. Und ich setze es als maximale Gesundheit ein. Und dann mache ich das Gleiche mit der Benutzeroberfläche. Wo ist der UI Manager, die Instanz, der Integritätsschieberegler und der aktuelle Wert , der durch Wert dargestellt wird, der aktuelle Zustand sein. Da sind wir los. Also, wenn ich jetzt das Spiel führe, wenn ich in den Doom Player gehe und seine maximale Gesundheit für, sagen wir, Oh, okay, lass uns einfach den Strom öffnen, weil wir bereits hier einstellen. Ich werde dies nur kommentieren, weil tatsächlich einen anderen Maximalwert und aktuelle Werte habe. Also stelle ich das ein, sagen wir bei 20. Wenn ich das Spiel führe, sollten wir sehen, dass sich dieser Health Bot bewegen wird. Und das war es nicht. Da wir natürlich genau hier sehen können, die Objektreferenz nicht gesetzt wurde, und ich weiß, was das Problem ist, wenn ich hier hineinklicke, haben wir den Integritätsschieberegler auf der Benutzeroberfläche nicht gesagt. Also zurück in der UI-Canvas müssen wir das natürlich genau hier einstellen. Also Gesundheit und den Schieberegler, ziehe ich den Schieberegler und die Gesundheit gebeugt. Da sind wir los. Nein, nicht der Text. Oh, okay, das ist also etwas, worüber wir reden müssen. Die gesundheitlichen Fakten hier sind also nicht nur ein Text, es ist ein Text Mesh Pro, also können wir nicht verwenden, wo ist er? Wo ist der UI Manager? Da sind wir los. Also werde ich es verschieben, damit wir den Text nicht einfach verwenden können. Wir brauchen einen Text Mesh Pro, aber Sie können sehen, dass wir das Text-Netz nicht haben. Warum? Denn bevor wir den Text Mesh Pro verwenden können, benötigen wir den entsprechenden Namespace. Also benutze, Mal sehen, ich glaube, es ist das Unity-Engine-Punkt-TXT-Netz. Also mit dem TMP gehen wir los, Hex Mesh Pro. Und jetzt können wir hier den Text, das Textnetz pro Zeile verwenden . Und da sind wir los. Das sparen wir uns. Jetzt wieder in unserem Spiel. Und Einheit, ich meine, wir können weitermachen und die Gesundheit schleppen. Ich meine, in der Benutzeroberfläche können wir die Gesundheit nach unten ziehen. Was ist das Problem? Ich glaube, dass anstelle von Text Mesh Pro dies auch Text Mesh Pro GUI sein sollte. Versuchen wir es noch einmal. Spar das jetzt wieder in unserem Spiel auf. Und heute, jetzt werde ich das belassen. Jetzt gehen wir los. Schließlich können wir hinzufügen, also speichern wir das. Wir führen das Spiel und wir sollten sehen, dass die Gesundheit, ja, da sind wir los. Also haben wir den aktuellen Gesundheitszustand auf 20 eingestellt, V-Max Health auf 100. Sie können also sehen, dass es ungefähr ein Fünftel des Weges ist. Wir wissen also, dass das funktioniert. Der nächste Schritt besteht darin, dass dies jedes Mal aktualisiert wird, wenn wir einen Treffer machen oder das Spiel tatsächlich starten. Also werde ich es tun, und Ihre Herausforderung besteht darin, die Gesundheits-Benutzeroberfläche zu aktualisieren. Erstellen Sie zunächst eine Methode, die die Integritäts-Benutzeroberfläche aktualisiert. Wir sprechen also über das Buch, sowohl über den Schieberegler als auch über den Nächsten, dann müssen Sie es an den entsprechenden Stellen verwenden. Sie müssen also überlegen, wo kann ich das Update der Benutzeroberfläche verwenden? Stellen Sie sicher, dass Sie auch auf den Text und den zugreifen und aktualisieren Sie ihn. Und schließlich gebe ich Ihnen einen Hinweis darauf, wo Sie diese Update-Benutzeroberfläche verwenden können. Du kannst es zu Beginn verwenden und wenn der Spieler getroffen wird. Wenn das aus dem Weg ist, pausiere das Video jetzt und gehe zum Sharon. Oh, okay, willkommen zurück. Also gehe ich in den Spieler-Gesundheits-Handler. Und hier drin werde ich eine private Leere erstellen , die Layer-Gesundheit aktualisieren. Und hier drin werden wir zunächst auf den Punkttext Health der UI Manager zugreifen, Punkttext , Punkttext. Und wir werden es auf die aktuelle Gesundheit einstellen. Dann werden wir es verketten. Ich weiß also, dass du das noch nicht getan hast, aber auf diese Weise verketten wir. Zunächst einmal nehmen wir die aktuelle Gesundheit, wir fügen diesen Strich genau hier hinzu oder nicht diesen Schrägstrich, der heißt, glaube ich. Und wir werden die maximale Gesundheit festlegen und auch hier. Also werden wir das retten. Aber nicht nur das, wir werden auch den Wert des Schiebereglers ändern. Hier drin greife ich auch auf den Punktzustandspunktwert der UI Manager-Punktinstanz zu. Und es wird gleich der Strömung sein. Ups, tut mir leid. Die Strömung. Also die aktuelle Gesundheit, ja, das war's. Spar dir das auf. Jetzt ist die Frage, wo benutzen wir das eigentlich? Es gibt also zwei Orte. Zuallererst können wir es am Anfang verwenden und dann benutzen wir es schon und den Anfang weil wir die aktuelle Gesundheit gesagt haben, aber wir werden diese Zeile entfernen und wir werden einfach rufen Sie den Status des Update Players auf. Und dann werden wir jedes Mal, wenn wir hier Schaden erleiden, nachdem wir den Schaden beseitigt haben, nachdem wir den Schaden beseitigt haben, dies festlegen, aber ich glaube, es ist viel besser, ihn zu verkaufen nachdem wir den Zustand von 0 überprüft haben, vielleicht nicht. Das einzige, worüber ich mir Sorgen mache, ist, dass die Gesundheit negativ ist und die Bar in die andere Richtung geht. Das ist das einzige, was mich deswegen stört. Also mache ich weiter und stelle es vielleicht hier rein. Nachdem wir also überprüft haben, ob wir weniger als 0 sind, sieht das vielleicht auch nicht sehr hübsch aus. Wenn wir sterben, haben wir immer noch ein bisschen Gesundheit. Mal sehen, weißt du was? Lasst es uns hier reinlegen. keine Sorgen. Später werden wir diese kleine Änderung vornehmen, wo wir auch die Leiste ausschalten, wenn wir den Spieler deaktivieren. Wenn das erledigt ist, speichere das alles wieder in unserem Spiel. Und ich lasse c hier rein. Lassen Sie uns diesen Kommentar entfernen, speichern Sie das, weil wir jetzt tatsächlich gesund sind. Ich gehe zum Kuppelspieler und mal sehen. Lasst uns die aktuelle Gesundheit entfernen. Dies ist nur um den Überblick zu behalten, wir werden sicherstellen, dass es später privat ist. Und was wollte ich machen? Weil die Waffe, die der Feind auf uns wirft, und 50 Schaden verursacht, glaube ich. Also lasst uns das 300 machen. Die maximale Gesundheit des Spielers beträgt also 300. Ich führe das Spiel aus. Und wir sollten sehen, dass die maximale Gesundheit, Sie sehen können, dass wir 300 von 300 haben. Also komme ich dem Feind nahe. Er sagt: Los geht's. Sie können sehen, dass die Gesundheit langsam sinkt. Und schließlich der letzte, wir sterben. Aber Sie werden feststellen, dass ein kleiner Fehler aufgetreten ist und er oft auf uns zukommt. Also werde ich das Spiel beenden. Ich werde es jetzt tun, müssen wir uns beraten, wenn diejenigen, die wir nicht so schließen wollen, einen von ihnen schließen und Sie können sehen, dass es ein Problem gibt. Und was ist das Problem? Zuallererst haben wir, dass der gegnerische Bullet Controller den Spieler nicht finden kann. Zweitens haben wir, glaube ich. Okay, also nein, nicht das Problem hier drin. Nun, das Problem ist eigentlich, dass wir immer noch versuchen, einen Hinweis auf den Spieler zu bekommen, obwohl er tot ist. Also versuchen wir, die Gesundheitsrutsche zu ändern. Aber wie auch immer, dies sind kleine Optimierungen, um die wir uns später offensichtlich kümmern werden . Aber im Moment hoffe ich, dass es dir gefällt. Ich hoffe, du verstehst und fühlst, wie schön unser Spiel ist. Also wird alles dynamisch gemacht. Alles ändert sich automatisch mit dem Code und unser Spiel nimmt wirklich Gestalt an. Ich hoffe es gefällt euch und wir sehen uns im nächsten Video. Vergiss natürlich nicht, deine Änderungen zu übernehmen. 58. Einen Death erstellen: Willkommen zurück, Meine Lieblingsspielentwickler. Und dieses Video hat, wie Sie sehen können, ein zusätzliches Element, nämlich der Todesbildschirm. Jetzt, wenn wir das Spiel starten, können wir sehen, dass wir eine Gesundheit haben. Also werden wir einmal angeschossen, wir wurden zweimal angeschossen und los geht's. Du kannst sehen, dass du genauso sterben wirst wie in Dark Souls. Und wir haben diesen Effekt. Wie cool ist das? Und nicht nur das, Sie werden feststellen, dass wir keine vom Feind instanziierten Sorten mehr haben , nachdem der Spieler gestorben ist, was ein wirklich netter Mechaniker ist, den wir in letzter Sekunde hinzugefügt haben , weil ich mich nur daran erinnere. Verschwenden wir also keine Zeit mehr und lassen Sie uns den Bildschirm erstellen. Oh, okay, also an der Zeit, den Tod unseres Spielers ein bisschen aufregender zu machen . Und ich habe die Pixel pro Einheit auf 15 der Kacheln geändert. Jetzt haben wir diese lästigen blauen Linien nicht mehr. Also werde ich in der UI-Canvas weitermachen und ein neues Bild erstellen. Und dieses Bild wird der Todesbildschirm sein. Da sind wir los. Und lassen Sie uns die Szene einfach ein bisschen größer machen und wir werden sie in den gesamten Bildschirm einfügen. Und genau wie wir es immer tun, werden wir weitermachen und es komplett schwarz machen. Und was ich dann tun werde, ist, dass ich diese bekommen möchte , damit wir diese Blocktriller noch nicht benutzt haben. Also bekomme ich einfach den 123 und den letzten, wähle sie alle aus. Und ich ziehe es auf vier. Wir machen das, das ist in den Sprites. Erstellen Sie einen Ordner für den Bluttod-Bildschirm. Wie ein netter Kurs, ein sehr schönes Projekt alles über Blut taub und was nicht. Mal sehen, wie das aussieht. Und jetzt bevor wir das tun, glaube ich, dass wir hier ein Bild schaffen müssen . Also los geht's, das Bild und ich werde das genau hier ändern, und ich werde es auf die native Größe einstellen. Es ist also ziemlich groß. Ich werde nur dieses eine Setup gespendete Größe machen und vielleicht einfach die Größe vergrößern. Da gehen wir also herum. Ich werde das Seitenverhältnis beibehalten. Jetzt können wir es ein bisschen größer machen. Also los geht's. Das wird also über unseren Bildschirm spritzen. Ich erstelle hier eine Animation. Also gehe ich zu den Animationen, erstellen und Assets, Animationen, Todesbildschirm, Bildschirm, Blut. Und mal sehen, spritzen, viel auf dem Bildschirm. Spar dir das auf. Und ich füge all diese Bilder hier hinzu. Und mal sehen, wie das aussieht. Machen wir es zuerst, Lass es uns um eine Sekunde schaffen. Sieh mal, wie das aussieht. Okay, das sieht gut genug für mich aus. Spar dir das auf. Nennen wir das das Blut. Und lasst uns alle Bilder ändern und sie zu keinem Punktfilter anwenden lassen. Die Bilder sollten also momentan schärfer sein. Und schauen wir uns das noch mal an. Nicht zu scharf. Ich hätte es lieber etwas schärfer machen, wir vielleicht das auf 50 anwenden können. Jetzt sollten sie nicht viel größer werden. Das Extrudieren mit der Breite. Okay, lasst uns sehen, was das Problem hier drin ist. Klar das, okay, also jetzt wird das Blut überall spritzen, sobald wir anfangen. Und was ich tun werde, ist, dass ich auch eine Leinwand hinzufügen werde und hier. Was ist die Campus-Gruppe, die Canvas-Gruppen genannt wurde , oder jetzt können wir das Alpha anpassen und wir können die Neubesetzung blockieren. Das ist keine schlechte Idee. Wir werden es nicht interaktierbar machen. Und jetzt möchte ich auch weitermachen und vielleicht das Blut ein wenig nach unten bewegen, vielleicht ein bisschen drehen. Jetzt gehen wir also los. Dies ist das Blut, das erscheinen wird. Und ehrlich gesagt habe ich das Gefühl, dass das nicht wirklich gut aussieht , weil es irgendwie körnig ist, weil wir es größer gemacht haben. Ich denke, wir könnten es später entfernen, aber jetzt fügen wir hier einfach ein Text-Mesh-Problem hinzu. Text-Mesh-Sonde und du stirbst oder kapital. Und mach es mutig. Mal sehen, wie das aussieht. Machen wir es ein bisschen größer und automatische Größe. Und lass es uns in die Mitte stellen. Und wir können sehen, dass die maximale Größe hier drin noch größer werden kann. Also los geht's, du bist gestorben. Lassen Sie uns eine andere Schriftart wählen , bei der es um den Roboter geht. Ändern wir die Farbe davon, um es rot zu machen. Lasst es uns nach oben bewegen. Mal sehen, wie das aussieht. Es sieht wegen der Umrisse, die wir haben, nicht allzu gut aus. Also werden wir die Gliederung ändern, um vielleicht auch gelesen zu werden oder vielleicht einfach die Gliederung vollständig zu entfernen. Da gehen wir also ohne Umrisse aus. Okay, das sieht gut aus. Du bist also gestorben. Okay, also wenn du jemals Dark Souls gespielt hast, kennst du die Referenz und das, lass uns weitermachen. Also denke ich, dass das groß genug ist. Jetzt, wenn der Herr legt, gehen wir hin. Wir können sehen, dass wir das Blut bekommen und wir bekommen das du auf dem Bildschirm gestorben bist. Das sagt uns also, dass der Spieler einfach taucht. immer, lasst uns jetzt weitermachen, wir müssen dies tatsächlich ein- und ausschalten. Was wir also tun werden, ist, dass wir den Todesbildschirm immer ausgeschaltet halten werden. Solange der Spieler am Leben ist, dass dieser Bildschirm ausgeschaltet ist und wenn er stirbt, schalten wir den Bildschirm ein. Gehen wir also in den UI-Manager. Und offensichtlich werden wir auch hier das Alpha ändern. Wir wollen nicht, dass es einfach erscheint. Wir werden es langsam machen wird erscheinen. Und dafür werden wir hier auch eine Animation erstellen und Blut auf den Bildschirm bringen . Nennen wir das den Bildschirm. Erscheint. Spar dir das auf. Und lassen Sie uns dies ändern, um etwa 0,3 Sekunden zu dauern und es auf eins zu setzen. Das ist also irgendwie, du musst es einschalten. Und so passiert das irgendwie. Also schalten wir den Bildschirm ein, er fängt an zu spielen. Und da sind wir los. Und ich verschiebe einfach die Blutanimation wenn der Todesbildschirm komplett dunkel ist. Also starten wir die Animation, es gibt nichts und dann sollte der Block später erscheinen. Und tatsächlich können wir das hier auswählen und einfach ein leeres Sprite haben. Also fangen wir leer an. Mal sehen, wie das aussieht. Und ich schalte das komplett ein. Also los geht's. Nein. Das Blut führt das aus. Da sind wir los. Und dann lassen wir das Blut erscheinen. Okay, ausgezeichnet. Ich denke, das wird richtig gut aussehen. Speichern Sie das alles also wieder auf dem Schreibtischbildschirm, stellen Sie es auf 0 ein, schalten Sie den Bildschirm aus und speichern Sie das alles. Und jetzt gehen wir in unsere Drehbücher ein. Und im UI-Manager werde ich weitermachen und einen Verweis auf diesen Bildschirm erhalten . So serialisiertes Feld, es ist ein Spielobjekt und es wird der Todesbildschirm sein. Und jetzt werden wir weitermachen und eine Methode entwickeln , die es uns ermöglicht, sie einzuschalten. Es wird also eine Herausforderung sein. Und Ihre Herausforderung besteht darin, den Tiefenbildschirm zu aktivieren. Nun, wenn wir sterben. Sie müssen also eine Methode erstellen, die den Todesbildschirm auf aktiv setzt. Und dann musst du die Methoden aufrufen, Methode, wenn der Spieler stirbt. Um diese Methode zu erstellen und verwalte ich und rufe sie dann von der Spielergesundheit an, die mit dem besagten behandelt wurde, pausiere das Video jetzt und erledige die Herausforderung. Okay, willkommen zurück. Also hier im UI-Manager werde ich eine öffentliche Lücke erstellen. Schalten Sie den Todesbildschirm ein. Und alles, was es tun wird, ist einfach den Todesbildschirm zu bekommen und aktiv auf „true“ zu setzen. Und das ist alles. Und dann gehen wir zurück und machen den Spieler-Handler und enden hier, nachdem wir das Spielobjekt des Spielers ausgeschaltet haben, werden wir auf den UI-Manager zugreifen. Oder bevor wir das hier machen, die UI Manager-Instanz, schaltet die UI Manager-Instanz, taub, den Todesbildschirm ein. Und da sind wir los. Jetzt beginnen wir unser Spiel. Gehen wir zum Spiel, mach das größer. Gehen wir zum DOM-Spieler wird seine Gesundheit auf 100 setzen . Führe das Spiel aus. Jetzt, wenn wir einmal getroffen werden, los geht's, ist nichts passiert, offensichtlich weil ich jedes Mal vergessen muss, weißt du, wohin das geht. Wir haben vergessen, eine Referenz hinzuzufügen. Exzellent. Jetzt sparen wir, jetzt rennen wir. Jetzt sollten wir alles arbeiten lassen. Da sind wir los. Wir werden einmal, zweimal angeschossen, du bist gestorben. Und offensichtlich vergessen wir auch das, was wir immer vergessen. Also Animationen, wo ist es? Das Blut? Das Blut oder der Tod? Der Tod. Okay, entferne die Animation. Entfernen Sie die Animation. Speichern Sie das bitte zum dritten Mal aus dem Spiel. Keine Fehler mehr. Und jetzt werden wir einmal, zweimal angeschossen, wir sterben. Nett. Wie cool ist das? Aber offensichtlich gibt es das einzige Problem, das immer noch vorherrscht und das ist die fliegende Untertasse. Was wir also tun werden, ist wir sicherstellen werden, dass der Feind nur sortieren kann oder sollte, welches Projektil er hat. Nur wenn wir sichtbar sind oder wenn wir im Spiel sind. Also gehe ich in den NMI-Controller und hier, und ich scrolle nach unten und finde heraus, wo wir die Kugel oder das Projektil instanziieren. Also gehen wir hier rein. Und das feindliche Feuer und der Colton hier instanziieren wir das. Was ich also tun werde, ist, dass ich hier eine Bedingung erstelle, die überprüft, ob der Spieler, der den Punkt jagen soll, ein Punktspielobjekt ist. Das ist also Spieler-Chase-Bereich. Der Spieler, der Punkt jagt, ist also in Ordnung. So ist Spielobjektpunkt Punkt ist aktiv oder aktiv und Hierarchie. Dann werden wir schießen. Wenn nicht, dann sind wir es nicht. Diese Aktive und Hierarchie definiert also , ob das Spielobjekt in der Szene aktiv ist. Was wir also tun, ist, dass wir den Spieler ausschalten , wenn wir sterben. Das bedeutet, dass er nicht mehr aktiv ist. Und die Hierarchie bedeutet, dass wir das Projektil des Feindes nicht mehr instanziieren und keine Fehler bekommen sollten. Versuchen wir es noch einmal. Führe das Spiel aus. Und mal sehen, wir werden einmal, zweimal scharf . Okay, du bist gestorben. Da sind wir los. Wir können sehen, dass wir keine Fehler mehr haben und die Feinde nichts instanziieren. Und wenn ich hinzoome wo ist es? Das Untergang, genau hier, okay, also können wir nichts sehen, aber Sie können sehen, dass wir nichts mehr instanziieren. Lass uns das nochmal machen, weil ich glaubte, dass ich hier etwas gesehen habe , als wir angeschossen wurden. Oh, okay. Okay. Nein, alles ist gut. Also los geht's. Wir haben unseren Todesbildschirm. Wir haben die Geschosse nicht mehr und instanziieren immer dann, wenn unser Spieler stirbt Stellen wir sicher, dass wir die Änderungen anwenden. Wir stellen sicher, dass wir unsere Änderungen vornehmen, und stellen sicher, dass wir Michael eine Bewertung hinterlassen , weil es ihm sehr hilft. Im nächsten Video werden wir natürlich, wenn Ihnen das Video sowieso gefällt , im nächsten Video die Mechanik schaffen, den Player ein bisschen unbesiegbar zu machen , wann immer er es bekommt es nur für eine vorübergehende Zeit. Also das heißt, ich hoffe es gefällt dir und wir sehen uns im nächsten. 59. Adding Unbekannte Adding: 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. 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. 60. Spiken auf dem Boden hinzufügen: Willkommen zurück, meine Spieleentwickler. Wie Sie sehen können, haben wir hier ein paar Stacheln geschaffen. Wenn wir diese Fahrräder haben, wenn ich auf ihnen stehe, gehen wir los. Ich werde beschädigt. Und wenn ich stehe und zurückgehe, werde ich nicht beschädigt. Und wenn ich stehe und weiter stehe, werde ich beschädigt. Aber jetzt, weil ich immer noch unbesiegbar bin, werde ich wieder beschädigt. Wenn ich weiter hier drin stehe, damit ich vielleicht sterbe, gehe ich ein bisschen weg und verschwenden wir keine Zeit mehr. Und lasst uns anfangen. Oh, okay, also lasst uns zur Spike-Kreation kommen. Und ich habe schon die Stacheln und alles geschaffen. Nun, das ist etwas, das ich nicht gerne mache. Ich mag es nicht, Dinge außerhalb des Bildschirms zu machen und es Ihnen dann zu sagen, aber weil ich sicherstellen wollte, dass dieses Video so effizient wie möglich ist, ist es lange und etwas muss erklärt werden. Aus diesem Grund habe ich alle Animationen erstellt und so weiter. Ich gebe dir einfach eine kurze Tour. Was ich getan habe, habe ich mich für eine dieser drei Fallen entschieden . Ich bin wieder im Spiel gegangen. Ich habe die Sprites ausgewählt, ich bin mir sicher, dass es 32 mehrere sind, das Sprite bearbeitet und 32 mal 32 aufgeschnitten, den Filter erstellt und so weiter. Ich habe dann diese Spike-Falle erstellt, die einen Sprite-Renderer hat. Ein Animator wird dazu kommen und ein Box Collider, der gerade um ihn herum ist, was auch ein Auslöser ist, weil wir möchten, dass der Spieler darüber läuft. Okay? Jetzt habe ich auch eine Animation für den Spike erstellt. Man ist untätig, einer knallt, also steht der Leerlauf einfach da, tut nichts. Dies ist die Standardanimation. Und dann knallen die Stacheln, die hier drin sind. Du wirst sehen, dass ich einen erstellt habe, um das privat zu machen. Also los gehst du. Du siehst, und warum sollte ich es etwas langsam machen? Ich wollte dem Spieler nur die Chance geben, zweimal darüber nachzudenken, bevor ich wieder dort bin. Es hat also nichts damit zu tun dass der Spieler anhält und er beginnt auszulösen. Und dann hat er ein paar Frames. Kann das genau hierher bewegen. Er hat ein paar Frames, um seinen Fehler zu erkennen und dann zu versuchen, davor davonzulaufen. Wenn das aus dem Weg ist, sprechen wir über den Animator und was wir hier gemacht haben. Also habe ich das Ival erstellt, es zum Standard-Ebenenstatus gemacht und dann die beiden Übergänge erstellt, von denen einer 21 ging. Ich habe hier auch einen Parameter erstellt, der ein boolescher Wert für die BOP-Spikes ist. Und sobald die Pop-Spikes wahr sind , gehen wir vom Leerlauf zu Pops Spikes. Wir haben keine Übergangsdauer, wir haben keine Ausstiegszeit. Aber wenn wir vom Bopping zurückkehren, haben wir eine Ausstiegszeit, die etwa 90 Prozent der Animation entspricht. Wir können es sogar auf eins erhöhen, bis wir die gesamte Animation beendet haben und dann zurückkehren. Ich schaffe es eher 0,57. Aber aus irgendeinem Grund, als ich es dafür einstelle, verschwindet die Animation hier drin. Ich bin wirklich verwirrt, warum das passiert. Mir gefällt es überhaupt nicht. Also 92 vielleicht 1906. 1907 lässt einfach alles verschwinden, was extrem nervig ist. Und ich habe keine Ahnung warum das passiert. Aber wie auch immer, wir haben eine Ausstiegszeit , die 96 Prozent der Animation beträgt. Dann gehen wir zurück. Nun, das ist aus dem Weg, wenn du eins machst, pausiere das Video jetzt, mach alles dafür. Erstelle alle Animationen und so weiter. Weil ich fortfahre und mit den Skripten beginne , indem ich einen erstelle, nennen wir diesen Ordner die Fallen. Vielleicht willst du mehrere Fallen erstellen. Und hier drin werde ich die Stacheln erstellen. Klicken Sie also mit der rechten Maustaste, erstellen Sie das C-Sharp, und lassen Sie uns die Spikes machen, drücken Sie die Eingabetaste, wählen Sie die Spike-Falle aus. Und ich schleppe diese Parks hier rein. Jetzt doppelklicke ich und öffne es und Visual Studio. Bevor wir fortfahren, lassen Sie mich jetzt einfach erklären was die Grundidee ist oder wie dieser Anstieg funktionieren wird. Denn in nur ein bisschen werde ich die Herausforderung stellen und möchte, dass du weißt, wie der Spike funktionieren wird. Der Spieler läuft also herum, während der Spieler, kein Spieler, herumläuft. Dann plötzlich, während die Stacheln versteckt und versteckt sind, geht er auf den Stacheln rüber und sie fangen an zu springen. Wenn sie ihn also treffen, wollen wir, dass die Animation eine Art Ereignissystem hat und dass dieses Ereignissystem die Blade beschädigen wird. Wir müssen also die Schadensbetragsvariable haben, um einen Verweis auf diese Ebene zu erhalten , und wir müssen hier ein Ereignis hinzufügen, das ihm Schaden zufügen wird. Wir möchten auch sicherstellen, dass wir ihm weiterhin Schaden zufügen wollen, wenn der Spieler noch auf den Stacheln steht . Werden Sie nicht nur einmal beschädigt und überspringen Sie dann das Stehen hier und fühlen Sie nichts. Wir möchten auch sicherstellen, dass der Spieler, wenn er die Stacheln aktiviert, verschwindet. Wir wollen nicht, dass er immer wieder beschädigt wird, denn während die Animation der Spikes funktioniert und das Ereignissystem immer noch ausgelöst wird, oder Sie werden sehen, wie alles funktioniert, wenn wir das tatsächlich erstellen. Aber bis dahin werde ich eine Herausforderung stellen, die tiefe Schicht mit Stacheln zu beschädigen. Erstellen Sie also zunächst eine Variable für den Schaden und der Spieler, den wir beschädigen sollten , muss den Unternehmer Enter erstellen. Sie müssen die Animation starten und sicherstellen, dass sie stoppt. Stellen Sie also sicher, dass es stoppt, bedeutet, dass wir möglicherweise brauchen und auf Zuckeraustritt. Dann musst du den Spieler mit dem Eventsystem beschädigen . Und schließlich möchte ich nur, dass du darüber nachdenkst, was passieren sollte, wenn die Unschärfe auf den Stacheln bleibt und dann ausgeht. Wenn das aus dem Weg ist, pausiere das Video jetzt und erledige die Herausforderung. Okay, willkommen zurück. Zurück in unserem Skript hier drin erhalten wir zunächst ein serialisiertes Feld, das vom Typ Integer und dem Schadensbetrag sein wird . Dann werden wir eine private Leere erstellen. Und es gibt keine Entschuldigung, keine private Leere, einen privaten Collider 2D, und dies wird der Spieler sein, der beschädigt werden muss. Spar dir das auf. Jetzt werde ich den Start entfernen und aktualisieren, wenn wir sie später brauchen, können wir sie hinzufügen. Es ist ziemlich einfach. Ich werde den On Trigger Enter to D erstellen. Ich werde prüfen, ob dieses collision.com-Tag die Ebene ist. Wenn ja, dann bekomme ich die Komponente, die die letzte Haupttür ist. Und ich werde weitermachen und den Bool setzen, der Buchstabe sein wird weil dies eine Zeichenfolgenreferenz ist. Wir kriegen diese Motorräder. Bob Spikes, kopiere das. Und wieder hier drin. Und lasst uns das machen. Bikes, heb dir das auf. Und dann erstellen wir hier eine Methode , die den Spieler beschädigen soll, bei dem es sich um eine öffentliche Schadensschicht handelt. Und wir müssen dies auch auf wahr setzen. Spar dir das auf. Also werden wir dem Spieler Schaden zufügen. Was sollen wir hier drin machen? Wir werden den Spieler nur dazu bringen, die Dot-Get-Komponente zu beschädigen, den Gesundheitshandler des Spielers. Und wir werden die Schicht mit der Höhe des Schadens beschädigen. Und bevor wir vergessen, wie erhalten wir Zugriff auf diesen Ebenenschaden, wenn der Spieler hier eintritt? Was ist das Problem hier drin? Die Anzahl der Spender existiert nicht. Oh, tut mir so leid. Betrag des Schadens. Woher habe ich die Höhe des Schadens bekommen? Ich bin mir sowieso nicht einmal sicher, der zu beschädigende Spieler der Kollision gleich sein wird. Da sind wir los. Also bei Trigger Enter prüfen wir, ob es der Spieler ist? Ja, wir starten die Pop-Spikes-Animation. Dann setzen wir den Spieler als Kollision auf Schaden, weil er deklariert ist, wir wissen, dass wir dann den Spieler beschädigen werden. Und schließlich werden wir wieder hier rein gehen. Was ist das Problem? Okay? Nichts Animation und wir werden in der Szene auswählen. Also los gehst du. Wir können sehen, dass es anfängt, dann passiert nichts. Und ein paar Sekunden warten wir und dann buchen wir hier, ich füge das Event und ich werde auswählen, ob der Spieler beschädigt werden soll. Wir werden das speichern, um das Spiel zu starten. Und wir werden sehen, dass wir ein Leben von 600 haben , sobald ich auf diesen Rädern anhalte. Jep. Da sind wir los. Es schadet uns. Es schadet uns nicht, denn wenn ich zurück zu den Stacheln gehe, haben wir nichts zu beschädigen. Lass es uns vorerst einfach auf 100 setzen, denn das Leben ist 600. Also denke ich, dass er ein paar Treffer machen kann. Jetzt haben wir die Stacheln. Ja, da sind wir los. Sie können sehen, dass es jedes Mal 100 entfernt. Und weil wir diese Unbesiegbarkeit für ein paar Sekunden haben , wirkt sich der zweite Tipp nicht auf die Ebene aus. Aber das Problem ist, man sehen kann, dass es weiterspielt und ich immer wieder beschädigt werde. Der Spieler ist also gestorben, obwohl er außerhalb des Funkenumfangs steht . Was wir also tun sollten, ist zunächst, wir die Animation bei Trigger exit 2D stoppen müssen. Und hier drin mache ich einfach das Gleiche wie ich hier drin. Sucht nach dem Spieler. Und wenn es der Spieler ist, der gerade die Kollision beendet hat, setzen wir dies auf False, speichern Sie das wieder in unserem Spiel. Und da laufen wir das Spiel aus. Jetzt gehen wir also hier rein, wir werden beschädigt, wir gehen raus. Da sind wir los. Wir können sehen, dass die Animation aufhört, aber es gibt etwas, wenn ich anhalte und zurückgehe, du kannst das sehen, obwohl ich draußen bin, also geh zurück. Ich werde immer noch beschädigt. Warum? Weil die Animation hier immer noch abgespielt wird. Ereignissystem wird immer noch ausgelöst und wir wissen, was der Spieler ist. Um das zu vermeiden, erstelle ich einen öffentlichen Bool. Und dieser öffentliche Bool, nur damit wir es im Inspektor sehen können , wird es später auf privat setzen. Und ich nenne das den Give Player oder Damage Player oder sollte den Spieler nicht beschädigen, ich glaube, dass es dafür ein besserer Name ist. Verben sollten den Spieler beschädigen. Und sobald er drin ist, ist der Spieler mit dem Sollschaden gleich wahr. Wenn er draußen ist, ist der Spieler sollte beschädigen falsch. Und dann überprüfe ich innerhalb der Schadensspieler-Methode, ob wir den Spieler verwalten sollen. Dann greifen wir auf den Gesundheitshandler des Spielers zu und beschädigen den Spieler. Jetzt, zurück in unserem Spiel, sollten wir sehen, dass wir den Spieler nicht beschädigen sollten, wenn ich das Spiel führe . Sobald ich hier reingehe, sollten wir den Spieler beschädigen, wir werden beschädigt. Aber wenn ich aktiviere und dann nach draußen gehe, dann gehst du. Du kannst sehen, dass das Spielerbuch beschädigen sollte, Buch. Da sind wir los. Du siehst, dass ich nicht mehr betroffen bin. Ich hoffe, dir hat dieses Video gefallen. Ich hoffe, Ihnen hat dieser Abschnitt gefallen. Ich hoffe, Sie stellen Ihre Dateien immer auf , übernehmen Ihre Änderungen und erstellen Bewertungen. Und dann werden wir im nächsten Abschnitt sehen, wohin uns diese Reise führt. Also werde ich weitermachen und hier sagen , dass ich Spikes erstellt habe, diese Schadensschicht, die Änderungen vornehme. Und ich sehe genau hier und die Meister, wie sich unser Spiel entwickelt. Sieh dir an, wie viel wir getan haben und schau, wie viel wir noch tun müssen. Dieses Spiel fängt gerade erst an, also kann ich es kaum erwarten. Verschwenden wir keine Zeit mehr und wir sehen uns im nächsten Video. 61. Teil 10: Pickups – die Gesundheit aufholen: Willkommen zurück, meine Spieleentwickler. Wenn Sie in diesem Video genau hier sehen können, haben wir diese grünen Gesundheitspickups. Wenn wir also getroffen werden, merkt man, dass wir als 500 über 600 live sind. Aber sobald ich diese Gesundheit aufgegriffen habe, werden Sie feststellen, dass ich meine Gesundheit steige und jetzt sind wir wieder im Geschäft und können alle erschießen. also ohne weiteres wir also ohne weiteres keine Zeit mehr. Ich mache ein paar Fehler in diesem Video. Ich hoffe, Sie werden die Lektion von ihnen genießen und lassen Sie uns keine Zeit mehr verschwenden. Und lass uns anfangen. Oh, okay, also fügen wir dem Spieler die Möglichkeit hinzu, etwas Gesundheit zu erlangen, während er beschädigt ist. Das erste, was ich tun möchte, ist, dass ich das Prefab aus der Spike-Falle erstellen möchte. Also Prefab und was sollte hier haben. Klicken wir mit der rechten Maustaste hier und erstellen einen Ordner für die Levelobjekte. Also Level-Objekte. Und lasst uns weitermachen und die Spike-Falle hinzufügen und lassen Sie es uns einfach in unserer Welt behalten. Das nächste, was wir tun wollen, ist, in die Sprites zu gehen. Wo sind die Sprites? Und sagen wir, hier haben wir die Gesundheitsabholung oder wissen Sie was, nennen wir sie einfach die PEC Ops. Drücken Sie Enter. Und hier drin gehe ich in die Ressourcen und ziehe das gesamte PNG oder Bild oder wie auch immer du es nennen willst. Und ich wollte das draußen machen und es machen, bevor wir das Video starten. Aber ich dachte, dass einige von euch vielleicht wütend waren , dass ich alle Animationen und so erstellt habe. Also dachte ich, dass wir sie zusammen erschaffen. Wenn du willst, können wir nachsehen , wer es schneller schaffen kann. Also 64 von 64 oder weniger Folien, die, okay, offensichtlich sollten es 32 mal 32 Slice sein , die Änderungen angewandt haben. Da sind wir los. Jetzt hole ich einen von denen, füge sie der Welt hinzu. Es ist extrem klein. Stellen wir es auf die Ebene, Ebene. Es ist immer noch extrem klein. Lassen Sie uns 32 machen und die Pixel pro Einheit übernehmen die Änderungen, damit es noch ein bisschen klein ist. Lass uns vielleicht 16 machen. Wenden Sie die Änderungen an. Da sind wir los. Ich denke, das ist gut. Und übrigens ist dies einer der hässlichsten Gesundheitsabnehmer , die ich je gesehen habe. Also wenn du jetzt willst, nein, wollte ich das nicht sagen, denn vielleicht hatte es der Person, die an ihnen gearbeitet hat , schwer die Schatten zu erzeugen und so weiter. tut mir also leid, dass ich das gesagt habe , aber ehrlich gesagt sind sie nicht so gut. Also empfehle ich dir, deine eigenen Sprites zu finden. Ich möchte nur sicherstellen, dass wir die Spielmechanik und den Platz haben. Es muss nicht extrem hübsch sein. Wie auch immer, wir fügen offensichtlich einen Box Collider hinzu. Mal sehen, wie groß das ist. Ja, ich denke, das ist groß genug. Wir werden sicherstellen, dass es ein Auslöser ist, der das rettet. Wir gehen hier in die Skripte und lassen uns mit der rechten Maustaste klicken und ein C-Sharp-Skript für die Gesundheits- oder Gesundheitsabholung erstellen . Drücken Sie Enter. Und wir erstellen einen Ordner, der die Pickups sein wird. Also jeden Tag nehmen Sie ab und fügen Sie die Gesundheitsabholung hinzu und machen Sie die Abholungen. Und dann fügen wir die Gesundheitsabholung in die Gesundheitsabholung ein. Wie cool ist das? So erhält Health Pickup eine neue Komponente, nämlich das Health-Pickup-Skript. Los geht's, öffnen es in Visual Studio und lasst uns loslegen. Was brauchen wir hier drin? Zuallererst müssen wir natürlich wissen, wie viel dies heilen wird. So serialisiertes Feld, wir machen es zu einer Ganzzahl und wir nennen dies den Absatzbetrag endlos. Setze es einfach auf, ich weiß es nicht, vielleicht zehn. Ich denke, zehn ist gut genug. Ich werde den Start und das Update vorerst entfernen. Und ich werde weitermachen und einen auf Trigger Enter erstellen , um offensichtlich was wir suchen? Tag vergleichen. Ich meine, tut mir leid, wir müssen zuerst die Kollision bekommen und dann vergleichen wir das Tag und diesen Tag als Spieler. Sie haben das alles also schon gesehen, ich denke ungefähr 1000 Mal, aber das sollten wir sowieso durchmachen. Aber bevor ich das mache, lass mich einfach die Animation für die Gesundheitspackup erstellen. Also Animation, erstellen Sie Animation. Lassen Sie uns hier einen Ordner erstellen, der die Pickups sein wird . Vielleicht fügen wir ein bisschen mehr Pickups hinzu. Und hier drin erstellen wir den Gesundheitsabnehmer, nur um sicherzustellen, dass alles wirklich sauber und einfach zu durchlaufen ist . Jetzt kriegen wir die Gesundheit hoch, runter, hoch, runter. Das geht zum Sprite schaltet ein. Und wo ist es? Backup, Abholung des Gesundheitswesens. Da sind wir los. Lassen Sie uns alle diese Bilder hinzufügen und wir behalten sie als Standardebene, die ausgeführt wird. Okay, das ist extrem schnell, vielleicht so. Nein, das ist langweilig. So. Okay. Ich denke, das ist vielleicht gut genug. Ja, klar. Warum nicht? Also lasst es uns einfach dabei behalten. Ich glaube. Ja, klar. Solange wir sehen können, was passiert und es sich nur ein bisschen bewegt. Vielleicht mach es etwas langsamer. Nein, das ist zuerst 2. Ich weiß es nicht. Das hängt wirklich von dir ab. Wie soll Ihr Pickup aussehen? Offensichtlich haben einige von Ihnen Batterie-Sprites, besser verstehen, was eine Animation hübsch macht. Also behalte ich das für dich, solange der Gesundheitsabnehmer ordnungsgemäß funktioniert. Jetzt lass uns wieder reingehen. Und was wollen wir hier drinnen machen nachdem der Spieler kollidiert ist, werden wir natürlich die Gesundheit des Spielers erhöhen wollen, aber es gibt etwas das nicht ganz stimmt und das heißt, wir tun es nicht habe irgendeine Möglichkeit, das zu tun. Also werde ich Ihnen eine Herausforderung stellen, eine Methode zu entwickeln, die Gesundheit erhöht. Zunächst einmal erstellt der Spieler Health Handler eine Methode, die dem Spieler Gesundheit verleiht. Es sollte einen Parameter nehmen, der die Fersenmenge ist. Sie müssen sicherstellen, dass es niemals das Maximum an Gesundheit übersteigt , das wir haben. Unser Maximum liegt also bei 100. Wir wollen zum Beispiel keine 120 haben. Und schließlich, und vor allem, müssen Sie sicherstellen, dass Sie auch die UI-Canvas aktualisieren. also mit diesen Informationen Halten Sie also mit diesen Informationen das Video jetzt an und gehen Sie zur Herausforderung. Schwul. Willkommen zurück. Wie bist du darauf gekommen? Ich hoffe, es war nicht allzu schwer und ich hoffe, du hast alles gegeben. Hier, wo wir den Spieler direkt darunter beschädigen, werden wir eine öffentliche Leere schaffen. Und es wird HB zwei Spieler hinzufügen. Und es wird einen ganzzahligen Parameter aufnehmen, der die Fersenmenge ist. Und was machen wir hier drin? Nun, wir werden auf die aktuelle Gesundheit zugreifen und sie um die gesundheitliche Höhe erhöhen . wir jetzt tun, wenn wir die aktuelle Gesundheit größer als die maximale Gesundheit Was sollten wir jetzt tun, wenn wir die aktuelle Gesundheit größer als die maximale Gesundheit haben? Nun, wir sollten die aktuelle Gesundheit auf die maximale Gesundheit einstellen . Dadurch wird sichergestellt, dass die aktuelle Gesundheit niemals über die maximale Gesundheit hinausgeht. Und schließlich müssen wir den Gesundheitsplan des Spielers aktualisieren, den Spielerzustand aktualisieren. Ja, Aktualisiere die Spielergesundheit. Weißt du was? Doppelklicken Sie hier rein, RR steuern, Spielerzustand aktualisieren Sie sind. Und das Problem ist , dass es etwas gibt, einen ungelösten Konflikt. Was ist das Problem? Oh, okay. Also hier drin weiß es nicht, was es verwenden soll. Und los geht's. Jetzt aktualisieren wir die Spielergesundheit, die Sie sind. Und der letzte Schritt ist offensichtlich, dass wir zur Kollision, der Get-Komponente, gehen, weil wir bereits wissen, dass dies der Spieler ist, also werden wir keine Fehler haben, die bei HP zum Spieler genannt wurde , bei HP an Spieler. Und wir haben ihm die Fersenmenge dieses Objekts geschickt. Und schließlich und natürlich müssen wir das Spielobjekt zerstören. Da sind wir los. Ich glaube, das ist alles, was wir tun müssen und das sollte funktionieren. Also zurück in unserem Spiel, lass uns das laufen lassen. Und mal sehen, ob das funktioniert hat. Also werden wir auf den Stacheln stehen, einmal getroffen werden, komm schon, hol ihn zweimal. Da sind wir los. Werde ein drittes Mal getroffen. Okay. Jetzt ist unsere Gesundheit 300. Wenn wir das jetzt abholen, sollten wir 310 haben. Wir haben 320. Warum glaubst du, dass das passiert ist? Mal sehen, was das Problem hier ist. Die Gesundheitsabholung hat es also getan, es hat keine Animation. Es hat einen Box Collider, aber das Problem, Oh, willkommen zurück. Also glaube ich, dass ich nur einen Bruchteil einer Sekunde brauchte , um zu wissen, was aufgrund der Magie der Bearbeitung passiert ist . Aber ich habe ein paar Dinge durchgemacht. Verstehe einfach, ob meine Theorie richtig war und das war es. Ich dachte also, dass wir zwei Collider hier haben. Wir haben den Capsule Collider des Spielers und wir haben den Box Glider des Spielers. Einer von ihnen ist 2. Stellen Sie sicher, dass wir nicht über Mauern hinausgehen. Also haben wir eines gemacht, das klein ist, damit wir die Illusion haben können , dass dieses Spiel mehr als nur zwei ist. Dies sind die Mauer, die uns nicht wirklich dazu bringt, ein bisschen durch sie zu gehen. Wenn du also weißt was ich meine, bin ich hier drin. Und dann ist der zweite tatsächlich, aus dem Hut geschossen zu werden . Also das Problem, was passiert? Ich versuche dir zu zeigen, dass ich von diesen Stacheln getroffen werde. Und wenn ich jetzt mit diesen beiden Collidern gehe, wirst du feststellen, dass ich, wenn ich einen von ihnen auswähle, dass ich 20 bekomme, weil ich es mit beiden Segelflugzeugen abhole . Wenn ich es einfach mit dem Collider oben abhole, schau dir den 520 an, du wirst sehen, dass es nur 530 ist. Wenn ich es nur mit meinem Kopf aufhebe, bekomme ich 540. Also 10, was gut ist. Und wenn ich es von der Seite abhole, geht's los. Sie können sehen, dass es 20 hinzugefügt hat. Das ist also das Problem, das wir beheben müssen. Jetzt möchte ich, dass Sie sich einen Moment Zeit nehmen und über eine Lösung für dieses Problem nachdenken. Also werde ich dir nur geben, das ist keine Herausforderung, keine effiziente Herausforderung. Ich gebe dir nur ein bisschen Zeit. Okay, die Zeit ist um. sehen, was wir hier drin machen werden. Das Ganze, was wir sicherstellen müssen, ist, dass diese Gesundheitsabholung mindestens einmal abgeholt wurde. Was wir also tun werden, ist, dass wir einen privaten Bool erstellen und das heißt „Pick it up“. Es wurde also abgeholt. Und hier drin werden wir sagen, dass, wenn es der Spieler ist und er nicht abgeholt wurde, also fügen wir das Ausrufezeichen hinzu, dann werden wir abholen, aber wir setzen diesen Pickup auch auf wahr. Sobald wir es einmal abgeholt haben, das war's, können wir es nicht mehr ein anderes Mal abholen. Also lasst uns das aufheben. Lass uns wieder in unser Spiel gehen und lass uns das testen. Also führen wir das Spiel aus, wir werden von den Stacheln getroffen. Und wenn wir dann an den Seiten laufen, gehen wir los, wir bekommen 10. Egal wie sehr wir es gerade versuchen, wir sollten dies niemals um 20 erhöhen. Also jetzt gehe ich durch, dass du auf die Seiten gehst, wir bekommen immer 10 und bekomme nie eine zusätzliche 20 oder so. Ich hoffe es gefällt dir. Ich hoffe, das würde dir gefallen. Und ich war mir wirklich nicht sicher, was das Problem gelöst wurde. dauerte vielleicht zwei bis drei Minuten, aber ich erinnere mich, als ich anfing , hat mich das vielleicht zurückgebracht. Heute muss man herausfinden, was zur Hölle mit diesen Spielen falsch war oder warum wurde der große Anfang nicht aufgegriffen? Das ist lange her. Aufgrund meiner Erfahrung verstehe ich die Dinge etwas schneller und das ist es, verstehe ich die Dinge etwas was ich möchte, dass Sie wissen, dass ich manchmal, obwohl ich weiß, dass ich so viel Erfahrung habe, Ihnen die Ergebnisse beibringe. Ich mache auch viele Fehler und Dinge sind passiert, von denen ich keine Ahnung habe warum, obwohl ich dieses Spiel vorher erstellt habe und alles durchgemacht habe. Aber ich bin auf dieses Problem gestoßen, also hoffe ich, dass es dir gefällt. Ich hoffe, Ihnen gefällt meine Transparenz, dass ich Ihnen immer die Fehler zeige, die ich gemacht habe, obwohl es einigen Leuten nicht gefällt, sagen sie das, wie kann ein Unstrukturierter Fehler machen? Oh nein, jeder versucht perfekt zu sein. Ich weiß, dass es niemand ist. Vertrau mir. Jeder benutzt Google, um herauszufinden, was das Problem war. Und diesen Fall habe ich nicht getan, weil ich es bereits getroffen und vorher repariert habe , also hoffe ich, dass es Ihnen gefällt. Stellen Sie sicher, dass Sie Ihre Dateien inszenieren und wir sehen uns im nächsten Video. 62. Random: Willkommen zurück meine Spieleentwickler zu einem weiteren sehr langen Video. Aber in diesem ist es das wert. Wie jedes Mal, wenn wir getroffen werden, brechen wir ab. Wir können sehen, dass wir diesen Artikel haben. Wir holen es nicht sofort auf, aber nach einer gewissen Zeit, nicht nur das, sondern jetzt, wenn wir den Feind und er stirbt, fällt er irgendwann auch und Gegenstand. Und wir haben offensichtlich nicht die Art und Weise repariert , wie die Ebenen miteinander interagieren. Aber ich denke, weil dieses Video so lang war, hatten wir nicht viel Zeit. Also ohne weiteres oder tun Lass uns keine Zeit mehr verschwenden und lass uns loslegen. Oh, Fall. Jetzt haben wir den Gesundheitspickup funktioniert, aber nicht sehr lustig, wenn Sie die ganze Gesundheit um sich herum haben. könntest du machen. Sie könnten einfach ein paar Gesundheitsabholungen in Ihrer Welt festlegen und sie dann abholen, sobald Sie bestimmte Räume oder was auch immer gefunden haben . Aber ich denke, es ist viel besser, wenn man eine Art Mechaniker haben kann , der die Gegenstände fallen lässt und es Ihnen ermöglicht, sie abzuholen. Wenn wir zum Beispiel das Zerbrechliche hier haben, diese Urnen, wenn wir sie zerquetschen oder brechen, dann haben wir eine Art Gesundheitspickup oder wenn wir einen bestimmten Feind töten, dann haben wir auch die Gesundheitspickup bekommen fiel ab. Also lasst uns zuerst das machen, ich gehe in die Prefabs, wo wir haben, wo ist es? Wo sind die Waffen, Kugeln, Blut, Kugeln, Feind. Anscheinend haben wir also nichts. Oh, weißt du was? Lassen Sie uns einen neuen Ordner für die Pickups erstellen. Und dann werden wir die Gesundheitsabholung da drin fallen lassen. Großartig. Jetzt haben wir das. Das nächste, was wir tun wollen, ist dass wir in die Skripte gehen werden. Wir werden die Pickups finden und wir werden ein neues C-Sharp-Skript erstellen , das Item Drop genannt wird. Warum machen wir das? Zuallererst wollte ich das einfach für eine Sekunde schließen. Was ich also tun wollte, ist, dass ich diesen Code sofort hier in die Gesundheitspackup aufnehmen wollte oder ich meine, tut mir leid, in das Zerbrechliche. Wo sind sie? Oh, wir haben es gerade geschlossen also wollte ich es sofort zum Zerbrechlichen hinzufügen. Sobald wir kaputt gehen, bekommen wir einen bestimmten Gegenstand. Aber dann dachte ich, was wäre, wenn ich wollte, dass einige Feinde Gegenstände fallen lassen nicht viel effizient wären , weil wir mehrere Dinge wollen. Vielleicht wollen wir, um Gegenstände fallen zu lassen , andere Verdienste, vielleicht nicht nur das zerbrechliche, vielleicht weiß ich nichts, was Gegenstände fallen lässt. Ich dachte, es wäre besser, einfach ein Skript zu erstellen , das der Item-Dropper ist, und es zu jedem Objekt hinzuzufügen , das wir einen Gegenstand fallen lassen möchten sobald er stirbt oder tötet oder was auch immer. Okay, also lasst uns weitermachen und das machen. Das erste Ding. Zuerst werden wir ein serialisiertes Feld erstellen, das sicherstellt, dass wir die Möglichkeit haben zu überprüfen, ob er Gegenstände fallen lässt, ob er oder sie oder was auch immer Gegenstände fallen lässt. Die zweite Variable, die ich erstellen möchte , ist ein serialisiertes Feld, das vom Typ Spielobjekt ist. Und wir werden es zu einem Array machen und es wird die Elemente zu fallen sein . Jetzt fragen Sie sich vielleicht, dass wir nur einen Gegenstand fallen lassen müssen , nämlich die Gesundheit. Aber später erstellen wir eine Münze und vielleicht möchten Sie sogar eine Art Leveling-Up-Systeme erstellen oder etwas fallen lassen , das genau wie wir es in Hades getan haben. Also Artikel zum Ablegen, wir haben es als Array. Als Nächstes, was wir als serialisiertes Feld haben, wird es vom Typ float und es wird als „Items drop“ oder „Item Drop“ bezeichnet . Zufall. Und wir setzen es auf 0,5. Es ist also eine Chance von 5050. Und warum wollen wir das haben? Nun, wir wollen nicht, dass alle unsere Zerbrechlichen oder alle unsere Feinde diese Gegenstände fallen lassen. Wir möchten also eine Chance von 5050 haben, einen Gegenstand zu bekommen. Großartig. Jetzt gehe ich fort und entferne den Start und das Update. Wir werden sie schaffen, wenn wir sie brauchen. Und ich werde ein öffentliches ungültiges Drop-Item erstellen. Und das wird einfach weitergehen und eine zufällige Ganzzahl erstellen. Und zuerst werden wir nach ein paar Bedingungen suchen. Der erste wird also zufällig sein. Der Punktwert ist geringer als die Möglichkeit des Einzelteils zu sinken. Und was ist ein zufälliger Punktwert, der den Mauszeiger darüber zeigt und see gibt einen zufälligen Float zwischen 0, eins zurück. Wenn wir zum Beispiel einen Nullpunkt bekommen, denn es ist weniger als 0,5, wollen wir instanziieren. Dies ist eine großartige Möglichkeit, um zu vermeiden, dass das Ganze weniger als eins ist, mehr als 0,5 oder wo immer uns dies nur einen Zufallswert zwischen 01 gibt. Wenn es größer ist, instanziieren wir. Wenn nicht, dann wollen wir es. Dann werden wir fortfahren und eine zufällige Ganzzahl erstellen. Also zufällige Artikelnummer und sie wird gleich dem zufälligen Punktbereich und Bereich sein. Und hier drin haben wir einen Bereich zwischen 0 und den zu fallenden Elementen. Punktlänge So ziemlich einfach, was wir hier drin machen. Wir wissen das alles bereits und dann werden wir fortfahren und die zu fallenden Gegenstände instanziieren. Und wir werden es als zufällige Artikelnummer haben. Wir werden es auf die Transformationspunkt-Position und die Transformationsdrehung einstellen . Da sind wir los. Also werde ich das speichern. Ich werde gehen, oh, und bevor wir das tun, werde ich hier auch eine Bedingung schaffen , die ich aus irgendeinem Grund völlig vergessen habe. Ich werde sicherstellen, dass wir , wenn Gegenstände fallen lassen, das alles tun werden. Und fügen wir einfach ein paar geschweifte Klammern hinzu, damit es so besser ist. Ich mag es nicht, mehrere Zeilen unter einem einzigen Drop-Items zu haben . Okay, großartig. Speichern Sie das damit nicht wieder in unserem Spiel. Und lass uns in den zerbrechlichen Topf gehen. Und das ist die ein bisschen geschlossen. Und dann fügen wir hier einen Item Dropper hinzu. Und wie Sie sehen können, gibt es ein Problem. Sie können sehen, dass wir die deserialisierten Felder nicht haben und Sie sehen, dass hier etwas erwartet wird, das heißt, wir haben eines der nicht geschlossen, okay, also los geht's. Jetzt speichern wir das. Jetzt sollten wir hier drin das Große sehen. Also lasse ich Gegenstände, Gegenstände auf Tröpfchen fallen , gib ihm einfach die Gesundheitsabholung. Schließen wir das oder Lockdown gehen tatsächlich in die Prefabs. Wo ist es, wo ist es Abholungen und die Gesundheitsabholung. Jetzt haben wir nur noch die Gesundheitsabholung. Und nur zu Testzwecken setze ich die Elemente so ein, dass die Chance auf 1 fallen. Also lassen wir immer einen Artikel fallen, speichern Sie das. Und jetzt ist das Letzte, worauf wir achten wollen, dass in wo sollte es in den Break Blasen sein? Wenn wir hingehen, wo ist es? Wo ist Burry? 2ls zerbrechlich. Und hier drin werden wir prüfen, nachdem wir sichergestellt haben, dass wir, wo ist es das Objekt instanziieren. Wir möchten auch weitermachen und prüfen, ob die Komponente und den Artikel abrufen. Und wir werden prüfen und hoffen, dass wir hier eine Massenkleinigkeit haben, die es tun wird, weil es ein serialisiertes Feld Lassen Sie uns einfach eine Rendite erstellen. Public bool ist also Item, Item Dropper. Und wir werden einfach hierher zurückkehren, Wahr oder was auch immer es ist, der Drop-Item. Dies wird also wahr zurückgeben, wenn ein Objekt fallen lässt, damit wir zurückgehen können und das Wort war es, okay, Der zerbrechliche Punkt ist Artikeltropfer. Für diesen Item Dropper lösen wir, sobald der Spieler hineinstürzt, sobald der Spieler hineinstürzt, die Pause aus, wir instanziieren die Teile und wir prüfen, ob er ein Item-Dropper ist, dann werden wir wieder darauf zugreifen der Dropper „Komponentenelement abrufen“, Element ablegen. Los geht's, heb dir das auf. Und weißt du was, ich dachte, dass diese wenn Aussage hier vielleicht nicht so notwendig ist. Also was lassen wir es einfach entfernen. Und jetzt erinnere ich mich, warum ich es vergessen habe, weil es dort nicht nötig war. Also wieder hier drin, außer dass alles gut funktionieren sollte. Das einzige, was mich immer noch stört , ist , dass wenn wir versuchen, die Komponente zu bekommen, aber sie nicht da ist, also haben wir sie nicht zu einer Art zerbrechlichem Topf hinzugefügt. Vielleicht wird das ein Problem verursachen, wenn dies der Fall ist. Der beste Weg, dies zu beheben, besteht darin, eine zusätzliche If-Bedingung zu erstellen, eine zusätzliche Schutzschicht wenn der Dropper Komponentenartikel abrufen, und es ist anders als null, bedeutet das, dass wir diesen Artikel genau hier haben. Dann können wir fortfahren und nach dem Artikel Dropper suchen. Dies gibt uns also eine zusätzliche Schutzschicht , wenn wir den Komponentenelement-Dropper nicht haben, wenn er gleich null ist, dann werden wir prüfen, ob wir keine Artikel fallen lassen können, und dann werden wir tatsächlich eine Artikel. Also speichere dir das jetzt noch einmal zurück, mal sehen. Nun ist das so, ehrlich gesagt, ich mag das nicht sehr, weil wir wissen sollten, wie wir dieses Spiel kreieren, Bu, aber das ist ein Worst-Case-Szenario. Also führe das Spiel aus. Und jetzt, wenn wir versuchen, eine Rolle zu brechen, lass mich einfach eine Zerstörung bekommen. Und wenn wir dann versuchen, den Teil zu brechen , den Sie sehen, gehen wir los. Wir haben es zerstört. Und Sie können sehen, dass sich unsere Gesundheit gerade von 500 auf 510 bewegt. Aber es gibt ein Problem. Hast du es gesehen? Hast du gesehen, dass der Artikel fallen gelassen wurde? Nein, das hast du nicht, aber die Gesundheit hat zugenommen. Was ist also das Problem? Nun, das Problem hier ist, dass es extrem schnell ist und wir nicht wollen, dass dies sofort geschieht. Wir möchten tatsächlich den Artikel sehen, den wir fallen gelassen haben , bevor wir ihn sofort abholen. Also werde ich es dir als Herausforderung ausstellen. Und Ihre Herausforderung besteht darin, die Zeit zu verzögern bis wir einen Artikel abholen können. Erstellen Sie also zuerst ein neues Skript. Heb die Ebene erneut auf. Warum ist das? Dies ist ein erstaunliches Video, wie Sie Ihr Spiel strukturieren. Da wir den Layer aufnehmen, können wir die Zeit verzögern, bevor wir einen Artikel abholen. Und wir möchten diese Verzögerung nicht nur für das Gesundheitsskript hinzufügen und müssen es dann jedes Mal und auf alle Münzen, Power-Ups und so weiter kopieren jedes Mal und auf alle Münzen, . Was wir also tun werden, ist einfach ein neues Skript für die Abholung der Ebene zu erstellen und zu jedem einzelnen Gegenstand hinzuzufügen , den wir aufnehmen möchten Dies ist viel einfacher und gesünder, wenn es um Spieleentwicklung und Spieldesign geht -Struktur und so weiter. Deshalb erstellen wir ein neues Skript. Dann erstellen Sie einen Float für die Zeit, bevor wir abholen können Sie müssen eine boolesche Variable erstellen, die prüft, ob wir den Artikel tatsächlich abholen können oder nicht. Erstellen Sie ein Kernteam, das nach einiger Zeit, nach einer gewissen Zeit, die offensichtlich die hier neu erstellte Float-Variable ist, offensichtlich die hier neu erstellte Float-Variable es uns ermöglicht, den Gegenstand abzuholen. Und schließlich, wo sollten wir sein? Sollen wir diese Beschichtung nennen? Wo sollen wir die Schulroutine nennen? Also offensichtlich gut, dass ich nicht gut programmieren kann, weil ich schrecklich in der Grammatik und allem anderen bin , weißt du, was ist der Sinn des letzten Satzes? Pausiere das Video jetzt und gehe zur Herausforderung. Okay, willkommen zurück. Eine Sache, die ich tun wollte, ist ich in die Gesundheitsabholung gehen möchte. Nein, nicht der Gesundheitsabnehmer, der zerbrechliche Teil. Und ich werde die Änderungen auf alle anderen Teile anwenden , aber stellen Sie sicher, dass Sie beim Hinzufügen eines Pots sicherstellen, dass Sie überprüfen, ob ein Artikel fallen lässt oder nicht und Sie müssen sich ändern Die Gegenstände lassen offensichtlich die Chance fallen. Und Elektron, natürlich werden wir das ändern. Sie also immer daran, wenn Sie neue Bots hinzufügen. Und dann müssen wir in den Raum gehen, wo ist es der Raum, die Feinde. Wir haben ein paar Feinde. Lassen Sie uns einfach diesen überprüfen und ihm einen Artikel-Dropper hinzufügen. Da sind wir los. Also lässt er einen Gegenstand fallen. Was ist der Gegenstand, den er fallen lässt? Es wird sein Deshalb sperren wir es immer ab. Dann fügen wir den Artikel hinzu, der es auf 11 gesetzt hat. Sollten wir einen Artikel fallen lassen? Gehen wir hier in den NMI-Controller. Wo stirbt er? Beschädige den Feind, wenn die Gesundheit kleiner als 0 ist, instanziiere die Stroh-Spielobjekte. Also der Deaf Splatter. Wir werden auch hier einchecken, ob die Komponente, was jetzt? Während das Zerbrechliche, kopieren wir diesen. Und dann haben wir einfach hier eingeklebt. Das ist also redundanter Code. Aber ich lasse es wegen all der anderen effizienten Dinge, die wir geschaffen haben, rutschen . Also prüfen wir, ob wir einen Artikel-Dropper haben, dann prüfen wir, ob er ein Pipette ist, und dann legen wir den Gegenstand fallen. Versuchen wir also, dies an dem Skelettfeind zu testen , der die Änderungen anwendet. Jetzt sollten alle Feinde das Skript haben , um das Spiel auszuführen. Und ich weiß, dass dies überhaupt nicht Teil der Herausforderung war, aber ich möchte es nur testen, damit wir die Kugeln endlich stirbt, und wir können einen Gegenstand aufheben , der sieht, ob es funktioniert. Ich verstehe es. Ich hole den Artikel ab. Exzellent. Jetzt ist die nächste Sache die Verzögerung, was die eigentliche Herausforderung ist. Also lasst uns ins gehen, ich weiß, dass dies eine Randnotiz war, aber vielleicht haben Sie vielleicht nicht genau gewusst, was Sie in diesem Fall tun sollen . Darüber machen Sie sich keine Sorgen. Gehen wir in die Drehbücher ein. Die Pickups, und klicken Sie mit der rechten Maustaste hier, erstellen ein neues C Sharp-Skript, das der PEC sein wird. Heb auf, das große, oops, Heb die Ebene auf, drücke Enter. Warten Sie, bis dies kompiliert ist, und doppelklicken Sie hier rein Doppelklicken Sie hier rein. Und mal sehen, was wir tun werden. Zunächst werden wir das serialisierte Feld für den Float erstellen , das ist die Zeit vor der Abholung. Und stellen wir es einfach auf etwa 0,5 Sekunden ein. Dann werden wir einen privaten Bool erstellen abgeholt werden kann. Speichern Sie das jetzt und fangen Sie an. Wir werden sicherstellen, dass dies als falsch aufgenommen werden kann . Und dann werden wir das Coubertin Und hier kreieren , der der Augenzähler sein wird. Und es wird Pick-up genannt, cool down. Ja, klar, heb ab, cool down. Und dann werden wir hier drin nachgeben, zurückkehren, neu. Warte vier Sekunden. Und ich bin mir ziemlich sicher zu diesem Zeitpunkt, wissen Sie, Co-Routinen so gut, dass Sie mich jedes Mal langweilen , wenn Sie sagen, dass die Rendite Sie für Gewichtssekunden zurückgibt. Du sagst wahrscheinlich Michael, wir wissen bereits, wie das geht. Bitte hör auf. Nee. Wir werden es lernen. Er hat Gantt abgeholt wird, ist gleich wieder wahr. Spar dir das auf. Und jetzt gehen wir in den Item Dropper. Und es tut mir leid, ich meine, die Gesundheitsabholung. Und hier drin werden wir prüfen , ob es abgeholt wurde. Und wir werden es auch überprüfen. Und wenn die Get-Komponente, die aufgenommene, die Ebene, das wie soll sie heißen? Wo ist es? Kann abgeholt werden? Lass uns weitermachen und das zurückgeben. So öffentlich boolean, kann es abgeholt werden. Und wir werden einfach zurückkehren. Kann variabel abgeholt werden. Okay, kein sehr kreativer Name für diesen, aber es funktioniert. Und hier ist ein Problem, dass die Typvektordefinition aufgegriffen werden kann. Okay? Kann also abgeholt werden. Klar, sagen wir mal, hat eine Methode genannt. Also glaube ich, dass es nur wegen des Namens liegt. Sie können die Variable also nicht so benennen, wie Sie die gewünschte Methode benennen. Wir nennen es also einfach Methode weil wir die Phantasie einer kleinen Fruchtfliege haben und dann Methode abgeholt werden können. Und das sollte den Trick machen. Nun war das Letzte und der letzte Teil dieser Herausforderung, wo nennen wir Colton? Ich hoffe, Sie haben darüber nachgedacht und ich hoffe, dass es sofort angerufen werden sollte und beginnen sollte. Also am Anfang beginnen wir mit der Co-Routine. Das kann sein, Nein, ich meine, abholen, abkühlen, abkühlen, abkühlen. Da sind wir los. Also warum und fange an? Weil wir das Element instanziieren. Sobald wir den Gegenstand instanziieren, hat er die Tonabnehmer-D-Schicht, wir starten sofort den Colton. Also zurück in unserem Spiel. Mal sehen wir hier drin die Ebene. Heb die Ebene auf. Wie viele, wie lange wartet es? Und ich werde die Änderungen auf alle anwenden. Jetzt, wenn wir das Spiel laufen, sollten wir sehen, dass wir gehen, sobald wir die Break Bubbles getroffen haben. Wir haben die Bremsschrauben getroffen. Wir holen den Artikel nicht sofort ab. Wir sehen, dass es fallen gelassen wird. Da sind wir los. Jep. Du siehst gerade, dass es immer noch da ist. Wir haben es nicht abgeholt, aber jetzt können wir es, lasst uns etwas anderes versuchen. Lassen Sie uns die Verzögerung auf etwa drei Sekunden hinzufügen und sehen, ob es funktioniert. Im wirklichen Leben. Wir werden getroffen. Wir werden das zerstören und versuchen, es aufzuheben. Okay, das hat also ziemlich schnell funktioniert und ich frage mich, was das Problem hier ist. Oh, okay, willkommen zurück. Der größte Fehler, der jemals gemacht wurde, dass ich diesen Gesundheitspickup auf 10 geändert habe, aber das eigentliche Prefab hat sich nicht geändert. Wenden wir also die Änderungen an. Ich habe mich gefragt, dass alles reibungslos funktioniert, aber aus irgendeinem Grund funktionierte das nicht. Also dort gehen wir mit dem Steroid und jetzt haben wir 10, 10 Sekunden bevor wir es tatsächlich abholen können, aber wir werden es auf etwa 0,5 einstellen. Spar dir das auf. Ich hoffe es gefällt dir. Ich hoffe, Ihnen haben all die verschiedenen Mechaniken und kleinen Anpassungssachen gefallen all die verschiedenen Mechaniken und das Hinzufügen und Entfernen und Sicherstellen , dass wir verschiedene Dinge, verschiedene Gegenstände anwenden können. Ich weiß also, dass das ein langes Video war. Danke für Ihre Aufmerksamkeit. Vielen Dank, dass Sie alle Ihre Dateien jedes Mal inszeniert haben und alle Fortschritte gemacht haben, die Sie erzielt haben. Ich danke Ihnen auch für die widerstandsfähige, erstaunliche tolle Rezension, die Sie mir hinterlassen haben und wir sehen uns im nächsten Video. 63. Waffen aufnehmen: Willkommen zurück, Meine Lieblingsspielentwickler. Ich weiß, dass dies ein langes Video ist, aber wir machen viele Dinge. Wir lernen hier viele raffinierte kleine Tricks. Wenn wir also das Spiel laufen, werden Sie feststellen, dass wir gerade nur den Stempel haben und den Waffenarm wir sollten die Pistole haben, alles funktioniert gut. Wir haben die Schrotflinte am Boden. Uw, was denkst du wird passieren, wenn wir es abholen? Also bin ich gegangen, ich hole es ab. Da sind wir los. Wir können sehen, dass ich eine Schrotflinte habe und wir können die Kugel dieser Schusswaffe sehen. Wir können nichts ausschalten. Wir können zwischen Pistole und Schrotflinte wechseln, aber machen wir uns darüber keine Sorgen. Alles wird passieren. Alles wird zu gegebener Zeit behoben. Verschwenden wir also keine Zeit mehr mit diesem großen langen Video und lasst uns anfangen. Oh, Fall. Also Zeit, die Art und Weise einzurichten, wie wir unsere Waffen abholen. Im Moment ist die Art und Weise, wie wir unsere Waffen haben, gut genug. Wir wechseln, wir machen alles, aber so wollen wir nicht, dass unser Spiel funktioniert. Wir wollen nicht einfach mit all unseren Tasten beginnen und einfach zwischen ihnen wechseln. Wir wollen eine Art Mechanik haben, die es uns ermöglicht, sie zu haben oder in irgendeiner Weise zu erwerben. Und eines dieser Dinge ist, dass wir unsere Waffen an bestimmten Stellen und auf dem Niveau abholen können . Also lasst uns weitermachen und das machen. Das erste, was wir tun werden, ist, dass wir in den Untergangsspieler gehen werden. Wir werden die Waffen entfernen , die wir nicht halten. Also werde ich das Gewehr entfernen, muss das Skript öffnen. Also entferne das Gewehr, entferne die Pistole und geh zurück in unser Spiel. Da sind wir los. Nun müssen wir sicherstellen, dass wir sie auch hier aus den verfügbaren Waffen entfernen. Also entferne ich diese leeren Slots, speichere das auf und lass uns sehen, was wir hier haben. Okay, wie Sie sehen können, wir das auch müssen wir das auch ändern und ich sage Ihnen warum. Lasst uns einfach die Dinge aus dem Weg schaffen. Momentan setzen wir die aktuelle Waffe auf eins und stellen dann die Waffenoberfläche ein, aber eine ist hier nicht verfügbar. Mal sehen, was passiert, wenn wir unser Spiel ausführen. Wir sollten sehen, dass wir hier einen Pfeil haben, und dieser Fehler ist ein Argument außerhalb des Bereichs. Ich doppelklicke hier rein, es bringt mich zur Einstellwaffe. Das bedeutet, dass die aktuelle Waffe innerhalb der verfügbaren Waffen außerhalb der Reichweite ist . Und natürlich liegt es daran, dass wir den Strom auf eine setzen , während wir nur eine Waffe haben. Also der einzige Index, auf den wir auf eine 0 zugreifen können. Ich könnte das auf 0 setzen, wenn ich wollte. Aber was passiert , ist, dass wir jedes Mal, wenn wir das Spiel starten , zum Beispiel die Schrotflinte und das Gewehr haben und das Gewehr an ist, während die aktuelle Waffe anders ist als Sie, was ich meine. Der Index wird also fehl am Platz sein und darum haben wir uns im letzten Video nicht gekümmert. Also zeige ich Ihnen, was passiert, obwohl dies ein bisschen dauern wird, um es zu verstehen, aber keine Sorgen. Ich möchte sicherstellen, dass alles richtig verstanden wird und warum wir all diese Dinge tun. Also Pistole, Schrotflinte, Gewehr, wenden Sie die Änderungen an. Nehmen wir zum Beispiel an, ich schalte die Pistole aus und schalte das Gewehr aus. Also was wir jetzt als Schrotflinte haben sollten, wenn wir anfangen. Also werde ich das laufen lassen. Da sind wir los. Wir haben die Schrotflinte schießen, aber ich habe die Pistole und die Benutzeroberfläche. Wenn ich noch einmal darauf klicke, dann habe ich die Schrotflinte, dass ich das Gewehr habe. Wie Sie sehen können, sind die Dinge am Anfang seltsam. Anstatt das zu tun, was wir tun werden, wir dies entfernen und wir werden eine for-Schleife erstellen. Also vier und ich ist gleich 0, ich bin weniger als die verfügbare Waffenpunktzahl, zählen, weil wir Listen verwenden und ich plus plus. Und hier werde ich prüfen, ob die verfügbare Waffe, die Position, in der ich den GameObject-Punkt punkte, aktiv in der Hierarchie, das bedeutet, dass sie auftaucht und wir uns tatsächlich dafür entschieden haben , dem Spieler verfügbar zu sein? Dann werden wir die aktuelle Waffe gleich I einstellen. Und so sollte alles einwandfrei funktionieren. Wenn ich also wieder reingehe, habe ich die Schrotflinte. Ich führe das Spiel aus. Die Waffe sollte genau hier stimmen. Los geht's, Schrotflinte. Testen wir es am Gewehr. Also schalte das aus, führe das Spiel aus. Jetzt sollten wir das Gewehr haben. Und los geht's, alles funktioniert einwandfrei. Und schließlich haben wir die Pistole getestet und das Gewehr abgenommen, das laufen lassen. Und wir sollten die Pistole haben. Okay, großartig, also funktioniert alles gut. Jetzt habe ich ein bisschen Spaß gemacht, das zu tun. Keine Sorge, aber solange das aus dem Weg ist, denn es wird wichtig sein, wenn wir anfangen, Waffen aufzuheben. Das erste, was wir tun müssen, ist, dass wir das Pickup-Objekt erstellen müssen , mit dem wir interagieren werden. Und ich habe diese drei Sprites genau hier erstellt. Und der Unterschied zwischen den regulären Sprites und den Waffen und diesen ist, dass ich ein bisschen weiße Schicht um die Konsole herum hinzugefügt habe . Wir können sie auf der Welt sehen. Also gehe ich in die Sprites, klicke hier rein, erstelle. Nein. Erstellen Sie einen neuen Ordner, der das Waffen-Backup sein wird . Drücken Sie Enter, öffnen Sie das. Oder wir hätten die Pickups hinzufügen können, aber darüber keine Sorge. Mehr Ordner zu haben, schadet niemandem. Wie Sie sehen können, gibt es einen weißen Umriss um die Schrotflinte. Wenn ich es also hier hinzufüge, setze es auf den Spieler. Und ich werde nur all diese 32 machen und sie darauf hinweisen. Wenden Sie die Änderungen an. Da sind wir los. Wie Sie sehen können, hat die Schrotflinte diesen weißen Umriss , damit wir sie richtig sehen und arbeiten können. Es war keine große Sache, wann immer wir die Waffe hielten weil wir den Spieler als Hintergrund haben. Aber jetzt müssen wir sicherstellen, dass wir die Schrotflinte oder eine Pistole und Waffe sichtbar und leicht sehen können . Und wenn es dir nicht gefällt, habe ich ehrlich gesagt eine Stunde gebraucht, um das in Photoshop zu tun. Ich habe keine Ahnung wie gut oder schlecht es ist. Vielleicht zucken einige von euch bei der Arbeit zusammen, aber persönlich war es mein Bestes. Lasst uns eins fortsetzen. Was wir also hier drin machen werden ist, dass wir das als Schrotflinte behalten. Wir werden eine Komponente hinzufügen. Offensichtlich wird es der Collider sein. Also ein Box Collider 2D. Mal sehen, wie groß das ist. Und vielleicht können wir die Größe auf dem X und dem Y etwas vergrößern . Muss die Waffe nicht ganz passend treffen , um sie aufzuheben. Also nur ein bisschen und habe es als Auslöser. Das sparen wir. Und das nächste, was wir tun werden, ist offensichtlich ein Verhalten. Also gehe ich in die Skripte, gehe in die Pickups, gehe in die Pickups, klicke hier hinein und erstelle ein neues C-Sharp-Skript , das das Waffen-Backup sein wird. Drücken Sie Waffen betreten, heben Sie auf und warten Sie, bis sie zum Schrotflinten-Pickup kompiliert werden. Und lasst uns das Drehbuch öffnen und sehen, was wir hier machen werden. Okay, also das erste, was wir brauchen, da wir tatsächlich wissen müssen , welche Waffe das sein wird. Die Schrotflinte wird uns offensichtlich die Schrotflinte geben. Also werde ich hier ein serialisiertes Feld schaffen, das das Waffensystem vom Typ Stadtsystem sein wird, das die eigentliche Waffe sein wird, die wir aufnehmen werden. Spar dir das auf. Das nächste, was wir tun wollen, ist, dass wir dieses Objekt aufnehmen können. Und bevor wir dieses Objekt tatsächlich dem Spieler hinzufügen können, möchten wir sicherstellen, dass er Objekt nicht bereits hat. Also möchte ich keine 10 Schrotflinten tragen. Ich brauche nur eine einzige Schusswaffe, um mir zur Verfügung zu stehen. Lassen Sie mich zuerst so unten. Gehen wir zum Prefab, gehen zu den Waffen und fügen wir die Schrotflinte hier als Waffe hinzu. Also hoffe ich, du hast verstanden, was ich meine. Ich will keine Schrotflinte holen solange ich schon eine Schrotflinte habe. Ich möchte eine Schrotflinte nur aufnehmen, wenn sie nicht in meinen verfügbaren Waffen festgehalten wird. Und das ist Ihre Herausforderung, durch die Schichtgewehre zu schauen. Zunächst müssen Sie also einen Unternehmer erstellen Geben Sie ein und prüfen Sie, ob wir mit einem Spieler kollidiert sind. Offensichtlich wollen wir nicht, dass unsere Skelette uns angreifen, geschossene Waffen. Wen dann musst du innerhalb der Methode eine Variable erstellen , um zu verfolgen, ob wir die Waffe auf dem Spieler gefunden haben oder nicht. Sie müssen die ganze tiefe Schicht der Waffen durchgehen und offensichtlich überprüfen, ob wir die Waffe tragen. Sie haben den GAN Namen abgeholt, also brauchen wir den Waffennamen und das Telefon, um auf den Waffennamen zuzugreifen und greife auf die verfügbaren Waffen zu, du musst ein paar zusätzliche Methoden erstellen. Das ist also eine große Herausforderung, eine sehr schwierige Herausforderung, aber ich weiß, dass Sie der Aufgabe gewachsen sind. Nehmen Sie sich Zeit, spielen Sie herum, machen Sie Fehler, machen Sie sich keine Sorgen darüber. Ich werde dir helfen, nachdem wir es versucht haben. Du verlierst also nichts. Pausiere das Video jetzt und erreiche Alan. Kay, willkommen zurück. Das erste, was ich tun werde, ist, den Start und das Update zu entfernen. Ich werde den Unternehmer erstellen, geben Sie 2D ein. Und hier prüfen wir natürlich, ob das collision.com Tag als Spieler ist. Und jetzt können wir weitermachen. Jetzt die nächste Sache und etwas hier, vielleicht hätten wir sofort alle Pickups eine bestimmte Ebene haben und sie nur mit der Spielerebene interagieren können, die ein bisschen schlau gewesen wäre und vielleicht haben wir nicht alle diese Bedingungen jedes Mal, wenn wir eine Abholung verwenden möchten. Also nur eine Stille, ich hab's vergessen. Vielleicht kannst du es an dir selbst machen. Lassen Sie uns als nächstes fortfahren. Was wollen wir? Nun, offensichtlich wollen wir diese boolesche Variable, die diese Waffe auf den Spieler aussagt . Und das wird auf „false“ gesetzt. Okay, das nächste, was wir tun müssen, ist, dass wir eine foreach-Schleife erstellen müssen , die überprüft. Und es wird nach Waffen suchen oder Waffen. Es ist also das Waffensystem. Die zu überprüfende Waffe. Und wo suchen wir diese? Nun, wir suchen nach den verfügbaren Waffen für den Spieler. Auf dem Spieler-Controller, ihrem Ziel, heißt es genau hier. Also werden wir uns die verfügbaren Waffen ansehen, aber offensichtlich verfügbare Waffen, aber offensichtlich ist es ein serialisiertes Feld. Wir wollen es nicht öffentlich und für jedermann zugänglich machen . Was wir also tun werden, ist hier unten, wir werden zu Create gehen und dort siehst du den Fehler, den wir gemacht haben. Wir werden eine öffentliche Liste des Typs Waffensystem erstellen . Also hoffe ich, du hast es versucht, entschuldige mich. Und wir nennen es die verfügbaren Waffen auf Schicht. Da sind wir los. Das ist ein langer Name. Und was wir tun werden, ist einfach die verfügbaren Waffen zurückzugeben . Da sind wir los. Was können wir jetzt hier drin tun und weil wir sofort von der Kollision aus darauf zugreifen können , die wir mit der Get-Komponente kollidiert haben. Und weil wir bereits wissen, dass es der Spieler ist, können wir auf den Player-Controller zugreifen. Und vom Spieler-Controller können wir die verfügbaren Waffen auf den Spieler bekommen . Großartig. Was wir also hier gemacht haben, haben wir die verfügbaren Waffen des Ghetto erstellt indem wir die einfache Rückkehr haben, die eine Liste zurückgibt. Und weil es eine Liste ist, können wir sie hier hinzufügen. Also überprüfen wir die Waffen, um es zu überprüfen. Nun, wie werden wir wissen, ob die Waffe da ist? Was wir tun werden, ist, dass wir eine If-Bedingung schaffen werden. Und hier drin werden wir prüfen, ob die Waffe, die hier drin ist, den Namen der Waffe punktet. Wenn ich also zum Waffensystem gehe, wenn es irgendwo hier drin ist, das Waffensystem, haben wir den Waffennamen, aber wieder ist es ein serialisiertes Feld. sind also okay. Also haben wir den Namen „Waffen bekommen“, UI. Okay. Keine Sorge. Das ist alles was wir brauchen. Ja, das ist alles was wir brauchen. Also hier drin werden wir überprüfen, ob man Waffennamen auf die Waffen bekommt oder nein, eigentlich brauchen wir das nicht. Hol dir den Waffennamen du bist. Und wenn es gleich der Waffe ist, um den Punkt zu überprüfen, erhalten Sie Waffennamen UI. Vielleicht war die Benutzeroberfläche hier nicht der perfekte Name für die Methode, vielleicht ist es besser, sie einfach den Namen zu nennen weil wir sie auf andere Weise verwenden. Wir können auf Create our R doppelklicken und einfach GetWidth und Namen verwenden. Drücken Sie Enter. Da sind wir los. Jetzt haben wir das überall geändert, sogar im Waffensystem. Hier unten kannst du sehen, wie cool das ist. Also Kontrolle, doppelt oder oder, oder, wenn es also da ist, bedeutet das, dass sich die Waffe bereits in den verfügbaren Waffen befindet . Also setzen wir die Waffe auf die Schicht auf „wahr“. Und nachdem wir alle verfügbaren Waffen durchgesehen haben, werden wir nach diesem Check-in hier gehen, wenn die V gun on player nicht stimmt, also bedeutet das, dass es immer noch falsch ist. Wir haben die Waffe nicht, ehrlich. Was wir tun werden, ist, dass wir fortfahren und die Waffe auf der Kollisionspunkt-Get-Komponente instanziieren . Und es wird der Spieler-Controller sein. Und warum mache ich all diese Schritte? Nun, weil ich diese Waffe tatsächlich herstellen möchte. Wenn wir wieder hier reingehen, sieht man, dass die Waffe tatsächlich ein Kind des Waffenarms ist . Also müssen wir dazu bringen, dass wir genau hier sehen können, dass ein Instanziat, wir können das Kind setzen. Also werden wir genau das tun und wir brauchen einen Hinweis auf die Waffen auf. Wenn ich also nach oben scrolle und hier siehst du, dass wir einen Waffenarm haben. Also alles, was wir brauchen, um nach unten und wieder zu scrollen, um ein Publikum zu erstellen. Und was ist los? Es ist eine Transformation, glaube ich. Ja, sag „transformieren“. Also müssen wir eine öffentliche Transformation schaffen und Waffenarm bekommen. Und wir werden einfach zurückkehren und die Waffen zurückgeben. Sind es. Da sind wir los. Das war also eine schwierige Herausforderung, ich weiß, aber ich hoffe, dass Sie zumindest versuchen, es auf halbem Weg zu schaffen. Also hol Waffen. Es taucht nicht auf, weil es eine öffentliche Transformation ist. Hol Waffen an. Also bekommt der Spieler-Controller-Punkt Waffe. Oh, also Spieler Bullet Controller. Okay, also bekommt der Spieler-Controller Waffenarm. Und los geht's, wir sparen das. Wir gehen zurück in unser Spiel. Und mal sehen, wie das funktioniert. Also haben wir das Histon und wir haben die Schrotflinte am Boden. Wir heben die Schrotflinte auf, die darauf verfügbare Waffe, speichern das, führen das Spiel aus. Und jetzt, wenn wir uns der Schrotflinte nähern, passiert nichts, denn wenn ich hier hineinklicke, können wir das sehen, okay. Und abgesehen davon hier drin können wir nachsehen. Okay. Also willkommen zurück. Aus irgendeinem Grund habe ich nichts geändert. Ich führe das Spiel jetzt einfach aus und es scheint zu funktionieren. Da sind wir los. Du siehst, dass wir zwei Schrotflinten abgeholt haben. Warum ist das so? Nun, offensichtlich wegen der beiden Collider, die wir bei uns haben. Und zerstöre diese Schrotflinte auch nicht. Aber wie Sie sehen können, nehmen wir die Schrotflinte immer noch mehrmals auf, obwohl wir das durchschauen und sehen können dass wir die Schrotflinte jetzt schon ehrlich haben. Bevor wir fortfahren, müssen wir als Erstes den privaten booleschen Wert erstellen, genau wie wir es bei der Gesundheitsabholung getan haben. Also können wir das einfach kopieren, es hier einfügen und den Pickup als wahr sagen, und den Pickup als wahr sagen wann immer wir die Waffe tatsächlich abholen. Also hier drin sagte das sofort zu. Und wir prüfen auch, ob wir die Waffe noch nicht abgeholt haben. Wie Sie wissen, liegt das daran, dass wir die beiden Collider bei uns haben. Also speichere das wieder in unserem Spiel auf. Mal sehen, wie das funktioniert. Jetzt führen wir das Spiel aus. Wir haben die Schrotflinte. Oh, und wir müssen auch die Waffe zerstören, entschuldigen Sie mich. Und nachdem wir es abgeholt haben, wenn wir die Waffe instanziieren, wo ist sie für jeden? Hier kannst du also wählen , ob du es auf jeden Fall zerstören willst. Ich glaube, wir sollten es auf jeden Fall zerstören. Selbst wenn wir es nicht wirklich abholen, muss es nicht dort bleiben. Also werde ich das Objekt einfach zerstören, sobald die tiefe Ebene dieses Objekt tatsächlich anführt. Also wieder hier drin, führe das Spiel aus. Und da sind wir los. Wir heben die Waffe und jetzt haben wir die Schrotflinte und unsere Hand. Wie Sie sehen können, schießt die Schrotflinte und wir können die Waffen nicht zwischen der Schrotflinte oder der Pistole ein- und ausschalten . Warum ist das so? Nun, weil wir die Schrotflinte nicht wirklich in die verfügbaren Waffen aufgenommen haben und das müssen wir im nächsten Video reparieren. Das ist auch der Grund warum wir genau hier gesehen haben, dass mehrere Schrotflinten abgeholt werden , ohne dass die Waffe zerstört wurde. Das wird im nächsten Video behoben, in dem wir tatsächlich anfangen, die aufgenommene Waffe in die verfügbaren Waffen einzufügen . Das heißt, ich hoffe es gefällt dir. Stellen Sie sicher, dass Sie Ihre Änderungen übernehmen und wir sehen uns im nächsten. 64. Hinzufügen von Picked: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video haben wir tatsächlich angefangen, die Schrotflinte, das Gewehr und den Stempel hinzuzufügen , die die Waffen zu unseren verfügbaren Waffen sind. Wenn wir das Spiel jetzt ausführen, werden Sie feststellen, dass wir, wenn wir alle, auch ein bisschen Rotation hinzugefügt haben, was unser Spiel viel cooler macht. Jetzt, wenn ich die Schrotflinte abhole, gehen wir los. Du siehst, dass ich die Schusswaffe in der Hand bekomme. Nicht nur das, wenn ich in den Doom Player gehe, sieht man, dass er schon hier drin ist. Und nicht nur das, wenn ich zum Beispiel die Pistole abhole , los geht's. Sie können sehen, dass obwohl es zerstört ist, es nicht wirklich aufheben. Und schließlich das Gewehr und heb es auf. Es ist hier in unseren Waffen, sind in unseren verfügbaren Waffen. Wir können dazwischen wechseln, es macht das automatisch, wie cool ist das? Alle Mechaniker sind perfekt. Lasst uns also keine Zeit mehr verschwenden und lasst uns anfangen. Oh, okay. Während du also zwischen Videos wechselst und Bewertungen für mich hinterlassen hast, weil es mir sehr hilft. Ich habe zwei weitere Waffen geschaffen, Pickup 14, die Pistole 14 das Gewehr, und offensichtlich ist es sehr einfach. Alles was ich getan habe, ist einfach die Schrotflinte zu duplizieren, beim Sprite aufzuheben und die Waffe und den Waffenabnehmer hinzuzufügen. Also gehe ich in die Prefabs, lass uns die Pickups sehen und hören. Und lass uns das den Ordner nennen oder weißt du was, was das macht, lässt die Schrotflinten, Pistole und das Gewehr das retten. Großartig. Jetzt besteht der nächste Schritt darin, den Spieler tatsächlich zu den verfügbaren Waffen hinzuzufügen. Wir müssen also eine Art Methode erstellen, um dies zu tun. Und es wird Ihre Herausforderung sein, eine Methode zu entwickeln, die zu den verfügbaren Waffen beiträgt. Sie müssen also eine Methode erstellen, die einen Parameter, die hinzuzufügenden Nachteile, die hinzuzufügende Waffe oder die Waffe benötigt die hinzuzufügenden Nachteile, die hinzuzufügende , um hinzuzufügen, was auch immer Sie nennen möchten müssen sie zur Liste der verfügbaren Waffen oder Waffen hinzufügen. Dann gebe ich Ihnen einen kleinen Hinweis darauf wie Sie zu jeder Liste hinzufügen können , die Sie haben, und einfach den Punkt add mit darin verwenden können. Sie können auch die Dokumentationen von Ich habe Ihnen die Liste der Dokumentation darüber durchgehen , wie Sie auf eine Liste punkten. Also pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Also gehe ich weiter und scrolle nach unten. Und hier drin. Und wir halten diese Methoden in Ruhe und wir schaffen hier Methoden. Dies ist nur ein Organisationskriterium für mich, vielleicht haben Sie etwas anderes und Wege. Öffentlichkeit ungültig. Füge zwei verfügbare Waffen hinzu und öffne die Klammern, wie gesagt, die Stöcke und Waffensystem. Und wir müssen die Waffe hinzufügen. Öffne die Kreise genau hier. Und wir werden einfach das verfügbare bekommen, die Anzeige öffnen und wir müssen die Waffe hinzufügen. Da sind wir los. Das ist alles, was wir tun mussten. Und schließlich, wenn wir die Waffe hier drin aufnehmen, instanziieren wir die Waffe. Wir erhalten auch die Kollisions-get-Komponente , den Layer-Controller. Und wir fügen zwei verfügbare Waffen hinzu. Was fügen wir hinzu? Nun, wir wollen die Waffe hinzufügen, die wir hier geschaffen haben. Also werde ich einen Hinweis darauf bekommen , dass der Austausch vom Typ Waffensystem sein wird . Dort gehen wir und sehen Waffe hinzu, die hinzugefügt werden soll, ist gleich dieser. Also Waffe zum Hinzufügen, speichere das wieder in unserem Spiel. Lass uns das laufen lassen. Und jetzt führen sie das jeden Tag durch. Und jetzt sollten wir sehen, dass wir die Pistole haben und er, sie kommen jetzt. Und schließlich haben wir den Stempel. Jetzt heben wir die Schrotflinte auf, damit wir sehen können, dass wir hier zur Schrotflinte wechseln und Sie können sie in den verfügbaren Waffen sehen. Schließlich haben wir versucht, die Pistole aufzuheben. Wie du siehst, kriegen wir die Pistole nicht, wir kriegen nur die Schrotflinte und jetzt heben wir das Gewehr auf. Wir haben das Gewehr. Wir können zwischen ihnen wechseln. Und wie Sie hier sehen können, gab es jetzt ein kleines Problem , das Sie vielleicht nicht bemerkt haben. Zunächst einmal, wenn ich das Spiel führe, lass mich dir das noch einmal zeigen. Also wenn ich die Schrotflinte abhole, okay, das ist gut. Ich habe die Schrotflinte war ich. Aber wenn ich das Gewehr aufhebe, sieht man, dass wir, sobald ich anfange zu schießen , zuerst die Pistole und das Gewehr haben. Beide arbeiten, dann muss ich irgendwie zwischen ihnen wechseln, um es abzuholen. Das ist also etwas, das wir beheben müssen. Und um das zu tun, gehe ich wieder zu Besuch. Also bei den verfügbaren Waffen. Und hier drin werde ich sicherstellen, die aktuelle Waffe einstelle und was es sein soll. Stellen Sie also die aktuelle Waffe ein. Und was muss es sein? Nun, ich schreibe es einfach und dann erkläre ich es mir. Die verfügbaren Waffen zählen also minus2, und dann wechsle ich die Waffe. Okay? Und übrigens, wechsle die Waffe. Welches ist es? Welches? Okay, also wechseln. Wie Sie sehen können, wird das nicht funktionieren. Warum? Da der Schalter weg ist müssen wir tatsächlich die Tabulatortaste drücken. Wenn wir also auf diese Methode zugreifen und versuchen, die Tabulatortaste zu verwenden, funktioniert dies nicht. Was wir also tun werden, ist stattdessen diese gesamte Methode zu extrahieren. Rechtsklick hier rein. Schnelles Handeln und Refactoring, extrahieren Sie die Methode. Und das wird der sein, nennen wir es einfach echten Waffenschalter. Übernehmen Sie die Änderung, speichern Sie sie. Jetzt können wir den eigentlichen Waffenschalter hier drin machen. Und ich hoffe, das war klar, warum wir das gemacht haben. Denn das kann dir wieder zeigen, dass wir Welpen haben. Wir haben versucht, die Schalterpistole anzurufen, aber die Schalterpistole funktioniert nur, wenn wir die Tabulatortaste drücken. Was wir also tun werden, ist, dass wir diese Methode hier drin extrahieren. Jetzt funktioniert der Switch völlig gut. Aber das einzige, was wir haben, ist, dass wir tatsächlich den Darm wechseln können, den eigentlichen Waffenschalter. Also wieder hier drin, wo kann der tatsächliche wechseln? Warum haben wir die verfügbare Waffenpunktzahl minus zwei? Lasst uns zuerst sehen, ob das tatsächlich funktioniert. Also zurück in unserem Spiel führen wir das Spiel aus. Und lass uns die Schrotflinte abholen. Da sind wir los. Man sieht, dass die Schrotflinte die einzige Waffe ist, die funktioniert. Und jetzt, wenn wir das Gewehr abholen, gehen wir los. Das Richtige ist das einzige, was funktioniert hat. Und ich drücke die Tabulatortaste aus Reaktionen heraus oder lass es uns noch einmal versuchen. Werde zur Schrotflinte, heb das Gewehr auf, das einzige arbeitet. Großartig. Warum haben wir jetzt die verfügbare Punktzahl der Waffen? Denken wir einen Moment darüber nach. Sagen wir, wir nehmen eine Waffe auf. Nehmen wir an, wir hatten nur den Stempel, wir hatten 0, wir hatten nur eine Waffe und die Zählung war eine. Dieser Pistolenindex war 0. Sagen wir, wir holen die Schrotflinte ab. Also holen wir die Schrotflinte ab. Jetzt haben wir die Zählung gleich 2 und wir haben die Schrotflinte auf Position 1. Wie werden wir eigentlich sicherstellen, dass wir nur die Schrotflinte bekommen? Wir würden die verfügbare Waffenpunktzahl bekommen, die gerade etwa zwei beträgt, wird zwei entfernen. Das heißt, wir sind bei 0 und dann machen wir den eigentlichen Schalter und den eigentlichen Schalter, sobald er beginnt. Wenn wir hier oben schauen, können Sie sehen, dass wir, sobald wir anfangen , die aktuelle Waffe plus bekommen. Also haben wir um eins zugenommen und das wird auf jeden Fall funktionieren. Nehmen wir an, wir haben auch das Gewehr abgeholt. Jetzt ist die Zählung 33 minus zwei ist eins. Das heißt, wir sind bei einem, was die Schrotflinte ist. Aber wenn wir tatsächlich die Schalterpistole machen, nehmen wir zu. Wir kriegen zwei und wir kriegen die verfügbare Schrotflinte. Ich weiß es. Verwirrend, nicht wahr? Du kannst nachsehen, was ich gesagt habe. Ich bin mir ziemlich sicher, dass ich alles richtig gesagt habe. Dies ist also nur eine Möglichkeit sicherzustellen, dass wir immer die richtige und richtige Tasse bekommen. Ich hoffe, dass es Ihnen im nächsten Video gefallen hat, wir möchten einfach ein bisschen mehr von, sagen wir, Aufregung hinzufügen. Wann immer wir eine Waffe aufheben wollen, wollen wir nicht nur die Waffen in unserer Welt herumliegen lassen. Wir wollen eigentlich keine, vielleicht eine Art Brust haben , die sich öffnen wird, wenn wir uns ihr nähern oder einen bestimmten Knopf drücken wenn wir in der Nähe sind und dann die Waffe daraus erscheinen lassen. Also glaube ich, ich habe noch ein paar Minuten in diesem Video. Es war kurz. Was ich also mache, ist, dass ich die Gewehrabholung oder die Schrotflinte abholen werde. Und ich werde hier eine Animation erstellen. Um es also ein bisschen schöner zu machen , dorthin zu gehen, wo es ist, klicken Sie mit der rechten Maustaste hier rein. Erstelle eine neue Waffe. Sicherung. Drücken Sie Enter öffnen, Sie drehen Waffe, Reihe, das Ding, die Waffe, heben Sie auf. Und das ist nichts Neues. Wir werden es nur tun, ist, dass du nur ein bisschen nach dem Ding sehen wirst , Waffe, heb auf, speichere das. Also hol die Schrotflinte. Stoppt die Aufnahme. Und ich möchte eine Rotation um die zweite haben , um das zu tun. Ja, klar. Also 90. Und in der zweiten, zweiten, zweiten, zweiten, zweiten sollte die Rotation um 180 liegen. Da sind wir los. Und dann füge die zweiten drei hinzu. Wir sollten bei 270, fast 70 sein. Und schließlich haben wir auf der zweiten Vier 362. Mal sehen, wie das aussieht. Okay, scheint gut genug zu sein. Das ist also die rotierende Waffe, aber wir können auch ein paar Dinge genau hier tun , wenn wir alle auswählen, klicken Sie mit der rechten Maustaste und Sie können sehen, dass wir eine Art Tangente erstellen können . Wir können beide Tangente wählen und sie vielleicht linear machen. Also jetzt die Rotation, wir werden uns nur ein bisschen ändern. Da sind wir los. Man sieht, dass es sich ständig dreht, wirklich nett. Wir können auch das Gleiche tun und hier. Also überlasse ich den Rest dir. Dies ist nur eine Möglichkeit, ein bisschen schöneres Spiel zu haben. Jetzt können Sie sehen, dass wir diese Schrotflinte haben , die wir abholen müssen. Da sind wir los. Wir holen es ab. Alles funktioniert einwandfrei. Ich hoffe es gefällt dir. Ich hoffe, dass Sie Ihre Dateien inszenieren und wir sehen im nächsten Video, in dem wir eine gerade öffnen und uns, unsere Marionetten bekommen . Wir sehen uns dann. Hey, du dachtest, du wärst mich los, aber nein, wir haben immer noch ein bisschen Zeit für etwas und ich war nur besorgt um eine Sache, die du vielleicht eine Animation für jede einzelne Waffe erstellen möchtest . Aber nein, du musst erst zur Schrotflinte hier gehen. Sie können einfach auf diese drei kleinen Tasten klicken , oder auf Buttons oder wie auch immer Sie sie nennen möchten. Und Sie können sehen, dass Sie diese gesamte Komponente tatsächlich kopieren können . Wenn du es also kopierst, lass mich zurück in die Pistole gehen. Ich habe diese Komponente entfernen bereits gemacht , Raum der Komponenten. Also bei der Schrotflinte hier drin kopieren wir die Komponente. Wir gehen in den Pistolen-Pickup, der sich nicht dreht. Wir klicken auf eine beliebige Komponente, die wir wollen. Und Sie können genau hier sehen, dass wir Komponente als neu einfügen können . Wenn ich also auf Einfügen klicke, gehen wir los. Sie können sehen, dass es jetzt den Controller der Schrotflinte hat . Und du denkst vielleicht genau hier, dass das vielleicht keine gute Idee ist. Wir hätten vielleicht etwas anderes nennen sollen als der Schrotflinten-Pickup, aber machen Sie sich darüber keine Sorgen. Was wir suchen, ist die Animation genau hier, die sich nur auf die Rotation auswirkt. Es ändert also nicht die Sprites, es beeinflusst nur die Rotation eines Spielobjekts. Wir müssen uns also keine Sorgen machen, dass sich die Sprites ändern, und das ist ein schnellerer Weg für uns. Fügen wir das auch dem Gewehr hinzu. Dies ist also eine sehr schnelle Möglichkeit für uns, rotierende Objekte zu haben und nicht jedes Mal Animationen erstellen zu müssen . Also kopiere es, führe das Spiel jetzt aus, wir sollten sehen, dass alle Waffen es geschrieben haben. Da gehen wir ohne etwas zu ändern und sie arbeiten immer noch im List-Stil. Wir gehen Gewehr, werden immer noch nicht abgeholt , weil wir die Pistole bereits bei uns haben. Wie cool ist das? Ich hoffe, es hat dir gefallen. Tut mir leid, dass du zurückgekommen Ich weiß, dass du schon sehr genervt bist. Dies ist ein Schritt, um Ihnen vielleicht ein paar Minuten und Stunden zu sparen , was auch immer Sie brauchen, um Animationen zu erstellen. Also hoffe ich, dass dir der Hebel von dir gefällt. Wir sehen uns im nächsten. Dieses Mal echt. 65. Eine Brust, die du öffne: Willkommen zurück, Meine Lieblingsspielentwickler in diesem Video und diesem langen Video werden wir wieder lernen, wie man eine Truhe erstellt. Aber das ist wirklich cool nur denn wenn wir uns ihm nähern, sagt es uns, dass wir das e drücken können, um die Brust zu öffnen. Wenn wir das E drücken, werden Sie sehen, dass wir eine offene Truhe bekommen. Da sind wir los. Das ist also alles, was wir getan haben. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, okay, willkommen zurück. Jetzt wissen wir, wie wir Waffen aufnehmen können. Wir können sie einfach dem Spieler hinzufügen, wir können mit ihnen schießen. Wir aktualisieren die Benutzeroberfläche, alles funktioniert einwandfrei, aber wie gesagt, möchten wir der Art und Weise, wie wir diese Waffen tatsächlich bekommen, etwas mehr Geschmack verleihen . Und die Art und Weise, wie wir das tun, ist eine Truhe und unsere Levels, auf die wir klicken können. Sie öffnen sich, sie geben uns die Waffe, wir heben sie auf, wir fahren mit unserem Spiel fort. Also lasst uns weitermachen und das machen. Ich lösche den Pickup mit drei Waffen. Ich gehe in die Sprites und bevor du sie natürlich löschst, müssen wir sie als Prefabs haben. Dann gehen wir in die Sprites. Wir klicken hier mit der rechten Maustaste erstellen einen Ordner für die Truhe. Doppelklicken Sie hier hinein und gehen Sie zum Besuch in die Ressourcen, ziehen Sie die Truhen. Wenn Sie an ihren Truhen finden können, empfehle ich Ihnen natürlich , sich dafür zu entscheiden. Ich werde es mehrfach machen. Ich schaffe es nach Punkt. Der Filtermodus geht zu diesem Stolz, gilt offensichtlich. Und jetzt lasst uns weitermachen und das aufschneiden. Ich glaube, die Automatik sollte einwandfrei funktionieren. Los geht's, wenden die Änderungen an. Welche Box möchtest du wählen? Ich wähle das Goldene aus. Also der, dieser und dieser, wenn es sich öffnet. Also müssen wir hier zwei Arten von Sprites haben, 140, offene Brust 14, die geschlossene. Ich ziehe es hier und füge es in die Welt ein und setze es auf die Spielerebene. Offensichtlich ist es extrem klein. Also werde ich das von der Schatztruhe zur Waffentruhe ändern zur Waffentruhe und lassen Sie es uns ein bisschen größer machen. Also glaube ich, dass 16 vielleicht 16 zu groß ist. Ist eine zu große Truhe. Nein, ich denke, das ist gut genug. Jetzt gehen wir zu den Skripten mit der rechten Maustaste oder nein, haben wir etwas Pickups, Levelflow? Haben wir einen Ordner, der für den Nope geeignet ist, haben wir keinen. Also klicke ich mit der rechten Maustaste, um einen Ordner für die Waffen zu erstellen . Kopiere das einfach hier drin. Wo sind wir hin? Waffen. Aber das tut uns leid. Die Waffe ist einfach okay. Aus irgendeinem Grund. gerade einen anderen Ordner geöffnet sowieso gerade einen anderen Ordner geöffnet, wir erstellen diesen. Es sind die Waffen, Truhe. Drücken Sie Enter und warten Sie, bis es kompiliert ist. Und jeden Tag fügen wir es den eigentlichen Waffen hinzu, einfach und öffnen das Drehbuch. Okay, also was müssen wir hier drin haben? Zuallererst wollen wir, dass dies uns nur zufällige Waffen gibt. Also was wir tun werden, und das ist nur ein Mechaniker, den ich haben möchte. Vielleicht würdest du etwas anderes schaffen wollen, aber vorerst serialisiertes Feld, den Waffen-Pickup. Und es wird ein Array mit den potenziellen Waffen sein. Also die potenziellen Waffen, dann erstelle ich einen privaten Sprite-Renderer. Was bedeutet es, oder? Renderer. Und es wird die Truhe sein als R. Und du wirst alles verstehen. Aber jetzt lasst uns weitermachen. Das offensichtlich das gerade Sprite-Render wird sein, wir brauchen einen Verweis auf die Breite. Du wirst es in nur ein bisschen verstehen. Jetzt erstelle ich ein anderes serialisiertes Feld, nur ein Sprite wird. Und dieses Sprite wird das offene Sprite sein. Und dann werden wir irgendeine Art Text haben. Und weil wir Unity Engine Wi verwenden müssen, können wir jetzt auf den Text zugreifen und es wird der offene Schlüsseltext sein. Öffne Schlüsseltexte. Und ich meine nicht mit Schlüssel, den Schlüssel, der es uns erlaubt, die Truhe zu öffnen. Nun, das tue ich irgendwie, aber die Taste, welche Taste drücken wir auf die Tastatur, um die Brust zu öffnen? Jetzt, wo ich darüber nachdenke, haben sie vielleicht deshalb den Key Vault genannt. Und mit privat brauchen wir schließlich einen Booleschen Wert, um sicherzustellen, dass wir öffnen können. Das bedeutet, dass wir in der Nähe davon sein werden . Und Truhe. Und warum fragen wir zuerst, fragte sie, warum brauchen wir den Brust-Sprite-Renderer und warum brauchen wir das Sprite mit offener Brust? Nun, denn wenn wir die Brust öffnen, gehst du los. Wenn wir das Sprite sehen, nur eine Sekunde. Wenn wir sehen, haben wir zwei Sprites, einen für das Schluss-1, 1 für das offene. Deshalb brauchen wir einen Verweis auf den Sprite-Renderer, um diese Helle zu ändern, wenn wir die Truhe tatsächlich öffnen. Also füge ich das offene Brust-Sprite hinzu , die potenziellen Waffen. Ich füge das hinzu und sperre das einfach für eine Sekunde bei den Prefabs ab . Pickups, V3-Waffen. Oder selbst wenn Sie möchten, können Sie das Hilfreiche hinzufügen. Also, vielleicht bekommst du die Hilfe von der Brust und kurz, lass uns das machen. Lassen Sie uns auch die Gesundheit nur zum Spaß hinzufügen. Oh, okay. Es ist also ein, es ist eine Reihe von dem Waffensystem. Also oder tut mir leid, Waffenabnehmer oder wir können die Gesundheitsmäuse nicht hinzufügen. Das etwas, das mir nicht bewusst war. Aber wie auch immer, lass uns weitermachen und anfangen. Wir müssen einen Verweis auf den Sprite-Renderer bekommen. Die Truhe als r ist also gleich der Schuldenkomponente Sprite-Renderer. Da sind wir los. Jetzt haben wir einen Hinweis darauf. Und wenn wir die Truhe tatsächlich öffnen, wollen wir das Sprite in etwas anderes umwandeln. Bevor ich jetzt mit einem fortfahre, erinnere ich mich an den kleinen Hinweis , den ich im vorherigen Video gegeben habe. Wir wollen nicht jedes Mal das wenn das Tag der Spieler ist. Also lasst uns weitermachen und eine neue Ebene erstellen. Layer. Oh, okay, also müssen wir das entfernen. Und wir werden die Pickups erstellen. Drücken Sie Enter. Und jetzt wo wir hingehen können und all diese Pickups so einstellen dass sie funktionieren oder alle die Layer-Pickups haben. Speichern Sie das und gehen Sie jetzt zu Bearbeiten, sorry, Projekteinstellungen bearbeiten. Wo ist es? Physik, 2D und die Pickups interagieren alle mit dem Spieler. Also schalte ich alles außer der PLR aus. Wir sparen das, wir gehen zurück. Jetzt werden wir sicherstellen, dass dies sogar die Truhe, wir können sicherstellen wir es als Pickup auch machen sollten. Es interagiert also nur mit einem Spieler und wir müssen nicht jedes Mal nach dem Tag suchen. Was macht das auch raus? Was müssen wir sonst noch tun? Nun, wir müssen eine Leinwand für diese Truhe erstellen , die genau hier eine Art Wort oder Texte enthält, die angezeigt werden. Drücken Sie zum Beispiel E, um die Brust zu öffnen, oder drücken Sie C oder was auch immer. Also klicke ich mit der rechten Maustaste auf die Waffen, geh einfach zu dir und erstelle eine Leinwand. Wirklich nett. Jetzt können Sie sehen, dass wir eine weitere riesige Leinwand haben. Wogegen werden wir tun? Offensichtlich wollen wir nicht, dass es so groß wird. Was wir also tun können, können wir es hier als Weltraum festlegen. Und dies wird es uns ermöglichen, die Skala genau hier zu ändern. Also setze ich die Skala auf 0,01 auf x, 0,01 am y. Und lassen Sie es uns einfach bei 0 oder das Z bei 1212 Faktoren halten. Ich ändere die Position auf 0. Und Sie können sehen, wie klein die Leinwand gerade ist, dieses kleine Quadrat genau hier. Und ich ändere das x und das y auf 0. Jetzt doppelklicke ich einfach auf die Waffen und los geht's. Sie können sehen, dass wir die Leinwand genau hier haben. Also jetzt füge ich noch 0 hinzu und hier, und vielleicht noch eine auch am Y. Okay, das ist zu klein. Und lasst uns vielleicht versuchen, es gut zu machen. Das ist zu viel. Entschuldigung. Und vielleicht schaffen wir es einfach um 35, okay, fünf auf dem y und am x. Hervorragend, also jetzt haben wir es Das setzt seine Position wieder auf diese 000 zurück, vielleicht erhöhen Sie die Höhenvorlage. Und wir nennen das die Truhe Canvas. Und wie Sie jetzt sehen können, ist es eine sehr kleine Leinwand und wir müssen sicherstellen, dass es Weltraum ist und sich jetzt öffnet. Und auf der Brust Canvas werde ich einen Text Mesh Pro erstellen. Und dieser Text wird viel Pro sagen offen, drücken Sie die Taste, drücken Sie E, um die Brust zu öffnen und geben Sie dies ein wenig ein. Machen Sie es fett, erstellen Sie die Roboterschrift, die wir haben, und machen Sie sie automatisch. Und mal sehen, wie das aussieht. Ich zoome wieder hinein und mache das ein bisschen größer. Wo ist die Textfarbe? Während der Text sowieso kann ich ihn nicht sehen. Oh, Fall. Was wir also tun müssen, ist, dass wir dies auch in diese Sortierschicht ändern müssen. Und los geht's, wir können sehen, dass der Text ist, und hier, und ich habe das auf der 2D getestet. Ich habe mich gefragt, was los ist. Und ich dachte, wenn wir in 3D sind, könnte ich vielleicht die Z-Position ändern. Aber nein, es stellt sich heraus, dass auf dem eigentlichen nur Canvas. Hab es im Weltraum. Sie können die Sortierebene auswählen und wir schaffen sie auf der Spielerebene. Und ich werde sicherstellen, dass dies fett ist, automatische Größe. Und wir werden den Text ein wenig nach oben verschieben, also wird er hier erscheinen. Und ich werde die Größe vergrößern und wir sorgen dafür, dass das Maximum größer ist. Okay, also erhöhen Sie das Maximum so weit wie möglich und wir können es nach Herzenslust ändern. Wie viel willst du, wie groß willst du es machen? Wie klein willst du es machen? Es kommt auf dich zurück. Also werde ich es hier einrichten, heb dir das auf. Das nächste ist, dass wir in die Waffen gehen, lass uns einfach ein paar Collider hinzufügen. Der erste wird ein Collider sein, der nur dafür sorgt, dass wir die Dinge intakt halten. Und dann sorge dafür, dass wir nicht einfach durch die Brust gehen und dann machen wir einen zweiten Box-Collider. Und dieser wird ein Auslöser sein. Und ich werde seine Größe ändern, um ungefähr ja groß zu sein, also größer als die eigentliche Box. Oder wenn wir in dieser Position stehen, können wir die Box öffnen. Speichern Sie also all das, stellen Sie sicher, dass es ein Auslöser ist. Was wir jetzt tun werden, ist dir eine Herausforderung zu stellen. Und deine Herausforderung besteht darin zu wissen, was in der Box ist. Wenn du dieses Bild kennst, weißt du es. Wenn Sie die Referenz nicht kennen, dann ist es Ihr Problem. Dann wie auch immer, öffnete die Box unter bestimmten Bedingungen. Also wollen wir die Box öffnen. Wir wollen das Gleiche drängen. Wir müssen sicherstellen, dass wir neben der Box stehen wollen , wenn wir sie öffnen. Wenn wir also nicht in der Box stehen, wollen wir sie nicht öffnen können. Und stellen Sie außerdem sicher, dass wir den Text anzeigen , wenn wir uns neben dem Feld befinden. Ich brauche also zwei Möglichkeiten. Egal, ob wir uns in der Nähe der Box befinden oder nicht in der Nähe der Box sind, wir werden den Text anzeigen und wir können ihn öffnen, wenn wir uns daneben befinden oder nicht. Also die Musterbildung mit diesen Bedingungen in deinem Kopf, pausiere das Video jetzt und mach folgendes. Okay, willkommen zurück. Also werde ich einfach anfangen, weil wir bereits viel Zeit mit einfachen Details und Wegen verschwendet haben. Wir sind im Trigger Enter. Wir werden vorerst nicht nach dem Spieler-Tag suchen. Und wir werden sicherstellen, dass die GameObject-Punkte mit offenem Schlüssel aktiv sind, wahr sind. Also schalten wir es aus und erst wenn wir uns im Collider befinden, werden wir ihn öffnen und am Armauslöser Ausgang 3 werden wir dasselbe haben und wir werden es einfach hier hineinlegen. Anstatt wahr, wird es falsch sein. Exzellent. Was ist das Nächste, was wir tun wollen, ist, dass wir sicherstellen wollen , dass wir uns öffnen können und es wird wahr. Und wenn wir es nicht sind, kann sich das Set öffnen. Nun, ich mache das einfach zu Klammern. Nein, kann z gleich true öffnen und kann öffnen ist gleich false. Los geht's, wir sparen das. Und lasst uns einfach ein Update machen. Wir haben es entfernt und wir werden nur debuggen. Punktprotokoll kann gleich geöffnet werden. Da sind wir los. Das sparen wir uns. Was ist das Problem Boolean in ein Objekt. Aus irgendeinem Grund habe ich einfach den ganzen Kontext und die Welt vergessen. Okay, wenn das erledigt ist, gehen wir zurück und checken ein. Hier. Wir führen das Spiel aus. Wir haben in unserer Konsole. Es ist falsch, falsch, falsch, falsch. Wenn wir in die Kiste gehen, dann kriegen wir einen Fehler. Exzellent. Warum ist das so? Weil wir offensichtlich vergessen haben festzulegen, dass das Ergebnis sinkt, geht der Text herunter. Wie großartig ist das? O, und das haben wir auch vergessen, ich hoffe, einige von Ihnen haben diese DTM-Sonde aufgegriffen. Und das ist nicht irgendein Text, es ist ein Text Mesh Bewährung Gui. Also speichere dich das, geh wieder rein und jetzt sollten wir sehen, dass wir den Text hinzufügen, speichern, das Spiel ausführen. Oh, und noch eine Sache, entschuldigen Sie mich. Wir müssen sicherstellen, dass wir den Text abwenden. Heb dir das einfach auf. Schon wieder. Machen wir das ein bisschen größer. Also können wir falsch, False, False öffnen. Dann rennen wir hier rein, können wahr öffnen. Wir haben die Presse Chest E. Und schließlich den letzten Schritt wollen wir eigentlich ein Update hier drin machen. Lasst uns das entfernen. Wir wissen was funktioniert. Wir werden sicherstellen, dass wir, wenn der Eingabepunkt die Taste herunterbekommt, diesen Tastencode öffnen, den e. Wenn wir also E drücken und öffnen können, werden wir die Truhe als unser Sprite bekommen. Und es wird gleich dem offenen sein. Sprite einfach. Spar das wieder in unserem Spiel auf. Jetzt führen wir das Spiel aus. Wir stehen neben der Truhe. Wenn wir die E-Taste genau hier drücken, nein, wir können nichts tun, wenn wir einfach hier mögen. Da sind wir los. Wir können die Truhe öffnen. Wie cool ist das? Ich hoffe, Ihnen hat dieses kleine Tutorial zum Erstellen von Truhen gefallen . Im nächsten Video werden tatsächlich ein paar Waffen auftauchen , wenn wir die Truhe öffnen. Also sehe ich dich dann sicher, dass du deine Änderungen festlegst. Und wir sehen uns dort. 66. Was du auftauchen: Willkommen zurück, meine Spieleentwickler in diesem Video, wenn wir das Spiel laufen, sind einfach nicht nur geöffnet. Es öffnet sich und gibt uns eine zufällige Zuordnung. Wir holen es ab und fangen an zu schießen. Und das Beste daran ist, dass wir keine Waffen mehr haben, wenn wir weiter auf das Gleiche drängen . Sie werden sehen, warum das so erstaunlich ist. Und ein paar Minuten, also verschwenden wir keine Zeit mehr. Und lasst uns anfangen. K. Jetzt haben wir unsere Brustöffnung. Wir wollen eigentlich eine Waffe spawnen. Was wir also tun werden, ist, dass wir eine der potenziellen Waffen instanziieren werden. Wo ist es an den Waffen genau hier. Nun gibt es noch eine Sache , die wir berücksichtigen müssen, und das ist, wenn wir einen dieser Pickups spawnen. Es ist sofort auf der Brust und die Brust ist solide. Was wir also tun werden, ist, dass wir hier einen Spam-, Spam- und Spamspawn-Punkt erstellen . Und wir nennen Spawn-Punkt. Und wir bewegen es einfach ein bisschen nach unten. Und hier kann ich das einfach größer machen. Und hier wird die Waffe für uns spawnen und wir legen sie einfach hier hin. Und wenn Sie möchten, können Sie jeder dieser Waffen auch den Pickup, die D-Ebene, hinzufügen . Ich denke, es ist eine gute Idee, denn wenn der Spieler direkt vor der Brust steht, werden wir nicht einmal sehen, was die Waffe war. Es ist also eine gute Idee. Es ist ziemlich einfach. Füge einfach das Skript hinzu. Wir machen es vielleicht später. Aber im Moment konzentrieren wir uns weiter auf das, was wir haben. Wir gehen gerade in die Waffen ein und hier werden wir ein zusätzliches serialisiertes Feld erstellen , das vom Typ Transformation ist, und es wird der Spawnpunkt sein. Speichern Sie das wieder in Unity, warten Sie darauf, dass es kompiliert und Waffen genau da sind wir los. Der Punkt, an dem wir jetzt tun werden, ist, dass wir hier eine Zufallszahl erstellen möchten, oder zumindest wenn wir die Taste tatsächlich drücken , wird eine Zufallszahl erstellt. Und von dieser Zufallszahl aus werden wir eine der potenziellen Gameten instanziieren. Also werde ich es dir als Herausforderung ausstellen, also musst du die Waffenabholung ausgeben. Hier drin. Wir hätten uns abholen müssen. Sie müssen also eine Zufallszahl erstellen. Sie müssen eine der potenziellen Waffen instanziieren. Und Sie müssen sicherstellen, dass es sich an der Position des Spawn-Punktes befindet. also das Halten Sie also das Video jetzt an und machen Sie die Herausforderung. Okay, willkommen zurück. Nachdem wir das Sprite geändert haben, erstellen wir einen int, eine zufällige Waffe, eine Waffennummer und diese entspricht dem Zufallsbereich. Und der Bereich reicht von 0 bis zur potenziellen, potenziellen Punktlänge der Waffen. Und hier drin werden wir fortfahren und instanziieren. Instanziieren öffnet was ist das Objekt? Es werden die potenziellen Waffen auf der Position, die zufällige Waffennummer, die Spam-Punktposition und der Spam-Punkt 0, 0, 1. Spar dir das auf. Und jetzt gehen wir zurück und zu unserem Spiel. Ich glaube, das ist alles, was wir tun müssen. Okay, lass uns zurückgehen. Lassen Sie uns das ein bisschen größer machen. Führe das Spiel aus. Steh neben die Brust, treff das Gleiche. Da sind wir los. Wie cool ist das? Jetzt haben wir die Schrotflinte, wir können sie tatsächlich abholen und anfangen zu schießen. Nun gibt es noch eine Sache , die wir berücksichtigen müssen. Und dann kann ich spawnen, denn Geld, Waffen wie ich will, ist etwas, das Sie vielleicht für gut halten. Aber in Wirklichkeit ist es das nicht. Vielleicht willst du das haben, vielleicht nicht. Und ich gebe dir die Möglichkeit, dies alleine zu tun. Pausiere das Video wenn du willst. Dies ist keine offizielle Herausforderung. Ich geb dir ein paar Sekunden. Pausiere das Video und finde heraus, wie wir das stoppen können. O K Die Zeit ist um. Also hier drin füge ich einen weiteren Booleschen Wert hinzu, der offen war. Es öffnete sich, öffnete sich. Und hier drin, nachdem wir die Truhe tatsächlich geöffnet haben, ist das gleich wahr. Und eine andere Bedingung hier drin, wenn es nicht geöffnet wurde, speichern Sie das, und ich möchte es an einen anderen Ort hinzufügen. Und hier drin haben wir den Vicky wieder wahr gemacht. Also hier drin sage ich, entschuldigen Sie mich, das ist eine Menge. Wenn es nicht geöffnet wurde , schalten wir das ein. Spar dir das auf. Und wenn wir draußen sind , setzen wir es einfach auf false und eröffnen niemals ein Konto. Wir wollen den Text also nicht weiter sehen wenn wir diese Truhe bereits geöffnet haben. Also führen wir das Spiel aus. Wir haben die Truhe. Wir öffnen es. Wir haben die Schrotflinte, die versucht hat, sich ein anderes Mal zu öffnen. Nein, wir können nicht, wenn wir zurückgehen, das war's. Wir sehen es nicht, weil wir bereits geöffnet haben und unsere App abholen und herumschießen. Wir haben ein erstaunliches Waffenlaichen, Brustöffnung, Aufhebung von Mechanikern, die einwandfrei funktionieren. Also hoffe ich, es gefällt dir. Und wenn Sie eine zusätzliche Herausforderung an der Seite haben möchten, erstellen Sie vielleicht eine Art Animation für die Truhe, wo es links und rechts wackelt, bevor sie sich öffnet. Oder ich weiß es nicht, vielleicht fügen Sie eine Art zusätzliche Animation hinzu, wenn Sie die Truhe auf sich selbst finden müssen . Stellen Sie sicher, dass Sie Ihre Änderungen immer übernehmen, wenn Sie es noch nicht getan haben, Sie kennen den Drill. Ich es hilft mir sehr, wenn Sie eine Bewertung positiv 1 hinterlassen, natürlich eine Rezension über den Kurs Atlas, die Plattform. Wisse, dass ich der Autor dieses Kurses bin , ist es wert, es wert, anderen Leuten zu zeigen und hat sich offensichtlich der Zwietracht angeschlossen, wenn Sie es noch nicht getan haben, und ich hoffe, dass Ihnen dieser Abschnitt gefallen hat. Es war echt nett. Wir haben viel gelernt. Und im nächsten, ich bin mir nicht sicher, was wir tun werden, aber ich bin sicher, dass wir es von ihnen herausfinden werden. Verschwenden wir also keine Zeit mehr und gehen wir zum nächsten Abschnitt. 67. Teil 11: Musik und SFX – Lass uns über Musik sprechen.: Willkommen zurück meine Spieleentwickler in einem der aufregenderen Teile. Vielleicht ist es etwas kleiner , wenn es um die Länge von Videos geht. Ich bin in der Länge des gesamten Abschnitts, aber es macht wirklich viel größeren Unterschied in unserem Spiel. Also, wenn wir das Spiel laufen, los geht's. Du kannst sehen, dass wir in der Musik haben, wir laufen herum, wir erschießen unsere Feinde. Wir haben versucht, das Skelett zu töten, und aus irgendeinem Grund sterben wir. Alles mein Gott. Oh mein Gott. Wie sehr spüren Sie den Druck jetzt, da wir Felder so beängstigend angewendet haben, dass wir gestorben sind. Wir haben nicht nur den schwarzen Bildschirm für dich gestorben, sondern wir haben auch die Musik auf uns verändert, was eine sehr beängstigende Atmosphäre hinzufügt. Okay, vielleicht nicht so viel, aber du fühlst die Schwere deines Todes gerade viel mehr. also ohne weiteres Verschwenden wir also ohne weiteres keine Zeit mehr und lasst uns anfangen. Okay, also Zeit, ein bisschen Musik und Soundeffekte hinzuzufügen. Natürlich liebe ich diesen Teil des Spiels, denn fügen wir dem Spiel die Magie hinzu, wo wir es ein bisschen erstaunlicher machen. Als Erstes gehe ich zuerst in die Prefabs und ich werde die Waffen nur vorfab und lass es uns einfach dem Sure hinzufügen. Fügen wir es den Pickups hinzu. Warum nicht? Warum nicht? Oder Level-Objekte, vielleicht wären Level-Objekte ein besserer Ort gewesen, um es zu platzieren. Also verschiebe ich diese auf die Level-Objekte. Okay, großartig, beweg das aus dem Weg. Gehen wir auf die Vermögenswerte ein. Klicken wir mit der rechten Maustaste hier rein und erstellen ein Audio. Einfach alles, was du hier drin klickst. Und ich erstelle zwei Ordner, einen für die Musik und einen für die Soundeffekte. Nennen Sie es einfach als f x. In gewisser Weise gehe ich auf die Ressourcen ein. Und hier sieht man, dass wir diese vier Musiken haben. Lasst uns weitermachen und alle hinzufügen. Ich bin mir nicht sicher, welches wir verwenden werden, also füge ich sie alle in die Musik ein. Warte darauf. Wenn es zu lange dauert, verwende ich die Magie, 0 zu bearbeiten. Und jetzt gehen wir auf die Soundeffekte ein. Als Fuchs werde ich alle aussuchen, außer diesen beiden. Ich bin mir nicht sicher, warum sie noch da sind, aber ich werde sie bis zu den Soundeffekten hinzufügen und warten bis sie hinzugefügt werden. Okay, großartig. Doppelklicken wir also auf die Musik und schauen wir uns an, was wir hier haben. Wenn ich also auf den Flug klicke und versuche, die Lautstärke auf meinem Computer einzuschalten, kann ich es mir anhören. Hören Sie sich eine Vorschau davon an. Okay. Offensichtlich kann man es hören. Was wir jetzt tun werden, ist, dass wir diese Musik und unser Spiel spielen werden . Und es ist ziemlich einfach. Wann immer Sie Musik abspielen möchten, können Sie sie einfach hier hineinziehen. Da sind wir los. Das kannst du jetzt sehen Lass uns das kleiner machen. Du siehst, dass ich die Fliege hier drin habe. Und eines der coolen Dinge, die wir tun können ist, dass wir einfach aus dem Spiel aus können. Und Sie können sehen, dass wir hier eine Option haben, die auf wake und die Schleife spielt. Also werde ich es in die Schleife bringen, weil wir nicht wollen, dass die Musik tatsächlich endet, wenn der eigentliche Song endet. Also, wenn ich das Spiel führe, passiert offensichtlich nichts. Warum ist das so? Nun, weil die Musik nicht wirklich wach läuft. Oh, okay. Ich brauchte also etwa drei bis vier Minuten, um herauszufinden, was das Problem ist. Ich war so verwirrt und ich hatte die eigene Stimmung. Wenn ich es jetzt ausschalte, wenn wir das Spiel laufen, los geht's. Du siehst, dass wir anfangen, die Musik zu spielen. Ich schalte das einfach ab. Und wie spielen wir diese Musik? Ich möchte, dass du darauf achtest, was wir hier haben. Wir benutzen etwas, das als Audioquelle bezeichnet wird. Und die Audioquelle kann man sehen, dass es einen Audioclip hat. Der Clip, über den wir eine Ausgabe abspielen werden über die wir später sprechen werden, wenn wir einen Audiomixer hinzufügen, haben wir die Priorität, die Lautstärke, den Strand usw. Also und wir haben auch 3D-Sounds , die mit dem du herumspielen kannst. Wie Sie sehen können, können wir es sofort spielen, sobald wir unserem Spiel jegliche Art von Musik hinzufügen . Aber offensichtlich wollen wir nicht, dass die Dinge so funktionieren. All das wollen wir kontrollieren können. Also hier drin können wir sehen, dass wir die Mehrfachflüge haben oder lassen Sie uns den Fly One ausprobieren und sehen, wie das klingt. Oder die Branche. Und ich denke, ich werde diese Fliege benutzen und ich nenne das die Levelmusik und benutze die Fliege als Todesmusik. Also Musik, los geht's. Du kannst jetzt sehen, dass es die Level-Musik ist. Es heißt immer noch Fly. Und der Fly One wird der Todesmusik-Hit Enter sein. Und jetzt haben wir diese beiden Geräusche. Bevor wir also auf die Soundeffekte eingehen, lassen Sie uns etwas erstellen , das als Audio-Manager bezeichnet wird. Also werde ich zuerst die Fliege hier entfernen. Ich klicke mit der rechten Maustaste, um eine leere zu erstellen. Und das wird ein Spielobjekt sein. Und ich nenne es das, ich nenne es das GameObject ernsthaft, Audio-Manager. Ich werde seine Position zurücksetzen. Es spielt keine Rolle, wo es ist, aber ich werde es auf jeden Fall zurücksetzen. Und in den Skripten hier gehe ich zu den Managern, die einen Ordner für die Manager haben . Nein, das tun wir nicht. Also klicke ich mit der rechten Maustaste, um ein C-Sharp-Skript namens Audio Manager zu erstellen . Drücken Sie Enter und klicken Sie mit der rechten Maustaste, erstellen Sie einen Ordner für die Manager. Was hat sich nicht geändert? Manager, bitte. Managerin. Also oh, okay. Wir haben bereits einen Ordner Optima Manager löschen das. Also Manager. Oh, es gab eine Mappe für die Manager. Warum bin ich auf keinen Fall gekommen? Lassen Sie uns die Manager öffnen, lassen Sie den Audio-Manager dem Audio-Manager und doppelklicken und sehen, was wir hier tun werden. Nun, der AudioManager, etwas, das wir oft aufrufen werden. Also erstelle ich eine Instanz daraus. Also öffentlich, statisch oder Ihre Manager-Instanz. Und ich werde das Wache schaffen und die Inzidenz ist gleich diesem. Großartig, jetzt können wir jederzeit auf den Audio-Manager zugreifen . Zweitens brauchen wir hier eine Variable , die die gesamte Musik darstellt, die ein serialisiertes Feld haben wird, den Audioclip. Warum ist es ein Audioclip? Denn wie wir genau hier gesehen haben, wo die Einheit, als wir die Audioquelle hinzugefügt haben, die unsere Musik spielt, die Musik hier drin, fügen wir die Levelmusik hinzu. Sie werden sehen, dass dies die Audioclips sind, oder wir benötigen einen Verweis auf die tatsächlichen Audioclips, die wir abspielen werden. Also zurück und höre die Audioclips und das wird unsere Musik sein. In diesem Fall werden wir den ersten Buchstaben des variablen Kapitals machen . Und dann werden wir ein paar Dinge machen. Was wir also tun werden, wie Sie hier gesehen haben, wenn er jetzt jeden Tag fertig ist, werden Sie sich daran erinnern, dass wir die Audioquelle erstellt haben, als wir die Musik zu unserer Szene hinzugefügt haben. Dafür werden wir tatsächlich eine Komponente erstellen oder hinzufügen, die die Audioquelle ist, aber etwas, das ich nicht erwähnt habe, und so hören wir tatsächlich zu? Wenn du also Musik hören willst, brauchst du natürlich Ohren. Du brauchst einen Zuhörer. Und wo ist unser Zuhörer? Während unser Hörer normalerweise auf der Hauptkamera positioniert ist , können Sie genau hier sehen, dies eine kleine Komponente der Kamera ist , die als Audio-Listener bezeichnet wird. Und ich kann es tatsächlich aus- und einschalten und man sieht, dass es keine Eigenschaften hat. Es ist nur ein Audio-Hörer. Es ist extrem einfach. Es ist standardmäßig immer auf der Kamera, also behalte es dort. Es funktioniert. Also zurück im Audio-Manager haben wir jetzt eine Audioquelle drauf. Und was wir tun werden, wenn wir die Musik hinzufügen, die wir hier haben, den Tod und das Level. Und wir werden sie hier hinzufügen. Und jedes Mal beginnen wir zum Beispiel ein Level. Wir werden das Niveau der Musik spielen und jedes Mal, wenn wir sterben, entfernen wir stattdessen den Clip von hier und fügen die tauben Nachrichten hinzu. Also brauchen wir einen Verweis auf die Audioquelle. Also private Audioquelle, und es wird als Audioquelle bezeichnet, einfach wie diese Quelle. Da sind wir los. Und jetzt und jetzt werden wir bekommen, dass der Verweis auf die Audioquelle gleich ist , um Component Audio Source zu erhalten. Da sind wir los. Ganz einfach. Lassen Sie uns nun eine Methode erstellen, die es uns ermöglicht , jede Art von Levelmusik zu spielen. Was wir also tun werden, ist, dass ich hier reingehe und eine öffentliche Leere erschaffen werde , Levelmusik abspiele. Und ich öffne das genau hier. Diese beiden vergesse ich immer, wie sie heißen. Und dann werde ich hier sagen, dass die Audioquelle den Clip punktiert. Sie können also den standardmäßigen Audioclip sehen, der abgespielt werden soll. Clip ist gleich der Musik. Öffne die beiden Klammern. Und hier können wir wählen, welche Musik wir spielen möchten. So können wir genau hier sehen, dass die Musik, das erste Element der Tod ist, das zweite die Liebe zur Musik. Also wähle ich hier einen aus, und das wird die Musik spielen. Aber eine weitere Sache, die wir tun müssen, ist, dass wir tatsächlich auf die Audioquelle zugreifen und tatsächlich weitermachen und spielen müssen die Audioquelle zugreifen und , speichern Sie das. Jetzt werden wir tatsächlich anfangen, diese Musik zu spielen. Lasst uns das aufheben. Und mal sehen, was wir tun sollen. Wir müssen auch sicherstellen, dass wir, sobald wir das Spiel richtig starten. Hier nennen wir den Player, nennen wir den ich das als Spieler-Level-Musik nenne. Ich meinte Level Musik spielen. Also spiele Level, Lay-Level-Musik. Spar dir das auf. Zurück in unserem Spiel. Wenn wir uns also den Audio-Manager ansehen, werden Sie sehen, dass wir keinen Clip haben, aber wenn wir das Spiel starten, los geht's. Sie können sehen, dass wir jetzt diesen Audioclip haben und wir herumlaufen können. Da sind wir los. Jetzt ist dies offensichtlich nicht die aufregendste Spielemusik. Ich glaube, du wirst ein viel besseres Lied zum Spielen finden, aber ich denke, es ist gut genug und aufregend genug , um herumzuspielen und zu erkunden. Also, aber das ist aus dem Weg, lass mich damit aufhören. Und Sie können hier zum Beispiel die Priorität ändern. Was ist also die Priorität zwischen dieser Audioquelle und einer anderen? Das ist zu detailliert. werden wir nicht eingehen. Wir können die Lautstärke ändern. Stellen Sie es zum Beispiel auf 0,68 ein. Wenn Sie der Meinung sind, dass die Musik zu hoch ist, ändern Sie die Tonhöhe, ändern Sie den Stereo-Pan und so weiter und so weiter. Aber jetzt, zum Beispiel, wenn wir gestorben sind, wenn ich herumspiele und unser Leben kubisch ist, lass mich einfach die Ebene auswählen und diese hier entfernen. Während sie uns nicht auf Macs Health spielen. Stellen wir es auf 50 ein. Führe das Spiel aus und jetzt sollten wir sofort sterben. Also los geht's. Töte mich bitte. Los geht's, wir sterben. Aber die Musik blinkt weiter. Wir wollen also eine Lösung dafür finden. Ich zeige es dir als Herausforderung. Deine Herausforderung besteht also darin, das Spiel über Musik zu spielen. Suchen Sie also nach Musik, für die Sie spielen können , wenn der Spieler an der offenen Spielkunst stirbt. Und Sie können auch viele andere Levels finden. Und ich habe das nicht erwähnt, weil ich mir wirklich nicht die Mühe gemacht habe, viel Musik zu machen. Ich möchte nur sicherstellen, dass wir das Konzept verstehen und nicht wirklich viele Songs haben und herumspielen. Sie können zum Beispiel hier reingehen und anstatt nur die Musik abzuspielen, können Sie hier eine ganze Zahl hinzufügen, die zum Beispiel die Musik darstellt , die wir spielen sollten, und dann diese Musik und für jedes Level abspielen habe eine Art Musik, die wir spielen. Später wirst du sehen, wie wir im Level Manager all das bewältigen können. Aber suche jetzt nach etwas Musik zum Spielen, besonders wenn der Player stirbt oder du diejenige verwenden kannst, die ich dir zur Verfügung gestellt habe. Erstelle eine Methode, die das Spiel über Song spielt und rufe die Methode auf, wenn wir sterben. also mit diesen Informationen Halten Sie also mit diesen Informationen das Video jetzt an und machen Sie das flache Ende. Okay, willkommen zurück. Wie hast du das alles bekommen? Also hier drin werde ich weitermachen und Entschuldigung spielen, öffentlich nichtig. Spiel spielen. Oh mein Gott. Spiel vorbei. Musik. Öffne das tun, was auch immer sie genannt haben. Und dann hier drin die Audioquelle , dieser Clip ist gleich Musik 0. Und hier drin werde ich der Audioquelle sagen, dass sie abspielen soll. Also spar dir das auf. Und es gibt noch eine Sache, die wir tun müssen, und wir müssen dies anrufen, wenn der Spieler würfelt. Wenn ich also zum Spieler-Gesundheitshandler gehe, wenn ich hier reinschaue und finde, wo wir sterben. Also hier drin kannst du sehen, dass du den Todesbildschirm einschalten kannst. Und wir sagten, das Spielobjekt sei inaktiv. Und wir bekommen auch den Audio-Manager, Punktinstanz, Punkt, Spiel über Musik. Spar dir das auf. Beenden Sie unser Spiel. Und hier, warte, bis das kompiliert wird. Führe das Spiel für die Brennstoffquelle aus. Jetzt, wenn wir sterben. Ja, wie cool ist das? Ernsthaft? Ernsthaft, nehmen Sie sich einen Moment Zeit, um zu schätzen, wie erstaunlich was wir gerade geschaffen haben das, was wir gerade geschaffen haben, dem Spiel nicht mehr Tiefe verleiht, kein Gefühl der Angst hinzufügt, tatsächlich zu sterben. Du fühlst dich selbst, oh mein Gott, ich bin gerade gestorben. Das ist so schlimm wegen der leichten Veränderung der Musik. Ich habe dieses Gefühl nie wirklich gespürt , als ich zuvor in diesem Spiel gestorben bin. Was hat sich die Musik verändert, da sich die Atmosphäre veränderte? Ich habe das Gefühl, dass ich es gerade zerstört habe , weil mir der Musikwechsel wirklich gefällt. Ich hoffe, du hast das auch gefühlt. Ich hoffe, es hat Ihnen gefallen und etwas, das wir sicherstellen müssen , dass wir hier drin tun, wenn wir unsere Änderungen vornehmen. Und der Tag jetzt, wenn du es mir bitte zeigen kannst. Kommen Sie also jeden Tag, sehen wir uns hier an, dass wir die festgestellten Änderungen haben , die wir vornehmen möchten. Aber wir müssen sicherstellen, dass wir alles unter all Ihren Vermögenswerten ignorieren . Wenn ich also alles auf den Assets ignoriere, tun dies alle, weil wir das Audio nicht speichern wollen. Es nimmt einfach viel Platz ein und nicht so praktisch. Jetzt inszenieren wir alle , übernehmen unsere Änderungen und erstellten und Ihren gesamten Manager, der Musik spielt oder Musik und Musik mit all Ihrer Quelle spielt. Los geht's, begehen unsere Änderungen. Ich hoffe, es gefällt euch und wir sehen uns im nächsten Video, in dem wir die Soundeffekte spielen werden , was vielleicht ein bisschen mehr Spaß macht als Musik. Also sehe ich dich. 68. SFX in Einheit: Willkommen zurück, meine Spieleentwickler. In diesem Video haben wir einige Soundeffekte hinzugefügt. Wenn wir das Spiel starten, werden Sie jetzt feststellen, dass wir beim Schießen das Vogelgeräusch haben. Wenn wir die Truhe öffnen, kriegen wir ein Gewehr. Wir haben einen anderen Sound. Und wenn wir versuchen, das zu brechen, gehen wir los. Sie können sehen, dass wir dafür auch einen Soundeffekt haben. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Okay, jetzt ist es an der Zeit, ein paar Soundeffekte zu spielen und das Spiel noch lebendiger werden zu lassen . Was werden wir also tun? Das erste ist offensichtlich, dass wir einen Verweis auf alle unsere Soundeffekte benötigen . Also hier drin werde ich das duplizieren. Und statt Musik nenne ich das die Effekte bei Enter. Ups, nicht eintreten. Da sind wir los. Jetzt haben wir einen Hinweis auf die Soundeffekte. Aber es gibt ein Problem. Wenn ich die gleiche Methode verwenden möchte , mit der ich unsere Musik abgespielt habe, werden unsere Soundeffekte unsere Musik ersetzen. Und das ist ein No-No. Wir wollen nicht, dass die Soundeffekte Musik ersetzen. Das ist einfach nicht so logisch. Wir haben also etwas anderes, was wir tun können. Und das ist eine Methode, bei der es sich um einen Clip handelt. Und ich empfehle Ihnen, die Ressourcen der Audioquelle zu öffnen und alles zu durchschauen , was Sie finden können. Sie können also sehen, dass Sie das Spiel auf wach, die Tonhöhe, den MUX mit kalt ändern können . Und das ist ein ganzer Kurs für sich allein. Wenn du in die Audioquelle gehen willst, wie man die Musik manipuliert, wie man verschiedene Soundeffekte manipuliert und all das gute Zeug. Konzentrieren wir uns vorerst auf den Playclip. An der Stelle. So nennt man es. Sie benötigen eine Position, ein Volume, wenn Sie schneiden müssen. Und Sie können in der Beschreibung sehen, dass es einen Audioclip an einer bestimmten Position im Weltraum abspielt . Das brauchen wir also. Aber Sie können genau hier sehen, dass die Position im Weltraum, nun, wo ist Ihrer Meinung die beste Position, um unsere Musik zu spielen? Nun, ich werde Ihnen jetzt sagen , dass der beste Ort zum Spielen genau auf der Hauptkamera ist, genau auf dem Hörer. So können wir es am besten hören. Da ich hier oben auf das 2D klicke, können wir sehen, dass wir dieses 3D haben. Und wenn ich beim Audio-Hörer sehen müsste, wie das funktioniert, wie zeige ich es dir? Vielleicht im Audio Manager, auf irgendeiner Art, naja, okay, im Moment werde ich es dir nicht zeigen, oder zumindest sehen wir das genau hier. Dies ist also der Bereich, in dem wir unsere Musik spielen. Und im Moment spielen wir auf der Audioquelle das, also ist das nicht schlecht. Aber wenn wir den Clip-Off-Punkt abspielen und er irgendwo weit weg vom Zuhörer ist , werden wir ihn nicht richtig hören können. Deshalb werden wir den Ton auf der Hauptkamera abspielen . War das aus dem Weg? Gehen wir gleich hier in unseren Code zurück. Und wir werden fortfahren und eine öffentliche Lücke schaffen, als Fax spielen. Und dieses Mal geben wir ihm eine ganze Zahl, die die Faxnummer ist. Und hier drin öffne ich die Klammern. Und ich werde sagen, dass die Audioquelle, Punktwiedergabe, Clip, Wiedergabe, alle das tatsächliche kennen, nicht die Audioquelle, auf die wir einen Verweis haben, sondern die eigentliche Audioquelle. Also derjenige, der das als Kapital hat , das einen Clip an einem Punkt abspielt. Und hier drin werden wir ihm einen Soundeffekt oder einen Audioclip geben , der die Effektzahl sein wird. Okay, also heb dir das auf. Und was ist das Problem hier drin? Nun, offensichtlich müssen wir die Position hinzufügen und wie ist die Position? Es ist die Hauptkamera. Denken Sie also daran, dass wir auf die Kamerapunktdomäne zugreifen und die Position umwandeln können . Und ehrlich gesagt bin ich mir nicht sicher, ob wir das behandelt haben. Also werde ich Ihnen nur sagen, dass wir sofort einen Verweis auf die Hauptkamera bekommen, wenn wir eine Kamera schreiben sofort einen Verweis auf die Hauptkamera bekommen, wenn wir . Und von dort aus können wir die Transformation dieser Position nutzen. Wenn wir das nicht abgedeckt haben, tut es mir leid, ich sagte: Nun, wir wissen es schon, aber vielleicht haben wir es schon getan. Auf jeden Fall greifen wir so auf die Hauptkamera zu. Also lasst uns jetzt weitermachen und versuchen, ein paar Kisten zu zerbrechen oder nicht Kisten zu zerbrechen, die tatsächlich versucht haben, die Roberta's zu zerbrechen. Zurück in unserem Spiel können wir sehen, dass wenn wir zum Zerbrechlichen gehen, so zerbrechlich, oder sind es die Forderungen? Da gehen wir In den Zerbrechlichen, wenn wir schneidig sind, sagten wir den Auslöser zu brechen. Hier drin können wir entweder sofort anrufen oder wir können fortfahren und eine Methode erstellen. Und sagen wir zum Beispiel, die Methode wird eine öffentliche Lücke sein. Spielen, brechen Sie als Affekte. Und wenn du willst hier drin. Jetzt gibt es zwei verschiedene Arten, über diese Weise nachzudenken. Wenn Sie möchten, können wir nur ein brechendes Geräusch für alle unsere Zerbrechlichen haben . Oder wenn Sie möchten, können Sie hier anfangen, zum Beispiel eine öffentliche Ganzzahl oder nicht öffentlich zu erstellen eine öffentliche Ganzzahl oder nicht . Ich serialisierte Feld ist etwas Butter Integer und es wird die ASA-Faxnummer sein zum Beispiel zu spielen. Und dann kannst du wählen, welches du spielst und du kannst es direkt hier schicken. Greifen Sie also auf die Dot-Instanz des Audio-Managers zu, Punktwiedergabe als Effekte und senden Sie sie an die Faxnummer, Schließ das. Und wenn wir dann hier einbrechen, nachdem wir die Animation ausgelöst haben, können wir fortfahren und Pause als Effekte spielen. Und da sind wir los. Das ist alles, was wir tun müssen. Oder wenn Sie möchten, gibt es einen anderen Weg, und das ist die Wiedergabe der Soundeffekte mit dem Animationsereignis, wenn Sie möchten. Wenn wir also in den Bot auf den Bot gehen, nein, gekauft, das zerbrechliche gekauft, wenn wir zu den Animationen gehen, können wir hier wählen, um eine Art Ereignissystem zu haben. Zum Beispiel zerstören wir hier, wir können das hier spielen. Sobald es hier einbricht, fügen wir dieses Animationsereignis hinzu. Bewegen Sie es vielleicht ein bisschen nach links. Wir spielen das Animationsereignis. Wir spielen die Pause als Effekte. Und auf dem zerbrechlichen Bot wird feststellen, dass wir die Faxnummer haben, die wir spielen möchten. Und wenn wir zum Audio-Manager gehen, okay, also haben wir die Soundeffekte noch hinzugefügt. Klicken Sie also hier alle Ihre Soundeffekte, wählen Sie alle aus und ziehen Sie sie zu den Soundeffekten. Wie Sie sehen können, haben wir 12 Soundeffekte. Einer von ihnen ist der Flaschenbruch, also werden wir das benutzen. Also lasst uns das hören. Okay, also denke ich, dass das gut genug ist. Eine Flaschenpause als Ausbruch. Was ist also die Position im Audio-Manager? Es ist der 0. Also gehe ich zum Zerbrechlichen. Ich habe es genau 0 gesetzt. Also hat es auf uns gewartet. Exzellent. Und 0, spar dir das auf. Führe das Spiel aus. Und wir sollten sehen, ups, da sind wir los. Und man kann hier etwas wie das wirklich kaputt gekauft hat. Also, da das aus dem Weg ist, mit all diesen interessanten Möglichkeiten , Soundeffekte abzuspielen. Ich stelle dir eine Herausforderung aus. Und Ihre Herausforderung besteht darin, alle Soundeffekte hinzuzufügen. Finde also alle Soundeffekte, die du für deine Spiele brauchst. All das Schießen, das Blut, die Schrotflinte, der Stempel, die Waffe, was immer Sie wollen, und nennen Sie die Methode und alle geeigneten Orte und spielen Sie die Klangfakten so gut ab, dass das Video richtig pausieren jetzt. Ich würde nicht all diese Soundeffekte machen. Ich gehe nur zu ein paar und überlasse den Rest dir. Wenn das aus dem Weg ist, pausieren Sie das Video jetzt und gehen Sie zur Herausforderung. Oh, okay, willkommen zurück. Was ich also tun werde, ist, dass ich ins Waffensystem gehe. Und hier drin werde ich ein serialisiertes Feld erstellen, das int oder integer sein wird. Und während das zerbrechliche, zerbrechliche, ich genau das gleiche hier verwenden werde, dieselbe Variable basierend auf hier drin. Und wir werden ein Publikum oder eine Öffentlichkeit schaffen , was auch immer es ist, wir können es privat machen. Es spielt keine Rolle. Öffentliche Leere und Spiel spielen. Eigentlich Waffen-Sound-Effekte. Und hier drin greifen wir auf den alten Dot-Instanzpunkt Ihres Managers als Effekte zu. Und wir senden ihm die Faxnummer zum Abspielen, speichern Sie sie wieder in Unity. Schauen wir uns unseren Audio-Manager an und was wir haben. Also AudioManager, mal sehen. Die Pistole spielt das laufende Gewehr, Pistolenschuss, das ist vier. Also Pistole als Faxnummer zum Speichern, dass wir vielleicht sogar die Änderungen an der Pistolenwaffe und allem anwenden können vielleicht sogar die Änderungen an der Pistolenwaffe und allem anwenden . Wenden Sie die Änderungen an. Wenn ich jetzt in die Prefabs gehe, wenn ich in das wo sind wir? Waffen? Gewehr, und mal sehen, was wir hier haben. Also überprüfe ich den Audio-Manager. Das Gewehrgeräusch ist die Sieben. Also sieben, das Schrotflintengeräusch ist die Schrotflinte. 99. Spar dir das auf. Und ich werde unsere Musik etwas weniger laut machen . Also die Lautstärke, Lass es uns auf 0 setzen, um das Spiel zu starten. Und jetzt sollten wir sehen, dass wir, wenn wir mit der Pistole schießen, aus irgendeinem Grund keinen Ton haben, weil wir offensichtlich alle vergessen haben, es überhaupt zu nennen. Also hier drin, nachdem wir die Kugel instanziiert haben, spielen wir auch die Waffe als Effekte. Los geht's, heb dir das wieder in unserem Spiel auf. Wir führen das Spiel aus. Und jetzt wo wir Wie cool war das? Jetzt wird also eine echte Pistole erschossen. Mal sehen, was wir hier reinkriegen. Das Gewehr. Sie können also sehen, ob wir versucht haben herumzuspielen , weil wir auf der anderen Seite der Kamera sind. Das ist also die Hauptkamera, wenn wir auf der rechten Seite sind. Je weiter wir verschwinden. Dieses letzte Wochenende hier die Aufnahmen, weil wir an der Hauptkameraposition spielen und die Hauptkamera etwas Zeit braucht , um den Spieler einzuholen. Versuchen wir es also noch einmal. Vielleicht kriegen wir diesmal eine Schrotflinte. Wie cool ist das? Jetzt haben wir Sounds für unsere Waffen. Es gibt viel mehr Soundeffekte, die Sie hinzufügen können. Ich füge sie nicht alle hinzu. Ich behalte es einfach so wie es ist. Aber jetzt gehen wir weiter und das Prefab, der Audio-Manager. Und fügen wir es einfach hier neben dem Spieler hinzu. Vielleicht können wir sogar selbst einen Ordner dafür erstellen. Ich hoffe es gefällt dir. Ich hoffe, Sie begehen Ihre Änderungen. Und wir sehen uns im nächsten Video, in dem wir vielleicht eine Art Audiomixer hinzufügen werden. Wir sehen uns dann. 69. Audio-Mixer verwenden: Willkommen zurück, Meine Lieblingsspielentwickler. Wie Sie sehen können, sind wir in diesem Video ein DJ geworden, wir haben unsere Mixer. Wenn wir das Spiel jetzt ausführen, werden Sie feststellen, dass wir mit der Musik herumspielen, sie höher machen, senken und auch steuern können, wie laut Soundeffekte sind. Also okay, das ist kaum. Sie können sehen, dass wir ihn besser hören können, wenn wir den Klang erhöhen. Wenn wir den Ton verringern, hören wir ihn weniger. Verschwenden wir also keine Zeit mehr. Und lasst uns den 0 Fall mischen. Also lasst uns einen Audiomixer hinzufügen und Dinge verwechseln. Aber es, Lasst uns die Herausforderung machen oder so. Wie auch immer, Audio, Audiomixer, also Fenster-Audio, Audiomixer. Da sind wir los. Wir kriegen den Audiomixer hier. Verkaufen wir es in der Szene. Und wie Sie sehen können, ist dies eine Art Objekt. Und wenn wir uns die Audioquelle im Audio-Manager ansehen, werden Sie feststellen, dass sie ein Ausgabekriterium hat und dies ein Objekt oder ein Prefab des Audio-Managers ist, aber Sie haben das nicht gesehen, aber meine Unity ist abgestürzt, nachdem ich hat das Video beendet. Es gibt also viele seltsame Dinge. Wenn du etwas Seltsames siehst, liegt es wahrscheinlich an dem Absturz. Wie auch immer, Audiomixer, was haben wir hier drin? diese Weise können Sie alles über die Mischer lesen. Im Allgemeinen ist dies jedoch eine Möglichkeit, den Klang jedes einzelnen Audios zu steuern den Klang jedes einzelnen Audios , das wir in unserer Welt haben. Jetzt haben wir die Musik, wir haben die Soundeffekte. Also werden wir zuerst einen Mixer erstellen . Und dieser Mixer wird der Hauptmischer sein. Drücken Sie ganz einfach Enter. Da sind wir los. Wir haben einen Hauptmixer erstellt, und Sie können direkt hier in den Assets sehen, dass wir ein Haupt-Mixer-Spielobjekt erstellt haben oder wie auch immer Sie es nennen möchten, kein Spielobjekt und Audiomixer-Controller. Genau wie wir einen Animator-Controller haben, haben wir auch den Hauptmischer-Controller. Und wir können es genau hier in die Prefabs aufnehmen. Sie können es also klar sehen. Das nächste, was wir haben, ist, dass einige Gruppen, Ansichten und Schnappschüsse nicht auf Details und Dämpfung und all das eingehen werden . Ich weiß kaum, was das alles ist. Alles was ich weiß, dass ich hier unter den Meistern eine Gruppe erstellen und sie Musik nennen kann. Und dann wähle die Master aus. Schon wieder. Stellen Sie sicher, dass Sie die Musik-Auswahl-Meister nicht auswählen. Und dann erstellen Sie hier die ASA-Fakten. Kannst du bitte aus dem Weg gehen? Da sind wir los. Der Soundeffekt, damit Sie sehen können, dass der Master sowohl die Musik als auch den Soundeffekt steuert. Und dann können wir den Musik- und Soundeffektpegel nach Belieben ändern . Wenn ich also hier in den Audio-Manager gehe, kannst du sehen, dass ich die Ausgabe ändern und eine dieser beiden auswählen kann . Da wir diese Audioquelle 40 Musik verwenden, wähle ich die Musik aus. Und da sind wir los. Wir können sehen, dass jetzt die Audioclips , die mit dieser Audioquelle abgespielt werden, die Musik verwenden. Lassen Sie uns zeigen, wie das funktioniert. Also gehe ich ins, wo ist es? Die Lautstärke hier drin? Ich setze es auf eins zurück. Und jetzt, wenn ich das Spiel jeden Tag führe , los geht's. Sie können sehen, wie laut das ist, aber ich kann den Ton im Wiedergabemodus reduzieren. Da gehst du. Sie können sehen, dass ich den Ton mit diesem Mixer genau hier reduzieren kann. Mach es sogar höher als es sein sollte. Denken Sie also daran, dies im Wiedergabemodus ist Wenn ich zurückgehe, muss ich es ändern. Aber wie Sie jetzt sehen können, abgespielt , weil es durch den Audiomixer der Gruppe und Musik bedeutet das, dass ich die Dinge ändern und sie nach Belieben hinzufügen kann wird. Also höre ich damit auf. Und da sind wir los. Sie können das sehen, weil es diesen roten Knopf hatte, bedeutet das, dass er aufgenommen wurde und es auf einem sehr niedrigen Stand gehalten hat, 20 oder was auch immer, 28 Dezibel. Okay, großartig, das ist großartig. Aber jetzt wollen wir Soundeffekte hinzufügen. Aber wie werden die Soundeffekte erzeugt? Während ich das Spiel führe, haben wir das im letzten Video nicht bewältigt. Das sollte ich, ich pausiere? Okay, das habe ich nicht schneller gemacht, noch sollte ich innehalten. Und da gehst du. Sie können sehen, dass dies ein One-Shot für Sie war, und es hat die Audioquelle für sich allein und es spielt, und es funktioniert. Es gibt jedoch keine Möglichkeit für uns, auf die Audioquelle zuzugreifen. Ich meine, tut mir leid, die Ausgabe dieser Audioquelle, vertrau mir, ich habe viel versucht, darauf zuzugreifen. Es gibt absolut keine Möglichkeit, dies zu tun, aber ich habe einen Weg gefunden. Ich bin sicher, dass das noch nie niemand gemacht hat. Dies ist das erste Mal, dass ich das gesehen habe, aber ich habe es ausprobiert und es funktioniert. Also lasst es uns machen. Das erste oder erste Verständnis , das wir daran ändern müssen, ist, anstatt nur die Audioclips zu haben. Wir werden sie in Gain-Objekte umwandeln. Und jedes Mal, wenn wir schießen, werden wir dieses Spielobjekt instanziieren. Und dann werden wir offensichtlich die Ausgabe davon ändern oder den Mixer für das Spielobjekt ändern , das die Audioquelle haben wird. Ich glaube, niemand hat etwas verstanden. Lassen Sie uns also demonstrieren, wie das funktioniert und Sie werden es sehen. Also zurück zu den Soundeffekten. Ich wähle alle meine Soundeffekte aus. Ich ziehe sie in meine Hierarchie. Jetzt können Sie sehen, dass jeder davon ein Spielobjekt mit einer Audioquelle ist . Was ich also mache, ist, dass ich all diese auswähle. Also von der Flaschenpause bis zur ausgerüsteten Waffe und wähle hier den Ausgang aus und mache ihn unter den Soundeffekt-Hauptmischer. Dann gehen wir zum Prefab. Klicken Sie mit der rechten Maustaste, erstellen Sie hier einen Ordner, in dem die Effekte eingegeben wurden, öffnen Sie diesen. Und dann werden wir alle eins nach dem anderen zu einem Vorzug machen. Entschuldigen Sie mich. Da sind wir los. Immer noch Spieler, der getroffen wird, Gewehrschuss, Laufen, Schrotflinte, Scharfschützenschuss, Waffe ausgerüstet. Und jetzt können wir all diese löschen und wir alle haben sie alle als Spielobjekte. Machen wir den Audio-Manager auch zu einem Spielobjekt. Spar dir das auf. Und jetzt sollten wir die Art und Weise ändern, wie unsere Soundeffekte im Audio-Manager abgespielt werden. Also lasst uns das machen. Ich öffne den Audio-Manager hier drin. Und weil wir diese Art von System bereits verwenden , wo wir den Parameter erhalten, können wir ihn so behalten, wie er ist. Aber anstatt diese Soundeffekte als Audioclips zu haben, werde ich dies in ein Spielobjekt-Array umwandeln und das speichern. Hier unten werden wir einen Fehler haben. Lassen Sie uns das einfach auskommentieren, speichern Sie das. Und jetzt in Unity werden Sie feststellen, dass wir die Soundeffekte haben, die Spielobjekte sind. Und ich setze das auf 0 Enter. Unsere Liste ist also leer. Ich gehe in den Soundeffekt-Ordner und sperre dies, wähle alle aus und ziehe sie in den Soundeffekt. Wie Sie sehen können, haben sie immer noch das gleiche Arrangement. So können wir zum Beispiel im Zerbrechlichen oder in der Pistole ändern, was wir wollen , und alles wird gleich bleiben. Die Implementierung der Methode bleibt gleich. Jetzt, da wir das aus dem Weg haben, wenden wir unsere Änderungen an. Und lasst uns wieder in den Code gehen und sehen, was wir tun werden. Jetzt stelle ich dir eine Herausforderung aus. Ich denke, es ist eine ziemlich solide Acht von zehn auf dem Schwierigkeitsgrad. Also gebe ich dir einen winzigen Hinweis. Dies ist kein großer Hinweis, oder erstellen Sie einfach ein privates Spielobjekt, das V als Fax sein wird. Und das liegt daran, dass wir Reifen sein werden. Später werden wir dieses Spielobjekt löschen und benötigen einen Verweis darauf. Also werde ich das speichern und werde dich zu deiner Herausforderung bringen. Ihre Herausforderung besteht darin, die Soundeffekte zu instanziieren. Konvertieren Sie also das Methodenspiel als Effekte. Sie müssen VV instanziieren. Das richtige als Effekte GameObject. Sie müssen sicherstellen, dass das Elternteil die Hauptkamera ist , damit wir richtig zuhören. Warum die Hauptkamera? Nun, offensichtlich weil wir sagten, dass wir den Soundeffekt beim nächstgelegenen Hörer instanziieren lassen wollen . Sie müssen den Soundeffekt nach einer gewissen Zeit zerstören . Und wir werden etwas verwenden, das als Invoke bezeichnet wird. Also haben wir Coroutinen gemacht, wir haben noch keine Aufrufe gemacht. Und ich zeige dir nur ein bisschen von dem, was unsere Anrufer anruft. Wie auch immer, dies ist der Aufruf genau hier, was ein Mono-Verhalten ist. Und Sie können sehen, dass Sie den Aufruf mit der Methodennamenzeichenfolge verwenden und eine Fließzeit verwenden können . Und wenn die Zeit auf 0 eingestellt ist, ist dies im Buch. Wie auch immer, um eine bessere Leistung zu erzielen, können Sie stattdessen Coroutinen verwenden, aber ich wollte Ihnen nur zeigen, dass dieser Aufruf funktioniert. Du siehst genau hier und das Beispiel wie es funktioniert. Und schließlich gebe ich dir einen kleinen Hinweis. Verwenden Sie die Clip-Planken für die Zeit, um zu warten. Mit diesen Informationen weiß ich, dass dies eines der schwierigeren Videos ist. Herausforderungen, ich meine, wenn Sie es sehr schwierig finden, und selbst ich musste es mehrmals machen , um es 100% richtig zu machen. Sie können immer noch Coroutinen verwenden, es ist vollkommen in Ordnung. Ich möchte nur, dass du dieses Tool weißt oder in deinem eigenen Arsenal hast , nur Fall, dass du es manchmal brauchst. Damit aus dem Weg ist, pausiere das Video jetzt und gehe zur Herausforderung. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Ich hoffe, es war nicht zu heiß. Was wir also hier drin tun werden, ist zunächst, dass wir fortfahren und instanziieren werden. Und was instanziieren wir? Wir instanziieren den FX unter der Faxnummer, die uns gesendet wurde. Und wir müssen den Elternteil wählen. Und dieser Elternteil wird die Kamera sein, aber Maine, und es wird sich verändern. Ich bin mir also nicht sicher, ob wir jemals auf den Kamerapunkt zugegriffen haben. Vielleicht haben wir das getan, vielleicht haben wir es nicht getan. Ich hoffe, es war keine allzu schwere Herausforderung, aber sowieso. So machen wir es als Kind der Spielkamera, du hast die Hauptkamera. Und nachdem wir das getan haben, werden wir hier eine Methode erstellen, die eine private Lücke sein wird. Zerstöre als Beeinfluss-Objekt. Und hier drin werden wir zerstören, aber was werden wir zerstören? Sie möchten diese Soundeffekte genau hier zerstören. Also erstelle ich ein Spielobjekt Via oder nein, tut mir leid, tut mir leid. Ich meinte, das Spielobjekt nicht zu erstellen. Ich habe es bereits erstellt. Also v als f x wird gleich dem Spielobjekt sein , das wir instanziiert haben. Und wir werden die Auswirkungen der USA zerstören. Und das ist alles, was wir tun müssen. Dann haben wir den Invoke. Also rufen Sie an oder nein, dies ist nicht derjenige, den wir brauchen und aufrufen, dies ist derjenige, den wir brauchen. Hier drin. Wir müssen ihm den Methodennamen geben, also kopiere ich den Methodennamen. Aber zwischen diesen beiden kleinen Zitaten, und dann brauchen wir die Zeit und wie gesagt, müssen wir die Zeit der Sonnenfinsternis nutzen. Wie werden wir das machen? Nun, wir können die Effekte nutzen. Dann können wir die Komponente darauf bekommen, nämlich die Audioquelle oder die O-Kraft. Und dann können wir von dort aus auf den Clip zugreifen. Und mit dem Clip können wir auf die Länge dieses Clips zugreifen. Also speichere ich mir das aber auf, was passiert hier drin? Zunächst instanziieren wir die Soundeffekte basierend auf der Soundeffekt-Zahl , die wir erhalten. Wir bekommen dann die Kamera oder wir machen sie zu einem Kind der Hauptkamera, indem wir auf die Hauptunterrichtstransformation von Kamerapunkten zugreifen . Ich glaube, wir haben das durchgemacht. Ich kann mich einfach nicht erinnern wo. Aber wie auch immer, wir machen es zu einem Kind der Hauptkamera. Warum? Weil wir wollen, dass der Ton genau auf der Hauptkamera ist. Dann rufen wir eine Methode auf, die den Soundeffekt nach einer gewissen Zeit zerstört. Denken Sie daran, dass die Objekte, die einmal instanziiert wurden, zerstört werden müssen. Und wir möchten nicht, dass unsere Hierarchie mit Soundeffekten gefüllt ist, die wir nicht mehr verwenden, oder sogar Spielobjekte, die wir nicht mehr verwenden. Und dann haben wir dieses Destroy Soundeffekt-Spielobjekt erstellt , das den v-Soundeffekt zerstört , den wir hier instanziiert haben. Wenn Sie das in Unity speichern, öffnen Sie dies, lassen Sie uns das Spiel ausführen. Spar dir das alles auf, weil ich Angst habe, dass das wieder abstürzt. Jetzt, wenn wir das Spiel laufen, öffnen wir die Kamera. Wir können genau hier die Hauptkameras sehen. Wenn wir das also pausieren sollten, schauen Sie sich das an. Jetzt haben wir den Pistolenschuss. Da sind wir los. Also lasst uns weitermachen. Sie können sehen, dass wir 1234 und alle haben. Und Sie können in den Soundeffekten sehen, dass es von den Soundeffekten beeinflusst wird. Lass uns das anprobieren. Okay, also haben wir dieselbe Waffe. Keine Sorge. Versuchen wir es noch einmal. Vielleicht kriegen wir es wieder. Wir holen uns bitte wieder die Pistole. Kann ich bitte eine Schrotflinte haben? Oder ein Gewehr? Das ist gut genug. Wenn wir jetzt schießen, los geht's. Sie können sehen, dass alle Schüsse hier instanziiert wurden und sie gespielt werden. Ich hoffe es gefällt dir. Ich hoffe, du begehst deine Änderungen und ich sehe dich im nächsten Video, da du unseren Gewinn jetzt mit Soundeffekten so viel besser sehen kannst . Also das erledigt, wir sehen uns im nächsten. Wenn Sie noch keine Hebelansicht haben, sehen wir uns. Dann. 70. Teil 12: Mehrere Enemy – verschiedene Arten von Feinde (Spieldesign): Hey, willkommen zurück Meine Lieblingsspielentwickler zu einem brandneuen Video. Und in diesem Fall werden wir das Intro und das ganze Video zusammen zerdrücken lassen, weil kein Intro erforderlich ist. Wir werden keine Programmierung machen, wir werden keine Einheit machen, aber wir werden über einen sehr wichtigen Aspekt in der Spieleentwicklung und im Spieldesign sprechen einen sehr wichtigen Aspekt in der Spieleentwicklung und im . Wir beginnen also immer mit der Erstellung der Kernfunktionen oder der Kernmechanik. Dies sind zum Beispiel das Gehen, das Springen, das Schießen, das Zielen, die Kugeln, all diese Dinge, der Kern, die Kernmechanik unseres Spiels, diese müssen sehr gut sein . poliert und es ist sehr wichtig, dass diese alle richtig eingerichtet werden bevor Sie andere Dinge erstellen, wie zum Beispiel die Animationen oder die Feinde. Warum? Denn sagen wir, du hast welche, ich weiß nicht, natürlich hast du das durchgemacht. Vielleicht hast du ein paar tolle Spiele mit vielen fallenden Gebäuden und ich weiß nicht, viele gruselige Feinde. Die Schießerei ist sehr schlecht. Also auch wenn auch immer ein Feind oder was auch immer, ich weiß nicht, das System upgraden Sie haben. Wenn die Dreharbeiten langweilig sind, möchten Sie das Spiel nicht spielen. Wenn das Gehen und Laufen langweilig ist, möchten Sie das Spiel nicht spielen. Es ist also wichtig, sich zunächst auf die Kernfunktionen Ihres Spiels zu konzentrieren und dann können Sie damit beginnen, das zweitwichtigste Ding zu erstellen , das zum Beispiel die, ich kenne die Feinde nicht, die feindlichen Typen, die wir tun werden, oder? Oder nicht, selbst die Feinde geben, nur die Feinde. Dies ist das zweitwichtigste Ding. Feinde zu haben, Levelübergänge zu haben, Arnaud vielleicht eine gute Reihe von Animationen zu haben, ein gutes Level-Design, zum Beispiel, diese sind auch sehr wichtig. Stellen Sie sich ein erstaunliches Level vor, aber das Gehen ist so schlimm, dass Sie es nicht genießen können. Daher ist es sehr wichtig, sich zunächst auf die wichtigsten Dinge zu konzentrieren , die die Kernmerkmale sind, dann konzentrieren Sie sich auf die zweitwichtigsten Dinge wie Feinde, Sprites, Animationen und so weiter. Und dann das drittwichtigste, auf das man sich zum Beispiel auf die feindliche Vielfalt konzentrieren sollte. Ich weiß es nicht. Vielleicht sind die Art von Waffen, die du hast, die Farbe der Kugeln zum Beispiel die drittwichtigsten Dinge. Die Beleuchtung, was auch immer es ist. Also die Dinge, die dein Spiel ein bisschen besser machen , die kleinen Mechaniken, die nur optimiert werden, oder die Pickups oder die Gesundheit. Dies sind alles die drittwichtigsten Dinge, die Kernmerkmale, die zweitwichtigsten Dinge, die äußeren Merkmale und das dritte. Wir haben also schon ein sehr schönes Spiel erstellt. Wir haben den Übergang geebnet, wir haben gutes Gehen, wir haben schneidig. Wir haben mehrere und mehrere Feinde, tut uns leid , mehrere Waffen, mehrere Kugeln , die alle unterschiedlich voneinander funktionieren. Wir haben gute Animationen. Wir haben die schönen Übergänge von Rebellen. Ich habe bereits Übergänge gesagt. Wie auch immer, wir haben ein wirklich schönes Spiel entwickelt, aber jetzt ist es an der Zeit, uns auf die zweitwichtigsten Aspekte unseres Spiels zu konzentrieren . Und wir beginnen damit, verschiedene Arten von Feinden zu haben. Zuallererst werden wir den feigen Feind haben. Derzeit haben wir also schon eine Art von Feind, nämlich das Skelett, das einfach da steht. Und sobald die Schicht in einer bestimmten Reichweite vorbeikommt, fängt er an, die Messer zu werfen. Und wenn wir zu nahe kommen, fängt er an, uns zu jagen, und wenn wir davonkommen, können wir uns zurückhalten. Das ist also ein Typ. Der zweite Typ ist derjenige, der davonläuft, wenn der Spieler nahe kommt und aus der Ferne zu schießen beginnt. Die Herausforderung bei diesem Kerl besteht also darin, dass wir versuchen, sie anzugreifen. Wir haben versucht, sie zu erschießen. Wir sind nah dran, um einen genauen Schuss zu bekommen, aber er rennt immer davon. Dann müssen wir näher kommen und die ganze Zeit schießt er Pfeile. Es ist also sehr nervig, was eine gute Art von Feind ist. Und ich habe die Skelett-Sprites bei all diesen benutzt , weil ich nicht weiß , welches ich von diesen Teilen verwenden werde, die wir haben. Dann haben wir den Wanderer , der ohne Ziel in zufällige Richtungen herumläuft , aber den Spieler jagt, wenn er nahe kommt. Und wir werden versuchen, eine Art malaiischer Angriff hinzuzufügen. Oder wenn der Spieler in der Nähe oder als nächstes ist, dieser Feind, wird er sich verletzen. Wir werden uns nicht viel darauf konzentrieren hauptsächlich weil wir das tun werden. Und im Boss-Bereich, wir werden unseren Feinden derzeit keine Nahkampfangriffe hinzufügen , vielleicht werden wir es tun, vielleicht fügen wir einfach eine Art Kreis um den Feind hinzu. Wenn der Spieler näher kommt, werden Sie alle paar Sekunden verletzt. Aber der Mailer-Angriff wird für uns eher im Mittelpunkt stehen. Das Kassensystem. Und schließlich haben wir das Erdöl. Und dieser Typ geht von 1 zum nächsten und greift den Spieler an, wenn er nahe kommt und wenn der Spieler davonläuft, dann patrouilliert er wieder. Sie haben also all diese Arten von Feinden gesehen. Eine, die davonläuft und dann aus der Ferne schießt, eine, die ziellos herumwandert. Aber wenn er den Spieler sieht, läuft er auf ihn zu und versucht ihn zu töten. Und dann haben wir endlich einen kleinen, der nur das Gebiet patrouilliert, von 1 zum nächsten rockt, dass wir ihm ein bestimmtes geben werden . Wir werden ihm bestimmte Punkte in die er gehen muss. Und wenn der Spieler sich nähert, wird er anfangen, ihn davon zu jagen, dass der Spieler weglaufen kann, dann wird dieser Typ wieder in seine Position zurückkehren. Bevor ich also fortfahre und dir die Herausforderung gebe, habe ich dir bereits die Feinde gezeigt, die ich dir mit den Feinden in den Ressourcen versorgt habe, kannst du weitermachen und deine eigenen finden. Offensichtlich werde ich das gesamte Animationsset erstellen, alle Sprites, weil wir das alle oft fertig gemacht haben. Ich möchte also nicht weiter Zeit verschwenden Sprites aufschneiden und Animationen erstellen. sind also Dinge, die Sie bis zu diesem Zeitpunkt gut gerüstet sein sollten . Wenn Sie immer noch Schwierigkeiten haben, gehen Sie zurück, schauen Sie sich ein paar Videos an, wo wir die Animationen erstellen, aber ich denke, dass wir das jetzt so viel getan haben , da Sie ein ziemlich solides Verständnis haben, wenn du willst, werde ich ein bisschen darüber nachdenken, wie ich sie so schnell erstellt habe, wie ich die Sprites eingerichtet habe und so weiter. Aber ich glaube, es ist ziemlich einfach. Es ist genau wie der erste Feind. Ich meine, vielleicht kopiere ich ihn einfach und füge ihn ein und benutze die gleiche Mechanik, alles fast. Und damit werde ich eine Herausforderung stellen, bevor ich gehe, und es ist Zeit zum Nachdenken. Also. Du hast mich die ganze Zeit beobachtet. Du hast kopiert, was ich jetzt tue, es ist Zeit für dich zu denken. Also. Wo ist es? Okay, vielen Dank anderer Bewegungen du gerne haben oder deinen Feinden hinzufügen möchtest, benutze Videospiele, die du spielst. Vielleicht willst du eine Art Feind , der vielleicht verschwindet und woanders auftaucht. Vielleicht willst du eine Art Feind, der auf den Spieler zustürzt und ihn durchgeht und ihn beschädigt. Vielleicht willst du, ich weiß nicht, sinc von Dingen. Auch wenn Sie vielleicht nicht wissen, wie man diese Mechaniken erstellt, schreiben Sie sie einfach auf. Denken Sie daran, Ihre Vorstellungskraft davon zu nutzen , welche Art von Feind Sie haben möchten, auch wenn Sie nicht wissen, wie es geht, ist dies unerlässlich. Du denkst vielleicht, ich weiß nicht, wie ich einen verschwindenden Feind erschaffen soll. Michael, wie mache ich das? Denk nicht so nach. Denken Sie daran, dass ich einen verschwindenden Feind erschaffen möchte , und ich werde alles tun, was nötig ist, um das zu tun. Selbst wenn ich momentan nicht die vollständigen Informationen habe, müssen Sie an verschiedene Angriffe denken. Du hättest gern Feinde. So wie wir schon sagten, stürzt dieser Feind vielleicht durch dich hindurch und schadet dir. Vielleicht wirft dieser Feind etwas. Vielleicht springt dieser Feind auf dich. Vielleicht dieser Feind weiß ich nicht, was er macht. Vielleicht schafft er eine Art Erdbeben oder etwas für dich, ist nein, nutze deine Fantasie, hab Spaß, genieße. Und schließlich kannst du es auf unserem Discord-Kanal teilen. Wenn du es bis zu diesem Punkt immer noch nicht weißt, hab eine Zwietracht. Du hast vielleicht unter einem Felsen gelebt oder so. Wir haben tatsächlich einen Discord-Kanal. Es ist eine erstaunliche Community, sie wächst, ich glaube, wir haben gerade fast 200 Mitglieder. Und wenn du dieses Video ansiehst, sind es wahrscheinlich über 300. Viele Leute schauen zu. Viele Leute stellen nicht nur Fragen, sondern versuchen auch anderen Menschen zu helfen. Und es ist sehr wichtig, vertrau mir, als ich anfing, Kurse zu erstellen und Menschen zu beantworten, ging mein Wissen über Einheit durch das Dach, denn jeden Tag habe ich Leute, die mir Fragen stellen , die selbst ich nicht habe kenne die Antwort auf. Also habe ich Dinge recherchiert und das Problem auf meinem PC erstellt oder simuliert und dann verstanden, was das Problem ist. Und damit konnte ich die Mechanik und all die Problemlösung nutzen, die ich gelernt habe, indem ich den Schülern antwortete, jedes Mal ein besseres und dann ein besseres und noch besseres Spiel zu schaffen ein besseres und dann ein besseres und noch . Also empfehle ich Discord Channel, gehe dorthin, beobachte einige der Leute, die die unbeantworteten Fragen sind, stelle Fragen und teile dein Spiel. Teilen Sie mit, was Sie in Ihrem Spiel haben möchten, welche Art von Feind Sie umsetzen möchten. Vielleicht findest du dort sogar Freunde, die dir zusammen helfen, ein Spiel zu erstellen. Wir sind bereits wie drei Personen gesehen , die dort ein Team gebildet haben. Und so erstaunlich. Ihre Namen sind kitschig und eine Art BD, ich weiß nicht. Mark, Jesus und NVD arbeiten jetzt zusammen, um ein verrücktes Spiel zu kreieren. Was? Ich habe nicht einmal versucht, mich in das Gespräch zu versetzen , weil ich schon viel auf dem Teller habe. Aber wie Sie sehen können, ist es eine erstaunliche Community, großartiger Ort zum Lernen. Halten Sie also das Video jetzt an. Denken Sie, nehmen Sie wenigstens auf, geben Sie sich zehn bis 15 Minuten Zeit, um Dinge aufzuschreiben. Viel Spaß, viel Spaß. Und damit sehe ich dich im nächsten Video. 71. Der Cowardly: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und in diesem haben wir, wie Sie sehen können, einen kleinen flippenden Dämon geschaffen, aber dieses Mal ist er kein sehr mutiger. Er ist ein bisschen feige, also läuft er davon, wenn wir nah dran sind. Jetzt laufe ich herum, komme ich nah dran und wie Sie sehen können, läuft er weg und wirft seine Kacke auf uns, glaube ich, oder Dreck oder ich weiß nicht, was das ist. Wie Sie sehen können, haben wir versucht, ihn zu erschießen. Wir haben versucht, näher zu kommen, offensichtlich sein Bestand an der Wand, aber Sie können sehen, dass, wenn wir uns aus einer anderen Richtung nähern, immer noch sein Bestand an der Wand, aber keine Sorgen darüber sind. Du siehst, dass er vor uns davonläuft. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Okay, so wie du siehst, habe ich für mehr Feinde geschaffen, den feigen fliegenden, ich, den Koblin-Wunder. Ich weiß nicht, warum es Wonder One heißt, aber sowieso ist das sein Name. Und natürlich haben wir das Skelett und endlich haben wir den patrouillierenden Pilz. Also werden wir all dies in jedem einzelnen Video verwenden . Und wie gesagt, möchte ich den Prozess, dies mit Ihnen zu tun, nicht durchlaufen . Alles was ich getan habe ist, dass ich einfach das Skelett dupliziert das Körpersprite ändere, den Animator, die Animation und all das ändere. Ich habe auch dafür gesorgt, dass ich mich änderte und hier die Animation und so weiter und so weiter. Jetzt jagen sie alle und machen dasselbe. Aber was wir tun werden, ist, dass wir den feigen oder den Goblin-Wanderer, den patrouillierenden Pilz und den Skelettfeind entfernen . Und wir werden einfach das feige fliegende I behalten, und das werden wir verwenden, um unseren feigen Feind zu erschaffen. also ohne weiteres Lasst uns also ohne weiteres die Kontrolle öffnen. Oh, und übrigens habe ich auch für jeden von denen ein Projektil geschaffen . Jeder hat also sein eigenes Projektil. Das habe ich auch geschaffen. Aber sowieso, und öffnen wir den feindlichen Controller hier drin. Und fangen wir mit ein paar Ziegen an. Das erste, was wir brauchen, ist, dass wir hierher gehen müssen und ein bisschen Platz hinzufügen müssen. Und wir werden sagen, dass dies die Feinde sind, die außer Kontrolle geraten, und es bedeutet, dass sie weglaufen. Und hier drin werde ich zwei serialisierte Felder erstellen , die ein boolescher Wert sein werden , denn der sollte weglaufen. Und dann noch ein serialisiertes Feld für den Float Run Away-Bereich. Also R1-Weg-Bereich. Und offensichtlich, weil wir eine bestimmte Reichweite haben wollen , in der der Feind davonlaufen wird. Jetzt gibt es noch eine andere Sache, die wir hinzufügen müssen, weil wir Feinde erschaffen, die weglaufen sollten. Wir sollten auch die Feinde kennen , die den Spieler verfolgen sollten. Also werde ich hier wieder ein anderes erstellen, was der sein wird, oder wissen, was hier oben etwas geschaffen haben. Und er brachte den Angreifer in den Nachrichten, dass der Spieler noch die Richtung bewegt, Spieler, um die Verfolgungsreichweite der Spieler zu verfolgen. Okay, also hier drin werde ich das erschaffen und die Feinde haben, den Schachspieler, Feinde, die die Ebene verfolgen. Und hier drin werde ich auch ein serialisiertes Feld für den Booleschen erstellen . Es wird den „sollte jagen“ Spieler geben. Da sind wir los. Jetzt haben wir die Möglichkeit, eine dieser beiden zu wählen. Und mal sehen, was wir tun müssen, bevor wir weitermachen. Wir müssen hinzufügen, dass dies die Spielerbedingung verfolgen sollte. Also wo fügen wir es hinzu? Zuallererst müssen wir es offensichtlich hinzufügen , wenn wir Geschwindigkeit geben. Also hier drin aktualisieren wir animierenden Feind, der sich auf den Spieler zubewegt. Also gehen wir los und bewegen uns auf den Spieler zu. Und hier müssen wir sicherstellen, dass wir es auch haben und wir sollten den Spieler jagen. Also hier drin bekommen wir die Richtung, die der Spieler ist , der die Position abzüglich der aktuellen Position des Feindes verfolgt. Und dann gehen wir hin und wir sagten, das jagt. Und hier drin, wie Sie sehen können, habe ich redundanten Code. Diese beiden Zeilen sind genau gleich. Was ich also tun werde, ist, dass ich hier eine Variable erstellen werde, die aufgerufen wird, also ist Distanz ein Float. Also werden wir einen Schwimmer erstellen, der der Distanzspieler, der Feind sein wird . Und es wird gleich der Vektorentfernung so weiter sein. Und statt dieser langen Linie werde ich sagen, dass es der Feind der Distanzschicht ist. Fügen Sie ein bisschen Platz hinzu. Da sind wir los. Und jetzt doppelklicken Sie hier rein , kopieren Sie es, fügen Sie es hier ein, es ist dasselbe, oder? Also transformiere die Position, der Spieler jagt Punktposition, genau das Gleiche. Da sind wir los. Das sparen wir uns. Und auch hier drin müssen wir sicherstellen, dass er jagt und der sollte jagen Spieler. Los geht's, heb dir das auf. Und wenn das erledigt ist, lasst uns weitermachen und sehen, was wir haben. Jetzt hier drin. Wir wissen bereits, was passiert wenn wir den Spieler verfolgen sollten. Aber was passiert, wenn wir vor dem Spieler davonlaufen sollten ? Ich werde hier eine separate If-Bedingung erstellen, was sagen wird. Wenn wir weglaufen sollten oder wir weglaufen sollten. Und wo endet es die Distanz? Spielerfeind ist weniger als die Reichweite des Ausreißer. Der Spieler ist also in Reichweite, dann werden wir die Richtung erstellen, in die wir uns bewegen können. Aber dieses Mal werden wir, anstatt die Richtung vom Spieler zu bekommen , um die Position zur Transformationsposition zu verfolgen , die Transformationspunkt-Position abzüglich des Spielers festlegen , um den Punkt zu jagen im Vergleich zum Spieler, um seine Stunden zu jagen, Spieler jagt Punktposition. Was dies tun wird, ist, dass es die gleiche Richtung schaffen wird , um sich zu bewegen, aber auf die entgegengesetzte Weise. Das wird also negativ sein. Anstatt also auf den Spieler zuzugehen, werden wir uns vom Spieler entfernen. Also werden wir das retten. Wir werden wieder in unser Spiel gehen. Und mal sehen, was wir hier haben. Also müssen wir ein paar Dinge ändern. müssen wir also jeden Tag sicherstellen. Und das neue Update der Einheit ist sehr, sehr nervig. Ich habe nicht so viele Fehler, so viele Störungen drin. Ich hatte viele Abstürze. Sie können also eine bessere Version als das 0.3.15 F2 2020 herunterladen oder was auch immer es ist. Stellen Sie sicher, dass Sie das tun weil ich diese Version nicht mag. Ich meine, schau wie langsam es sowieso ist. Zuallererst ist das Jagen. Wir müssen es privat machen weil ich es nicht ständig sehen möchte. Wir müssen es nicht privat ändern. Und das Männchen, der Angreifer. Was nun, weil wir es in diesem Bereich nicht implementieren werden , in diesem Teil des Kurses. Lassen Sie es uns einfach entfernen, damit wir hier etwas mehr Platz haben. Also hier drin können wir den Spieler jagen und wir müssen sicherstellen, dass wir weglaufen sollten. Und was ist der Runaway-Bereich? Nun, ich werde dir eine Herausforderung stellen , damit wir wissen, was die Runaway-Reihe ist. Und das heißt, einen blauen Kreis um den Feind oder was auch immer er will zu schaffen . Finde also die OnDraw-Gizmos darin schaffe eine Bedingung für den Feind, der davonlaufen sollte. Und wählen Sie die blaue Farbe oder eine beliebige Farbe und zeichnen Sie , offensichtlich eine Kugel. Und als zusätzliche Herausforderung stellt sicher, dass wir keine unnötigen Kreise zeichnen. Erstellen Sie also auch eine Bedingung für den Verfolgungsbereich, zum Beispiel wollen wir ihn nicht sehen, wenn wir den Spieler nicht verfolgen. Also pausiere das Video jetzt und gehe zum Chat. Okay, willkommen zurück. Also werde ich nach unten scrollen und er auch hauptsächlich Angreifer. Der Angreifer wurde hier tatsächlich eingesetzt. Okay, darüber machen Sie sich keine Sorgen. Wir werden das entfernen. Okay, also zurück hier unten auf der Droge ist am meisten. Also hier drin können wir sehen, dass wir den Spieler-Chase-Bereich bekommen. Wenn wir also den Spieler jagen sollten, dann werden wir natürlich diese beiden auswählen und sie in den Spieler stecken . Dies ist auch etwas, das sich innerhalb des Spieler-Chase-Bereichs befinden sollte . Oder ich meine, in der sollte jagen Spieler. Da sind wir los. Wenn der Schießstand in Ordnung ist, behalten wir ihn dafür so wie es ist. Und schließlich werden wir hier eine if-Anweisung erstellen, die wir sagen werden, wenn wir außer Kontrolle geraten sollten, dann werden wir die Gizmos-Punktfarbe bekommen die Gizmos-Punktfarbe und sie wird auch der Farbe entsprechen. Wir verwenden bereits Blau, also verwenden wir gelb, grün, grün. Also los geht's, Green. Und wir werden diese Zeile hier kopieren , weil sie fast gleich ist, außer dem Schießstand, der Ausreißerreichweite. Spar dir das auf. Entferne die zusätzlichen Leerzeichen hier drin. Und jetzt haben wir eine Möglichkeit , die Distanz zu messen, die wir mit k davonlaufen werden . Wir haben die blaue Reichweite, die die für die Dreharbeiten ist. Okay, großartig. Und dann haben wir die Runaway-Reichweite. Also okay, also wenn der Spieler in diese Reichweite kommt, sollte der Feind davonlaufen. Also das läuft das Spiel. Und mal sehen, wie das funktioniert. Jetzt sind wir also im Spiel. Wir kommen dem Feind nahe. Los geht's, du kannst sehen, dass er vor uns davonläuft. Wenn ich versuche schneller zu handeln, beginnt er sich zu bewegen. Nun, das liegt daran, dass er langsam ist. Offensichtlich werden wir ihn etwas vielleicht schneller machen , weil er ein fliegender Feind ist. Als ich jetzt versucht habe, nahe zu kommen, er immer wieder davon. Also hey, nun, und er hat uns sogar angerufen, denn während wir ihn jagen, wirft er Geschosse. Ehrlich. Und auch eine Sache, die ich vergessen habe zu erwähnen, dass ich die Fünf-Position geändert habe. Nein, es ist derselbe Ort. Ich werde es auf seinen Kopf schaffen oder vielleicht, weißt du was, lass es uns einfach dort aufbewahren, wo es war. Ich denke, das war gut. Wie auch immer, ich hoffe es gefällt dir. Ich hoffe du hast verstanden, was hier passiert , denn wo ist es? Okay? Wenn wir also weglaufen sollten, haben wir statt die Spielerposition und größer als die transformierte Position. Oder zumindest nicht, nicht nur größer es in die andere Richtung. Wenn wir uns dafür entscheiden, die Transformationsposition vom Spieler zu entfernen , um die Position zu verfolgen, erhalten wir ein positives Ergebnis, also bewegen wir uns auf den Spieler zu. Wenn wir unsere Position von der Position des Spielers entfernen , entfernen wir uns vom Spieler. Wenn das erledigt ist, hoffe ich, dass es Ihnen gefällt. Und das nächste Video werden wir den Wanderer kreieren. Also sehe ich dich dann. Und vergessen Sie natürlich nicht, Ihre Änderungen jedes Mal zu übernehmen. 72. Der Wanderer: Willkommen zurück meine Spieleentwickler zu ehrlich gesagt, einem der besten Videos, die ich je gemacht habe denn dies ist eines der wenigen Male, in denen etwas passiert. Wir haben einen Bug im Spiel, aber es stellt sich heraus, dass es viel besser ist als ursprünglich beabsichtigt. Es ist also erstaunlich. Du wirst sehen, was ich meine während des Videos. Aber jetzt führen wir das Spiel aus. Und du wirst sehen, dass ich diesen kleinen Kobold erschaffen habe. Dieser Goblin läuft also einfach zufällig herum. So können Sie sehen, dass er irgendwann durchgeht, er hält an, er geht dann weg. Er hört auf. Und wenn wir nahe genug sind, können Sie sehen, dass er anfängt, Bomben zu jagen und zu werfen, die Bomben auf uns werfen. Schau, wie cool ist es, wenn wir von ihm wegkommen, los geht's. Sie können sehen, dass er einfach weiter herumläuft, bis wir zurück sind und in Reichweite sind. Und dann fängt er an, uns zu jagen wie ein verdammter Wahnsinniger in dieser Nacht war. Ich ernsthaft, ich bin so glücklich, diese hellen Formen zu haben. Sie sind so cool. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, okay, jetzt haben wir einen feigen Feind. Zeit, das Wunderbare hinzuzufügen. Also gehe ich auf meine Feinde und die Prefabs ein. Und hier drin füge ich das Patrouillen hinzu, nein, das Kovalent. Da sind wir los. Also fügen wir den Kobold hinzu. Lass uns die Karte entfernen oder weißt du was? Schalten wir den momentan Fly aus. Vielleicht fügen wir sie später hinzu. Und dann werden wir uns die Kobolde ansehen. Also sieh dir die Regierung an. Wie cool ist er? Also rennt er herum, er erschießt Menschen. Ich weiß nicht, womit ich weiß was er tut. Eigentlich glaube er nur, dass er eine Bombe wirft oder so. Aber wie auch immer, er wird ein Wunderbarer sein. Also lass uns gehen und er nennt den Koblin-Wonder One. Machen wir ihn also zum Goblin-Wunder, wenden Sie die Änderungen an. Okay, also ist der Name immer noch derselbe. Wie auch immer, öffnen wir unsere Drehbücher und schauen wir uns an, was wir hier machen werden. Also gehe ich hoch und hier drin werde ich die Feinde erschaffen , die sich wundern und jagen. Oder nennen wir es einfach die Feinde, die sich wundern. Also hier drin werde ich ein serialisiertes Feld erstellen. Und es wird ein boolescher Wert sein. Und es wird sein, sollte sich fragen, sich wundern , wundern, ob es ein, war es , Oh, nein, ich bleibe einfach bei einem. Und dann erstelle ich ein serialisiertes Feld für zwei Floats. Die erste wird die Wonder Länge sein. Wie lange fragt er sich also? Ich frage mich. Ich werde es sagen, wie ich will. Und dann haben wir die Pulslänge. Wie lange hält er also inne, bevor er wieder anfängt zu wandern? Und dann werde ich offensichtlich zwei Dinge schaffen , weil es scheint, dass es offensichtlich ist , dass wir hier drin Zähler verwenden. Also werde ich einen privaten Float- und Wanderzähler erstellen . Und dann der falsche Zähler. Übrigens etwas, von dem ich glaube, dass ich im vorherigen Video und im Spielmodus nicht erwähnt habe. Ich habe alles, was mit Musik zu tun hat, ausgeschaltet, also habe ich sichergestellt, dass das Musikaudio nur aus Testgründen ausgeschaltet ist . Wir wollen nicht weiter Hintergrundmusik haben und vier für meine Nachbarn, um sie in den nächsten Monaten offensichtlich gesund zu halten, bis ich mit der Aufnahme fertig bin und neue Wege hier drin. Ich brauche die Polizei sowieso nicht wieder privat. Und schließlich müssen wir offensichtlich die wunderbare Richtung einholen. Hier drin werden wir die Richtung finden, in die wir uns bewegen können, und es wird die Wunder-Richtung sein. Wir haben immer noch eingefügt, aber wir werden es tun. Und dann werden wir nachsehen. Und wenn wir dann vom Wonder Counter entfernen, werden wir prüfen, ob der Wunderzähler irgendwann kleiner oder gleich 0 wird. Wir setzen dann etwas ein, das als Pausenzähler bezeichnet wird. Und dieser Pause-Zähler wird nicht nur ein Postzähler sein. Wir werden einen zufälligen Punktbereich erstellen. Und dieser random.randrange wird die Pos-Zählerzeiten 0,75 F und der Zähler mal 1,25 haben. Also fragst du dich vielleicht, warum machen wir das? Nun, weil wir eine sehr zufällige Möglichkeit haben wollen, unseren Gewinn oder Entschuldigung zu eine sehr zufällige Möglichkeit haben wollen, unseren Gewinn zeigen, nicht unser Spiel, den Feind zu pausieren, zu bestehen. Er wird also jedes Mal eine ganz andere Zeit warten , bevor er sich bewegt. Dies wird der Art, wie er sich bewegt, mehr Abwechslung verleihen. Und nachdem wir hier eingecheckt haben, prüfen wir, ob der Wunderzähler davon entfernt wird. Wir legen die Richtung fest. Jetzt ist es tatsächlich an der Zeit zu entscheiden, in welche Richtung wir gehen werden. Also hier drin werde ich prüfen, ob der Boss-Counter immer noch größer als 0 ist. Der Pos-Zähler ist größer als 0. Offensichtlich werden wir das erste, was wir tun werden aus dem Postzähler entfernen, also Zeitpunkt-Delta-Zeit. Und dann werden wir prüfen, ob der Impulszähler an irgendeinem Punkt kleiner oder gleich 0 wird. Dann werden wir hier zwei Dinge tun. Das erste ist, dass wir den bisherigen Zähler wählen werden. Und stattdessen werden wir den Wunderzähler setzen. Und es wird das OK sein, tut mir leid, es ist nicht der Pause-Zähler, es ist die Pausenlänge. Also pausieren Sie die Länge. Pauselänge, tut mir leid. Und hier drin werden wir anstelle des Kassenzählers die Wunderlänge festlegen. Und die Wunderlänge. Also das war ein, etwas, das ich nicht wusste , entschuldigen Sie mich dafür. Aber hier drin wollen wir nicht nur den Zähler setzen, wir wollen auch die Wunderrichtung festlegen. Und das wird Ihre Herausforderung sein. Ihre Herausforderung besteht darin, dem Wanderer einen Zufall zu geben und keinen Zufall zu beenden. Nachdem wir den Zähler zurückgesetzt haben, brauchen wir eine neue Wunderrichtung. Sie müssen die Wunderrichtung als neuen Vektor 3 festlegen . Sie müssen das x einstellen und das y sollte Zufallszahlen sein. Stellen Sie sicher, dass Sie das Z so behalten, wie es ist oder noch besser, Sie sollten es als 0 verkaufen. Abschließend ein Hinweis darauf, den Bereich zwischen minus 1,551 zu erreichen. Und das hat gerade gesehen, dass der Feind nicht sehr weit wandert. Für diese Informationen pausieren Sie das Video jetzt und machen Sie den Chaldäer. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Nachdem wir den Wunderzähler gesetzt haben, werden wir die Wunderrichtung festlegen. Und die Wunderrichtung offensichtlich als Faktor drei kann man genau hier sehen. Also erstellen wir einen neuen Vektor 3 und wir werden uns öffnen. Nun sollte die Zed-Achse offensichtlich gleich bleiben. Wir setzen also einen zufälligen Punktbereich und er wird minus1, f minus 1,551 sein. Dann setzen wir dieses für das x, dieses wie für das y. Und schließlich haben wir am Ende Nullen. Schauen wir uns also zurück, was hier passiert. Zunächst beginnen wir, wir prüfen, ob wir uns fragen, ob ja, dann werden wir überprüfen, wie der Wunderzähler größer als 0 ist, dann fahren wir fort, worauf wir immer wieder Zeit entfernen. Wir legen die Richtung fest, weil wir uns offensichtlich fragen, wir einfach sofort die Richtung festlegen wollen. Und dann entfernen wir weiter, machen diese Schleife, machen diese Schleife und machen diese Schleife. Offensichtlich sollte der Kassenzähler an dieser Stelle 0 sein. Wenn der Wunderzähler jedoch kleiner als 0 ist, erhält der vergangene Zähler einen Zufallswert. Und dann wird diese Bedingung erfüllt, und dieser wird falsch sein. Also fangen wir gleich hier an, fangen an, vom Kassenzähler zu entfernen, bis wir bei 1 einen Pos-Zähler bekommen, dass er weniger als 0 ist. Wir setzen einen zufälligen Wunderzähler und geben gleichzeitig eine wunderbare Richtung ein. Wir haben diese if-Aussage gestoppt. Wir gehen hier wieder rein und wieder fangen wir an zu entfernen. Wir haben eine neue Wunderrichtung, die wir genau hier in der vergangenen Zeit festgelegt haben . Und wir entfernen bis wieder, der Wunderzähler ist weniger als 0, ein neuer Postzähler. Wir fangen damit an und machen das alles weiter. Aber es gibt eine Sache , die Sie berücksichtigen müssen, und das ist, dass wir entweder den Chefzähler oder den Wunderzähler initiieren müssen . Also hoch und fange an. Ich werde hier drin eine Bedingung schaffen. Und wenn wir uns fragen sollten, erinnere ich mich, dass das die Bedingung war. Sollte sich wundern. Wenn wir wandern sollten, müssen wir einen Pos-Zähler setzen , der einem zufälligen Punktbereich zwischen der Bosslänge mal 0,75 und dann der Bosslänge mal 1,25 entspricht der Bosslänge mal . Da sind wir los. Es ist also ziemlich genauso wie wir hier drin. Hier oben. Wir initialisieren den Boss-Counter. Er wartet oder der Feind wartet ein bisschen. Dann merkt er, oh, ich muss anfangen, hier einzuziehen, während es hier drin ist. Also initialisieren wir einen gewissen Wert, wir beginnen damit, uns davon zu bewegen. Wenn es weniger als 0 erreicht, beginnen wir die ganze Kette hier drin und er fängt an zu jagen, ich meine, tut mir leid, zu wandern. Und es gibt etwas, weil wir die Verfolgung dem Feind hinzufügen wollten . Lassen Sie uns zuerst sehen, ob das tatsächlich funktioniert, und dann werden wir die Verfolgungsjagd hinzufügen. Also zurück in unserem Spiel. Mal sehen, was wir hier haben. Also fragt sich der Kobold, lasst uns zuerst alles einstellen. Lassen Sie uns diese also verjagen. Und so ist das Blaue für das Projektil. Also werde ich vielleicht den Schießstand etwas kleiner machen. Und dann die Zeit zwischen den Schüssen, lassen Sie es uns so behalten, wie es ist. Sollte weglaufen. Nein, sollte wandern. Ja. Wonder Länge. Wie lange ist er herumgewandert? Für 1 Sekunde. Wie lange hält es inne? Weißt du was, lass uns zwei behalten. Und um das zu retten, führe das Spiel aus. Und mal sehen, wie das aussieht. Also werde ich dorthin kommen, aber in seine Nähe. Da sind wir los. Man sieht, dass er einfach in eine zufällige Richtung gegangen ist . Und da gehst du. Man sieht, dass er alle zwei Sekunden einfach herumläuft. Dort hält er dort an. Mal sehen. Und dann sieht man, dass es offensichtlich kein sehr kluger Feind ist. Er geht manchmal und zwei Wände. Er steckt dort fest. Okay, also läuft er hinter uns her. Da gehst du. Er ist in Reichweite. Reift das Shooting. Okay. Also oh, da sind wir los. Also schießt er, wenn er arrangiert wird. Wie cool ist das? Nun, das nächste, was wir hinzufügen möchten, ist, dass wir, wenn wir in die Nähe dieses Feindes kommen, wir wollen, dass er nicht nur sabbert und uns, sondern tatsächlich auf uns zuläuft , weil er eine Bombe hat, sie ist schwer. Er muss nah dran, um auf uns zu werfen. Das ist etwas, das ich mir gerade ausgedacht habe. Wie werden wir das machen? Das Problem hier drin ist, dass wir entweder die Bedingung für die Verfolgung haben, alle, wir haben die Bedingung für das Wandern. Wenn ich also wieder reingehe und gerade das sage, wo ist es? Wo ist der Kleine hier? Das Goblin-Wunder, sollte also Spieler jagen, dann werden wir die Spieler-Verfolgungsreichweite haben. Da sind wir los. Also ist es ein bisschen, vielleicht ist es so und die jagen weiter. Okay, klar, lass uns einfach so zufällig werden. Seltsam. Mal sehen, was passiert, wenn er tatsächlich anfängt, uns zu jagen. Und da sind wir los. Mal sehen, wie das funktionieren würde. Also komme ich ihm nahe. Und wie Sie sehen können, ist jede Verfolgung. Okay, also jagt er, geht dann wieder und wandert. Wenn ich also hier bleibe, sieht man, dass es eine Art Mechaniker ist, aber gleichzeitig hält er irgendwo an. Und was, ich bin übrigens sehr überrascht, seine Bewegung ist wirklich verrückt und erstaunlich. Sie können also sehen, dass er weiter jagt. Irgendwann fängt er einfach wieder an zu wandern. Also liebe ich die Zufälligkeit darin, aber nur um zu verstehen, wie ich das Spiel machen wollte oder wie meine Vorstellung davon, was ich tun wollte, fragt er sich. Aber wenn der Spieler in der Reichweite ist und jagt, fängt er an zu jagen und hört auf, sich zu fragen. Mal sehen, wie das aussehen wird. Also hier drin sieht man, dass wir, wenn wir anfangen zu jagen, sagten wir, das jagt wahr. Also hier drin sollten wir nach zwei Dingen suchen. Ob wir uns fragen sollten und wo ist es? Und wir jagen nicht, also jagt er nicht. Also wieder hier drin führen wir das Spiel und jetzt wirst du feststellen, dass er sich fragen wird. Wir befinden uns also außerhalb des Chase-Bereichs. Er wandert herum, er wandert herum, Hopi geht meinen Weg. Offensichtlich sieht man also , dass zufällige Immunität nicht so gut ist. Sie können also sehen, dass wir in Reichweite sind und los geht's. Du kannst sehen, dass er uns verfolgt. Er fragt sich nicht mehr nur, er wird uns weiter verfolgen, bis wir ein bisschen weg sind. Und da sind wir los. Man sieht, dass er einfach weiter herumläuft. Ehrlich gesagt liebe ich es, wie er einfach zwischen Wandern und Jagen ging , und seine Bewegung war sehr unberechenbar und er war sich nicht sicher, was passiert. Ich habe es geliebt. Wenn du willst, kannst du es so behalten. Und wenn du willst, wie er einfach innegehalten hat, uns verfolgt hat und wenn wir dann wegkommen, wandert er einfach weiter. Dann sei mein Gast liegt an dir. Und wie Sie sehen können, findet man manchmal einfach Dinge und kleine Bugs im Spiel, macht die interessanten Teile des Spiels. Ich hoffe es gefällt dir. Ich hoffe, Sie begehen Ihre Änderungen. Ich hoffe, du hast eine Bewertung geliebt. Es hat mir sehr geholfen. Wenn Sie es also noch nicht getan haben, zögern Sie nicht , fett zu überprüfen, es hilft mir wirklich sehr. Wenn nicht, sehe ich dich im nächsten Video, in dem wir den letzten Feind erschaffen werden , der eine tiefe Patrouille oder so ist. Wir sehen uns dann. 73. Die Patroller: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und in diesem Video werden wir einen patrouillierenden Pilz erstellen. Wenn wir jetzt das Spiel maximieren und das Spiel laufen, werden Sie feststellen, dass wenn wir herumlaufen, dieser Pilz anfängt, uns zu jagen und wir kommen weg, fängt einfach an, von 1 zum nächsten herumzulaufen, Sie haben das Gefühl, dass er ein uns vorgegeben, dass er reinkommen wird. Wie Sie sehen können, geht er von 1 zum nächsten. Es sieht uns immer wieder an, was diese gruseligen, gruseligen Augen. Und wenn wir näher kommen, fängt er an, uns zu jagen und mit seiner kleinen roten Kiste zu schießen . Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, Fall verkauft, Zeit für den letzten Feind. Und wir haben den Copeland-Wanderer. Wir haben die feige fliegenden I. Und jetzt ist es Zeit, den rollenden Pilz einzuführen. Okay, was macht die Pilzpatrouille , während der patrouillierende Pilz tatsächlich ein paar Punkte hat, von denen er hin und her geht. Also werden wir ein paar Punkte hinzufügen. Also wechselte er von 1 zum nächsten, zum nächsten, zum nächsten, zum nächsten und so weiter. Und wenn er das tut, fangen wir an, ihn zu jagen , wenn der Spieler nahe kommt . Also, und wenn der Spieler mit der Reichweite des Schießens in die Reichweite kommt , ohne in die Reichweite der Verfolgungsjagd zu kommen, fangen wir auch an zu schießen. Also lasst uns anfangen. Das erste, was wir tun werden , ist, dass wir hier reingehen und einen weiteren Teil hinzufügen werden. Das ist also für die Feinde, die patrouillieren. Und hier drin werden wir zunächst gerne immer einen booleschen Schaffen und sagen dass er patrouillieren sollte, patrouillieren sollte. Ich weiß nicht warum ich vergessen habe, wo das P S auf der Tastatur ist . Wie auch immer. Dann fahren wir mit einem serialisierten Feld fort, das ist die Transformation. Und es ist eine Reihe von Patrouillenpunkten. Da sind wir los. Und schließlich werden wir eine Variable erstellen, um den aktuellen Patrouillenpunkt im Auge zu behalten. Also aktueller Patrouillenpunkt oder Punkte oder weiß es nicht, es ist nur ein Punkt, weil es sich um eine private Ganzzahl handelt. Okay, großartig. Wenn wir jetzt hier runter scrollen, wo wir jagen, wo wir uns fragen, wo wir weglaufen. Wir müssen auch prüfen, ob wir patrouillieren. Also zeige ich es Ihnen als Herausforderung und Ihre Herausforderung besteht darin, in die richtige Richtung zu zeigen. also zunächst, Prüfen Sie also zunächst, ob wir patrouillieren sollten. Das ist ziemlich einfach. Dann musst du bestimmen, in welche Richtung sich der Feind bewegen sollte. Und so ist es genauso wie wir den jagenden Feind tatsächlich beendet haben. Sie müssen also die Position des Punktes erreichen und dann die von ihm entfernen oder davon abziehen Position des eigentlichen Feindes von ihm entfernen oder davon abziehen. Aber wie wirst du dann wissen, wann du an diesem Punkt gekommen bist? Während du die Distanz zwischen dem Feind und dem Punkt, auf den er zugeht, im Auge behalten musst. Und wenn er geschlossen ist, erhöhen Sie um ein Festmahl weniger als 0,2 F den Patrouillenpunkt damit der Feind weiter läuft. Ich hoffe, du verstehst, was ich in der Nähe meinte , um den Patrouillenpunkt zu erhöhen. Wir werden an einem bestimmten Patrouillenpunkt beginnen, und dann werden wir weiter zunehmen und mit dem aktuellen Patrouillenpunkt, den wir erstellt haben, einen neuen Patrouillenpunkt festlegen . Wenn Sie das Gefühl haben, dass der letzte Punkt, an dem wir den Punkt erhöhen , ein bisschen zu schwer für Sie ist, dann machen Sie sich keine Sorgen. Ich habe wenigstens versucht, die ersten drei zu machen. Ich kenne den letzten, da ich hart gebissen habe, aber wenn du dich dazu bereit fühlst, geh zum Chaldäer. Okay, willkommen zurück. Dies war eine der schwierigsten Herausforderungen, die ich kenne. Ich gebe zu. Also hier drin werden wir schaffen, ob wir patrouillieren sollten. Während wir dann die Richtung festlegen werden , in die wir uns bewegen möchten. Und es wird den Patrouillenpunkten auf dem aktuellen Patrouillenpunkt entsprechen . Aber Position abzüglich der Transformation der aktuellen gegnerischen Punktposition. Und dann werden wir weitermachen und ein schaffen oder wissen was, lass es uns einfach hier oben behalten. Der Vektor-3-Punkt-Abstand, es ist der Abstand zwischen der Transformation dieser Position und der Punktposition des Patrouillenpunkts. Kopiere das, füge sie hier ein. Jetzt haben wir also die Entfernung, und wenn diese Entfernung weniger als 0 ist, müssen wir es zuerst tun, also nennen wir dies den Vektor drei Nano, eigentlich tut mir leid, tut mir leid, es ist ein Schwimmer. Und die Entfernung und der Ich-Punkt sind gleich der Vektor-3-Entfernung. Wenn der gegnerische Distanzpunkt also weniger als 0,2 F beträgt, ist er sehr nah. Wir wollen nicht genau 0 haben. Wir wollen anfangen, zum nächsten Punkt zu gelangen. Sobald wir zum ersten kommen, werden wir den aktuellen Patrouillenpunkt um eins erhöhen. Und dann werden wir prüfen, ob wir am letzten aktuellen Patrouillenpunkt sind oder ich meine, ob der aktuelle neutrale Punkt größer ist als die Patrouillenpunkte, Punktlänge der Patrouillenpunkte, dann werden wir setze den aktuellen Patrouillenpunkt wieder auf 0. Wenn wir also nur eine einzige Zeile unter der if-Bedingung haben , können wir es einfach so sagen, speichern Sie das. Also was passiert hier drin? Wir prüfen, sollen wir patrouillieren? Ja, sicher, wir bekommen die Richtung, die der Patrouillenpunkt der Position minus Transformation ist . Also behalten wir, genau wie wir den Spieler verfolgen, die Distanz im Auge. Wenn diese Entfernung weniger als 0,2 beträgt, erhöhen wir den Patrouillenpunkt. Das bedeutet, dass wir das Update wieder ganz hierher starten . Dies steigt um eins, wir bekommen einen neuen Patrouillenpunkt. Sie transformieren sich, die Position wird entfernt, wir bekommen die Distanz, wir überprüfen, ist es dann, wenn wir zum letzten kommen, fangen wir an, die erste zurückzugehen. Also speichern wir das und lassen uns alles einrichten. Also gehe ich rein, wo ist es? Hier? Warte, bis das Skript kompiliert wurde, und dieser Typ ist ein Trawler. Das sollte also patrouillieren. Jetzt lasst uns weitermachen und ein paar Punkte erstellen. Nun, dies ist eine Frage der Debatte. Was ich gerne mache, ist nur die Patrouillenpunkte hier drin zu haben. Klicken Sie also mit der rechten Maustaste Und warum ist es ein Diskussionspunkt? Vor allem weil Sie für jedes Level eigene Patrouillenpunkte haben möchten. So könnten Sie es zum Beispiel innerhalb des Raums erstellen. Sie haben also die Tür, die Feinde und die Patrouillenpunkte, oder Sie können sie einfach dem eigentlichen patrouillierenden Feind hinzufügen. Und jedes Mal, wenn Sie ihn in ein neues Level bringen, patrouillieren Sie plötzlich selbst. Das liegt an dir. Ich rufe diese dV-Patrouille an, tut mir leid, Kontrollpunkte. Und dann erstelle ich hier ein leeres Spielobjekt. Dies wird der erste Kontrollpunkt sein. Also Patrouille 0. Und warum füge ich diese Klammern hinzu? Nun, denn jetzt, wenn ich diesen dupliziere, habe ich den sofort darin. Das ist also ein wirklich cooler Trick. Setze es hier rein. Schick den zweiten her. Dritter hier, dieser hier, dieser hier, dieser hier, dieser hier. Und da sind wir los. Ich denke, das sind genug Punkte für heute. Also los geht's. Wir beginnen mit 12345678 und dann wieder am Anfang. Und jetzt gehe ich zum patrouillierenden Feind. Ich sperre ihn ein. Ich werde es unbedingt wissen, bevor ich die Änderungen übernehme, lass mich einfach alles in den Petro Points setzen , speichere das. Übernehmen Sie die Änderungen, führen Sie das Spiel aus. Und ich möchte nicht maximieren, weil ich Lebenslauf machen möchte, ich möchte eigentlich hier nachschauen. Also führe das Spiel aus. Mal sehen, wie das aussieht. Also los gehst du. Er fängt an zu laufen. Und er läuft weiter. Mädchen. Also nichts sehr kluges tun. liegt daran, dass ich denke, dass wir den aktuellen Punkt im Auge behalten sollten. Also mache ich das nur für ein paar Sekunden öffentlich , damit wir wissen, was passiert. Also C, führe das Spiel aus und wir sind bei 0. Er geht zu, sollte zur 0 gehen , wo ist es? Ich kann sehen, oh, whoa, also gibt es ein Problem und was ist das Problem, das Sie vielleicht fragen? Nun, das offensichtliche Problem, da ist dein Patrouillenpunkt, oder? Wenn ich den Feind bewege. Das ist also etwas sehr ungeschicktes für mich. Der Patrouillenpunkt bewegt sich mit dem Feind. Warum? Weil der Feind jetzt ein Elternteil der Patrouillenpunkte ist. Mein kluges Hintern wird es also in die Räume bringen. Jep. Öffne Prefabs. Wir wollen es nicht mehr. Okay. Jetzt wirst du mich dazu bringen, viele Dinge zu tun, oder? Klicken Sie also mit der rechten Maustaste auf Prefab, packen Sie vollständig aus Jetzt können wir das in die Zimmer bringen und jetzt können wir oh, eine Sekunde warten. Patrouillieren. Okay. Also packen wir Patrouilling-Punkte legen sie für den Raum fest. Tut mir leid für die Typen. Das war ein großer Fehler. Ich denke, dieser Fehler sollte nicht vergeben werden. Ernsthaft, das wäre nicht vergeben. Jetzt werden wir also, wo ist es, Der patrouillierende Feind? Wenn Sie genau hier sehen können, wenn wir auf ihn doppelklicken, hat das Prefab dies. Was wir also tun werden, ist, dass wir den patrouillierenden Pilz löschen und dann wieder unseren eigenen erstellen. Also los geht's. Jetzt, wenn wir das Spiel ausführen, sollten wir ein viel besseres Patrouilliersystem sehen. Da sind wir los. Du kannst sehen, dass er zum ersten geht, sobald er dort ist, los geht's. Wenn er zum nächsten Punkt geht, an dem alle Patrouillen den zweiten zeigen, der dritte. Jetzt bis zu diesem Punkt und schau, sobald er dort ist, begann er zum letzten Punkt zu gehen, er schießt Pfeile. Wir sind im Weg. Er versucht uns zu drängen, aber wir stecken bei dem fest, was auch immer es ist. Also gehe ich weg. Offensichtlich ist dies nicht der klügste Feind der Welt, also wird er Dinge eingehen, die Sie benötigen, um sicherzustellen, dass die Patrouillenpunkte so gesetzt werden, dass er keinen festen Gegenständen oder Hindernissen begegnet. Wie Sie sehen können, läuft er herum, er schießt auf uns und er ist durch seinen entsprechenden Patrouillenpunkt gegangen. Jetzt werden Sie offensichtlich etwas bemerken, das diese Stacheln über den Feind rendern, was wir nicht wollen. diesem Grund habe ich die ganze Zeit jedes Spielobjekt wie die Gesundheit eingestellt, wie die Stacheln auf der Spielerebene, das sehr falsch war. Wir sollten sie auf ein Level-Objekt setzen. Es ist ziemlich einfach, später zu reparieren. Aber nur damit du es weißt, das ist nicht etwas, was wir wollen, damit aus dem Weg gehen, lass uns wieder hierher gehen. Und eine Sache, die wir tun wollen, ist genau wie wir es für den wandernden Feind hatten. Wir wollen auch den Spieler jagen. Also hier drin, und wenn wir nicht jagen und wenn nicht jagen, patrouillierten wir. Und hier drin jagen wir den Spieler. Sollte Spieler jagen. Welches wählen wir aus? Entschuldigung, also sollte der patrouillierende Pilz den Spieler jagen. Und das war auch das, was war die gelbe 10? Der gelbe war also, den Spieler weiter zu jagen. So rot, gelb. Und mal sehen, lasst uns das aufheben. Lass uns das Spiel laufen, das versucht hat, ihn JSON zu haben. Lassen Sie uns also das Spielfenster vergrößern. Also laufen wir herum. Wir stehen neben ihm. Da sind wir los. Du kannst sehen, dass er anfängt, uns zu jagen und die kleinen Eier auf uns zu schießen. Aus irgendeinem Grund schießen sie nicht richtig. Ich habe das Gefühl, dass etwas mit den Eiern definitiv nicht stimmt. Vielleicht. Ich weiß es nicht. Ich verstehe. Ja, ja. Natürlich stimmt mit den Bällen definitiv etwas nicht. Obwohl er, wenn wir außer Reichweite kommen, patrouilliert er weiter, dann schießt er, wenn wir in der Nähe sind , auf uns. Offensichtlich gibt es also ein Problem mit der Feuerposition. Ich glaube, es trifft den Kopf des Feindes. Es interagiert damit. Ich bin mir nicht sicher, was das Problem ist, aber im Moment müssen wir das extrem schnell anpassen. Also weiß ich nicht, vielleicht haben wir hier ein Problem. Aber die Hauptsache hier ist, dass wir die Erdölmechanik entwickeln wollten. , es gefällt Ihnen, ich hoffe, Sie hatten Spaß daran, verschiedene Arten von Feinden zu erschaffen. Jetzt nimmt unser Gewinn wirklich Gestalt an. Wie Sie sehen können, haben wir jetzt die Kernmechanik. Wir haben mehrere Feinde, die sich auf unterschiedliche Weise bewegen. Und offensichtlich brauchen Spiele wie diese, die so erstaunlich und lustig sind , etwas, das als Hauptmenü bezeichnet wird, ein Pausenmenü und Übergänge zwischen ihnen. Das machen wir vielleicht im nächsten Abschnitt. Das ist aus dem Weg, ich hoffe es gefällt dir. Stellen Sie sicher, dass Sie Ihre Änderungen übernehmen und wir sehen uns im nächsten. 74. Teil 13: Shop und Geldsystem – Geld erstellen: Willkommen zurück, meine Spieleentwickler. In diesem Video haben wir Geld geschaffen, also lasst uns anfangen. Wenn ich das Spiel führe. Du siehst, dass ich 0 Bitcoins habe. Wenn ich den GKE treffe, habe ich 20, 40, 60, und dann kann ich sie auch aus meinem Inventar entfernen. Es ist nichts ganz Besonderes. Es gibt nichts zu Kühlschmierstoff-Video außer dem wirklich gut aussehenden Symbol hier des Spielmanagers. Verschwenden wir also keine Zeit mehr und lassen Sie uns Geld verdienen. O k. Jetzt haben wir also Feinde, jetzt haben wir Waffen, alles ist eingestellt. Es ist Zeit für gutes Geld. Wir müssen etwas Geld verdienen. Also und ich glaube an das letzte Video, ich habe dir gesagt, dass wir Menüs erstellen werden. Tut mir leid für diese Ehrlichkeit. Ich weiß nicht wirklich, was wir haben. Ich gehe einfach von einem Video zum nächsten. Offensichtlich weiß ich die ganze Zeit, was ich mache. Offensichtlich weiß ich, wohin wir gehen. Aber wie auch immer, lass uns weitermachen. Wir haben den Level Manager und hier wollen wir das Geld, das wir haben, im Auge behalten. Zunächst werden wir hier eine Variable erstellen, die ein serialisiertes Feld sein wird, und es wird ein Ende der aktuellen Münzen sein. Okay, hier werden wir unsere aktuellen Münzen haben. Und jetzt ist es Ihre Aufgabe, zwei Methoden zu erstellen , um die Bitcoins zu erhalten und auszugeben. Sie erstellen also zwei Methoden. Eine, die hinzufügt, ich sollte das ändern, wissen Sie was, lassen Sie mich überprüfen oder kein Elektron wird dies in Bitcoin ändern. Erstellen Sie also zwei Methoden. Eine, die Bitcoins hinzufügt, eine, die die Bitcoins entfernt. Dann sollte jeder einen Parameter für den Betrag aufnehmen. Stellen Sie sicher, dass wir nie negative Geldbeträge haben , weil das sehr schlecht ist. Wenn das aus dem Weg ist, pausiere das Video jetzt und erledige die Herausforderung. Okay, willkommen zurück. Statt aktueller Münzen nenne ich das also die aktuellen Bit-Coins. Und wenn du Bitcoin nicht magst, solltest du es sowieso ausprobieren. Ich versuche nicht, dir irgendetwas in den Kopf zu stecken. Lass uns weitermachen. Konzentrieren wir uns auf die Hauptsache. Nun, etwas hier drin, das Sie vielleicht in Betracht ziehen möchten. Es ist also großartig. Wir haben Level Manager, der sich um das gesamte Level kümmert. Aber wenn es um den Geldbetrag geht , den wir bei uns tragen, denke ich, dass es besser ist, es in etwas zu haben , das als Spielmanager bezeichnet wird , der nur für die Zukunft gedacht ist. Es ist kein Problem. Sie können es im Levelmanager erstellen. Es macht die Funktionalität, aber der Level-Manager scheint nur das aktuelle Level zu bewältigen, auf dem wir uns befinden. Wenn es um den Kopf geht, den wir halten, sollte es um das gesamte Spiel gehen. Sobald du das Spiel startest, sammelst du in jedem einzelnen Level mehr Münzen, du gehst zum nächsten Level fügst das hinzu. Der Levelmanager ist also ein bisschen seltsam. Ich weiß nicht, vielleicht sollten wir es zu einem Spielmanager verlagern. Weißt du was, lass es uns zu einem Spielmanager verlagern. Ich habe mich selbst überzeugt. Also hier drin klicke ich mit der rechten Maustaste. Erstelle einen leeren Spielmanager und drücke Enter. Wir setzen die Position zurück. Und hier drin wird der Manager ein C-Sharp-Vier-Skript für den Spielmanager bei Enter erstellen . Und genau deshalb wollte ich einen Spielmanager erstellen, nur um dir dieses seltsame Symbol aus irgendeinem Grund zu zeigen, außer diesem Skript ändert sich kein anderes Skript. Dieser hat diesen seltsamen Knopf drauf. Ich weiß nicht warum. Frag mich nicht warum. Ich bin mir immer noch nicht sicher. Aber sowieso hat der Spielmanager jetzt das Game-Manager-Skript. Und solange wir hier sind, haben wir den Levelmanager, wir haben den Spielmanager, wir haben auch den Audio-Manager. Los geht's, der Audio-Manager. Also klicke ich mit der rechten Maustaste, um eine leere zu erstellen. Die Manager haben Enter geklickt. Ich werde seine Position zurücksetzen, damit der Spielmanager, der Levelmanager und wo es ist? Audiomanager. Da sind wir los. Jetzt haben wir eine Liste aller Manager. Und in den Prefabs machen wir das Level und den Spielmanager vor. Also haben wir wo wird der AudioManager gespeichert? Ich denke, er ist in den Prefabs, wo z. Okay, also AudioManager, sein Albany selbst, Ordnermanager, AudioManager, Levelmanager und der Spielmanager. Okay, damit das aus dem Weg ist, öffnen wir das Drehbuch noch einmal. Während der Levelmanager wir die Bitcoins von hier nehmen und zum Spielmanager verschieben werden. Und dann werden wir hier zwei Methoden erstellen. Ich behalte den Start und das Update. Ich habe das Gefühl, dass wir sie später benutzen könnten. Hier drin ist zunächst die Öffentlichkeit nichtig, offensichtlich muss es öffentlich sein, weil wir es sein werden. Aufruf von verschiedenen Skripten aus. Also die öffentliche Leere bekommt Bitcoins. Und hier drin der Betrag, den man bekommen muss. Also öffnen wir die Klammern oder schnörkeligen Linien oder was auch immer. Und das aktuelle Bitcoins plus entspricht dem zu erhaltenden Betrag. Und wenn du willst, können wir es auf 21 Millionen einstellen, aber lass es uns unendlich halten. Wir können so viele kriegen, wie wir wollen. Und dann werden wir die öffentliche Leere schaffen, Münzen und Bitcoins ausgeben. Und dieser wird eine ganze Zahl des auszugebenden Betrags sein. Und hier drin werden wir die aktuellen Münzen bekommen , entschuldigen Sie mich, lassen Sie die aktuellen Münzen von ihnen entfernen, den Betrag, den Sie ausgeben müssen. Und schließlich werden wir prüfen, ob die aktuellen Münzen kleiner oder gleich 0 sind, als die aktuellen Münzen sein werden. Aktuelle Münzen werden auf 0 gesetzt. Spar dir das auf. Und jetzt erstellen wir einfach ein kleines Peston in der Nähe. Wenn Sie also eingeben und Punkt setzen, holen Sie sich die Taste nach unten, beschichten Sie Gen G, also keycode. Also ich meine, hol, wenn, GET, dann hol Bitcoins und sagen wir, wir bekommen 25 oder 20. Dann wenn das Gleiche hier drin. Aber anstelle eines G verwenden wir die H-, H-Ausgaben, aber Münzen. Und wie viele geben wir aus? Sagen wir 10. Also kriegen wir 20, wir haben zehn ausgegeben. Und schließlich erstellen wir einen Debug. Oh, wir haben diesen Debug vergessen. Ich habe aktuelle Bitcoins plus gleich Bitcoins. Und offensichtlich werden wir all das in der Benutzeroberfläche einstellen, aber im Moment sparen wir, wir gehen in unser Spiel ein. Ich denke, alles ist gut. Also haben wir alles eingerichtet. Die aktuellen Münzen beginnen immer bei 0. Also beginnen wir das Spiel. Da sind wir los. Ich habe 0 Bitcoins, also kriege ich, hol, hol, geh, los geht's. Und dann werde ich ausgeben, ausgeben, ausgeben, ausgeben, ausgeben, ausgeben, aber ausgeben, ausgeben, und wie Sie sehen können, können wir nicht weniger als 10 gehen, wenn ich versucht habe , 10 auszugeben, weil ich nur 10 habe. Und dies ist etwas, das wir beachten müssen , wenn es kleiner oder gleich ist, wenn wir es auf kleiner oder gleich 0 setzen. Eigentlich denke ich, dass das eine gute Idee ist. Jetzt können wir also tatsächlich ausgeben, was wir Problem haben, ist das, okay, tut mir leid. So sagten wir, je weniger als oder gleich. Es gibt also etwas, das wir beachten müssen und dass wir diese Münzen bei uns haben müssen, wann immer wir ausgeben . Aber das ist etwas, von dem ich glaube, dass es später vom Sharp-Skript behandelt wird . Also hier drin, mal sehen, ich gebe aus, verbringe, verbringe. Okay, das funktioniert immer noch nicht. Hey, willkommen zurück. Es war also ganz etwas sehr Einfaches. Wenn wir den Zusammenbruch genau hier haben, können Sie sehen, dass wir bei 0, 20, 40 und so weiter beginnen . Aber wenn ich anfange auszugeben, wenn ich auf 0 komme, ist es schon da, also taucht es nicht auf. Und die Nachrichten, die ich dir zeigen kann , wenn wir den Zusammenbruch entfernen. Also wird jede einzelne Zeile nicht im Spiel maximiert, bitte. Wenn ich hier reinklicke, kannst du das sehen, wenn ich den Gigi, Gigi, 120, verkaufe, verkaufe, verkaufe, verkaufe, verkaufe, verkaufe. Da sind wir los. Alles funktioniert. Es war also nicht wegen der weniger als oder gleich, es war tatsächlich unsere Unfähigkeit, es zu sehen. Ich hoffe es gefällt dir. Stellen Sie sicher, dass Sie Ihre Änderungen übernehmen. Und wir sehen uns im nächsten Video, in dem wir die Bitcoins tatsächlich abholen und sie nicht nur mit magischen Tasten auf der Tastatur hinzufügen . Wir sehen uns dann. 75. Picking sammeln: Willkommen zurück Meine Lieblingsspielentwickler zu einem brandneuen Video und diesem Video, anstatt nur die Punkte zu unserer Ebene oder unserem Spielmanager hinzuzufügen , haben wir diese Münze genau hier. Und wie Sie sehen können, dreht es sich. Es ist echt cool. Und wenn Sie hören, wann wir es abholen, gibt es eine kleine Explosion. Warum eine Explosion? Weil ich mir nicht die Zeit genommen habe, tatsächlich einen Soundeffekt für das Aufheben der Münze zu finden . also damit Verschwenden wir also damit keine Zeit mehr und lasst uns anfangen. Oh, okay. Also Zeit, um das Geld , das wir geschaffen haben, tatsächlich abzuholen. Also werde ich das alles klären. Ich öffne das Skript und entferne das, was wir hier für die BBC haben oder was auch immer es mit der Tastatur anzeigt und hinzufügt. Also zurück hier, damit es kompiliert werden kann. Und in den Sprites hier drin erstelle ich einen neuen Ordner für die Münzen. Doppelklicken, öffnen Sie dies und ich gehe hier in die Ressourcen ein. Und wie Sie sehen können, haben wir die rotierende Münze, die Münze blinkt und die Münze glänzt. Wählen Sie also aus, was Sie wollen. Ich möchte das Drehen, weil ich gerne sehe, wie sich die Münzen drehen. An diesem Ende öffnet sich hier. Mal sehen, wie die aussehen. Wirklich schöne Münzen, aber ich denke, dass sie mit den 2D-Grafiken, die wir haben, etwas fehl am Platz sind, aber keine Sorge, wir verwenden kostenlose Assets aus offener Spielkunst. Also los geht's. Wir fügen das hier hinzu. Dies wird eine riesige Münze sein. Bereite dich auf den riesigen Coyne vor. Whoa, ich hätte nie gedacht, dass ich wirklich nicht wusste, dass diese Münze so groß sein würde. Machen wir es also ein bisschen kleiner. Noch mehr. Also 400, sehen wir mal. Wir können übrigens die Skalierung etwas kleiner machen, aber ich ändere gerne die Pixel pro Einheit. Und sogar das, Lass uns 800 machen. Also machen wir zwei Mal kleiner als was auch immer es gerade ist. Das ist immer noch riesig. Und lass es uns 1600 schaffen. Also komm schon, bitte. Wir brauchten ein bisschen kleiner. Oh mein Gott. Ich würde diesen Betrag nicht erwarten. 3500 ernsthaft, das sollte gerade sehr klein sein. Okay, Großartig. Also denke ich, diese Münze, los geht's. Das ist also eine kleine Münze, die sich drehen wird und wir können sie abholen. Und eigentlich weißt du was, vielleicht mach es 3000. Und los geht's, wenden die Änderungen an. Lasst uns darauf hinweisen. Zeigen Sie, und wir müssen nicht mehrere erstellen. Los geht's, heb dir das auf. Jetzt wird dies der Fall Bitcoin 0 sein. Was wir jetzt tun werden, ist, dass wir in die Animation gehen und eine Animation erstellen. Die Animationen eines Assets klicken Sie also mit der rechten Maustaste auf Neuer Ordner, drehen Sie einen Bitcoin, doppelklicken Sie hier hinein und drehen Sie ihn. Das war's. Alles was wir tun müssen. Ziehen Sie diese n und das stimmt. Okay, das ist zu schnell. Trennen wir sie ein bisschen. Also jeden Punkt, da geht, denke ich, dass das gut genug ist. Also und aus irgendeinem Grund fühle ich , dass es ein bisschen nervig ist, aber keine Sorgen. Jetzt werden wir hier ein neues Skript hinzufügen. Also gehe ich in die Drehbücher und gehe in die Pickups an. Klicken Sie mit der rechten Maustaste und erstellen Sie ein neues C-Sharp-Skript, das eine Münze abholen wird. Heb ab. Da sind wir los. Jetzt haben wir die Münzabholung. Machen wir das kleiner. Da sind wir los. Also zum Bitcoin hinzugefügt und lass es uns öffnen und Visual Studio. Wenn ich also die Gesundheitsabholung hole, ist es ziemlich dasselbe. Also wo ist es? Wo ist die Gesundheitsabholung? Das ist also ziemlich dasselbe. Ich kopiere einfach den Code. Ich füge es hier ein. Und die einzigen Dinge, die sich ändern werden , wie zum Beispiel, der Münzbetrag, den Sie von dieser Münze erhalten, also behalte ich ihn bei ihnen. Und vielleicht auch der abgeholt, was gut sein wird und es abholen wird. Und k kann abgeholt werden Methode. Okay, also der Pickup, die Ebene. Das ist offensichtlich etwas, das wir auch der Münze hinzufügen werden , denn später werden wir vielleicht ein Glas zerbrechen oder einen Feind töten wollen. Und deshalb wollen wir eine kleine Verzögerung haben. Also werden wir dies jederzeit an den Layern der Komponenten verkleinern Layern der Komponenten verkleinern oder die Ebene aufnehmen. Da sind wir los. Zeit vor der Abholung ist 0,5, was gut genug für uns ist. Und was müssen wir sonst noch tun? Wir zerstören das Spielobjekt. Anstatt HP hinzuzufügen, werden wir dies entfernen. Und wir werden sicherstellen, dass wir hier drin auch entfernen können, dass der Spieler es auf der Pickup-Ebene einstellen wird. Also Pickups. Und denken Sie daran, dass wir die Ebene, Layer, nicht mehr benutzen. Ich meine, tut mir leid, das Spieler-Tag, um Dinge aufzuheben. Und hier drin haben wir gesagt, dass die Abholung stimmt, also holen wir nicht zweimal ab. Und hier sollten wir tatsächlich die Menge an Münzen erhöhen , die wir haben, und das wird eine Herausforderung sein. Du. Also füge die Münze hinzu und spiele einen Soundeffekt. Erstellen Sie also zuerst den Level-Manager und fügen Sie die Münzen hinzu. Dicey Create, ich meinte, bring den Level-Manager und die Münzen dazu und spiele die Soundeffekte wenn wir die Münzen abholen, du kannst wählen, wie auch immer die Fraktur klingt. Vielleicht kannst du sogar gehen und dein eigenes holen, etwas finden, wenn ich dir dann ein geben würde , damit du aus dem Weg bist, das Video jetzt anhalten und zur Herausforderung gehen. Okay, willkommen zurück. Also hier drin werden wir den Levelmanager bekommen , oder tut uns leid, nicht den Level-Manager, den Spielmanager, aber der Spielmanager ist keine Instanz. Also hier drin werden wir einen öffentlichen statischen Game Manager erstellen . Wir können das Objekt finden, das hätten wir tun können, aber weil wir vielleicht mehrmals darauf zugreifen werden , glaube ich, dass es besser ist, eine Instanz zu haben. Also hier drin werde ich das Erwachen setzen und die Instanz ist gleich dem. Spar dir das auf. Entfernen wir den Start und das Update vorerst. Wenn wir sie brauchen, werden wir sie später erstellen. Spar das wieder in der Abholung auf. Spiel. Managerin. Punktinstanz, Punkt, Münze hinzufügen oder Münzen erhalten, Bitcoins erhalten. Und wie viel wollen wir? Es ist der Münzbetrag. Speichern Sie das und jetzt wollen wir das Audio abspielen. Also AudioManager, du verwaltest die Instanz, die als Fax abgespielt wird und welchen Soundeffekt möchten wir spielen? Wir könnten es hier schaffen. Ja, klar, lass es uns machen. Also die Sandbox zum Spielen. Da sind wir los. Speichern Sie das als Fax zum Abspielen. Und zurück in unserem Spiel. Mal sehen, was wir hier haben. Und der Audio-Manager, wo ist der Audio-Manager? Und was haben wir die Explosion, feindliche Gewehre, Schrotflinten, Schreibspieler werden getroffen, Pistolenschuss, Explosion. Lasst uns die Explosion hinzufügen. Klar. Warum nicht? Weil ich keine gemeinsame Abholung finden kann. Du kannst alles hinzufügen, was du willst. Es braucht nur eine Art Metall. Eigentlich denke ich, dass ich hier etwas hinzugefügt habe , aber wir haben es nicht hinzugefügt. Wie auch immer, lass uns die Explosion nur zum Spaß nutzen. Wie auch immer, Element zwei. Also speichern die beiden das, führe das Spiel aus. Und jetzt, wenn wir zur Münze kommen, sollten wir überhaupt nichts hören, denn hier drin gibt es keinen Fehler. Ok? Nein. Aber er hat sich nicht einmal selbst zerstört. Es gibt also ein Problem. Und hol dir Komponente. Aufnahme-Layer wurde nicht abgeholt. Mal sehen, denn das muss einfach sein. Warten wir vielleicht auf diesen Timer 0.5. Nein, ich arbeite überhaupt nicht. Mal sehen, was das Problem ist. 0, okay, komm zurück. Also erstellen wir einen On Trigger Enter. Das ist in Ordnung, aber wir haben keinen Auslöser, um dies auszulösen. Also müssen wir einen Box-Collider oder einen kreisförmigen Collider 2D hinzufügen und ihn zum Trigger machen. Also ist der Circle Collider, glaube ich, extrem riesig. Nein, wo ist es? Obwohl es genau auf der Münze steht, ist das ausgezeichnet. Spar dir das auf, führe das Spiel aus. Jetzt sollten wir die Stummschaltung der Musik aufheben. Und man konnte ein schwaches Geräusch der Explosion im Hintergrund hören . Ich konnte es hören. Ich hoffe, du hättest es hören können. Wir gehen zu den Prefabs, wir gehen zu den Pickups und wir haben den Bitcoin genau hier gesagt. Ich hoffe es gefällt dir. Stellen Sie sicher, dass Sie Ihre Änderungen übernehmen, stellen Sie sicher, dass Sie eine Bewertung abgeben . Es hat mir sehr geholfen und wir sehen uns im nächsten Video. 76. UI auf unserer Leinwand anzeigen: Willkommen zurück, Meine Lieblingsspielentwickler in diesem Video, anstatt jedes Mal entweder in der Konsole nach dem Debug suchen oder sich das Objekt des Spielmanagers ansehen zu müssen, um zu wissen, wie viel Münzen wir haben. Wir haben tatsächlich den UI-Canvas erstellt , um alle Bitcoins zu registrieren, die wir haben. Wie Sie sehen können, haben wir gerade 0, aber wenn wir eine Münze abholen, bekommen wir das. Verschwenden wir also keine Zeit mehr und fangen wir mit diesem wirklich einfachen Video an. Oh, okay, jetzt ist es an der Zeit, die Bitcoins zu zeigen , die wir auf unserer UI-Canvas aufgegriffen haben. Also werde ich die Szene ein bisschen größer machen. Ich werde die Canvas finden und hier irgendwo. Doppelklicken Sie also auf den UI-Canvas. Lasst es uns öffnen. Mal sehen, was wir haben und klicken Sie auf UI Canvas anzeigen, damit wir alles sehen können. Wir haben die Waffenoberflächen-Gesundheit und lassen Sie uns fortfahren und ein neues leeres Spiel erstellen. Nein, nicht, tut mir leid, nicht auf der Gesundheit auf der Benutzeroberfläche erstellen Sie ein leeres Spielobjekt. Und das werden die Münzen oder was auch immer sein. Aber Coin Tracker, ich weiß nicht, mit Mais auftreten. Da sind wir los. Also Bitcoin-Tracker, und hier werden wir die Benutzeroberfläche und das Bild hinzufügen, und dies wird das Bild darstellen, das Bild. Da sind wir los. Und es wird einfach so sein, lass mich die Sprites durchschauen. Sprites machen diese kleiner. Da sind wir, die Münzen, während die Münze ich sie gerade gesehen habe, Münzen, Sternmünzen. Und lasst uns die Imagetherapie-Ziele beim Sprite hinzufügen. Wir können auf native Größe einstellen. Da sind wir los. Ich denke, es ist gut genug. Wir stellen es direkt hier direkt neben dir hin und kannst es natürlich überall hinstellen, wo du willst , wie ich immer sage, aber ich werde es einfach hier einstellen. Und dann erstelle ich hier eine, eine andere Benutzeroberfläche. Oh, tut mir so leid. Wir hätten das Bild nicht setzen sollen. Lassen Sie mich einfach das Bild einstellen. Positionsfehler bewegt das gesamte Objekt in nur ein bisschen. Und ich werde hier drin viel pro Text erstellen. Und offensichtlich werde ich es schaffen, sagen wir 99, 99, fett, und ändere die Schriftart darauf, mach es zu dem, mit dem Roboter denkt, ich werde dieses ganze Objekt hierher bewegen. Ich bewege das Bild ein bisschen nach links. Da sind wir los. Und dann der Text ein bisschen nach rechts. Und dies wird die Menge an BDC-Text sein. Und wir behalten es bei meiner 99, nur um alles darzustellen. Und wir setzen es in der Mitte der Ausrichtung und setzen es auf automatische Größe, erhöht das Maximum. Und lass mich den Text ein wenig ändern. Da sind wir los. Das sieht gut aus. Ich glaube. Ja, das sieht meiner Meinung nach gut aus. Wir haben also die Nummer genau hier über der Gesundheit angezeigt und jedes Mal, wenn wir abholen, sollten wir dies bekommen. Okay, großartig, also werde ich das speichern. Ich gehe in die UI-Canvas und öffne den UI-Manager. Also hier drin brauchen wir offensichtlich eine Referenz. Die erste Referenz wird also ein serialisiertes Feld vom Typ Text sein . Was war es Text Mesh Procore, besteuerte Mash Pro GUI. Dir stimme ich zu. Okay, das war's. Und der BTC-Text. Spar dir das auf. Okay, also lasst uns wieder hier rein gehen. Lassen Sie uns einen Hinweis auf diesen Tag bekommen. Jetzt. Da sind wir los. Und lassen Sie uns die Änderungen auf der UI-Canvas anwenden , damit sie überall angewendet werden. Okay, großartig. jetzt an unserem Ende Was werden wir jetzt an unserem Ende tun? Nun, natürlich möchten wir jedes Mal , wenn wir eine Münze abholen oder neu anfangen oder den Punkt ausgeben, dass sie direkt hier auf der Benutzeroberfläche angezeigt wird. Und dies wird Ihre Herausforderung sein, den Wert der Münze festzulegen und jedes Mal zu aktualisieren. Erstellen Sie also eine Methode, die den Münztext und den UI-Manager aktualisiert , legen Sie ihn am Anfang fest, damit wir nicht wissen müssen, wo der Anfang ist, wo verkaufen wir ihn? Stellen Sie außerdem sicher, dass jedes Mal, wenn wir Münzen hinzufügen oder entfernen , um sie in der Benutzeroberfläche zu aktualisieren. Damit aus dem Weg ist, pausiere das Video jetzt und mach den Chaldäer. Okay, willkommen zurück. Also im UI-Manager, während der UI-Manager, und lassen Sie uns nach unten scrollen und hier eine öffentliche Lücke erstellen, Bitcoin-Text aktualisieren. Und hier drin werde ich nur auf den Text, den Text, den Text und den Text von PTC zugreifen . Und es wird gleich der Ganzzahl genau hier sein, was der Betrag an BDC entspricht. Und es wird gleich der Menge an BTC sein. Da sind wir los. Dies funktioniert also nicht, da Sie nicht in eine Zeichenfolge konvertieren können. Also füge ich die Punkt-2-Zeichenfolge hinzu. Spar dir das auf. Das ist also ein bisschen ein Trick. Vielleicht wussten Sie nicht, wie das geht. Es gibt andere Möglichkeiten, dies zu umgehen, aber das ist eine Möglichkeit, die ich Ihnen vorerst zeigen werde. Also zurück im Game-Manager, sobald wir anfangen. Also anfangs oder weißt du was? Solange wir wach sind, verkaufen wir es im Wachzustand. Aber das Problem mit dem Erwachen ist, dass es beginnen könnte, bevor wir eine Instanz des UI-Managers haben. Also lasst es uns einfach machen und vorerst anfangen. Es ist ein bisschen sicherer. Ui Manager, Punkt-Instanz, Punkt-Update, Bitcoin-Texte und es werden die aktuellen Bitcoins sein. Und wenn wir dann die Bitcoins bekommen, werden wir dies und die Ausgaben nach dem Verkauf aktualisieren und die Ausgaben nach dem , weil wir nicht negativ sein wollen, also werden wir es hier nicht verkaufen. Wir haben es gesagt, nachdem wir überprüft haben, ob wir weniger als 0 haben und dann machen wir es 0. Also spar dir das auf. Zurück in unserem Spiel. Wir werden das Spiel starten. Lassen Sie uns das ein bisschen größer machen. Also führe das Spiel aus, wir sollten hier 0 sehen , weil wir keine Münzen haben. Da sind wir los. Wir haben 0. Und jetzt, wenn wir das abholen, Sie bitte den Ton stumm. Wenn wir das abholen, sollten wir sehen, dass wir zehn bekommen. Exzellent. Jetzt können wir unsere Münzen abholen und natürlich können wir sie auch ausgeben. Wir haben nicht die Möglichkeit, sie auszugeben, aber in ein bisschen werden wir anfangen, Geschäfte zu schaffen , und dann können wir sie ausgeben. Da das aus dem Weg ist, bin ich mir nicht sicher, warum ich diese Mischung immer wieder sage , um all Ihre Änderungen zu begehen. Ich hoffe, es gefällt Ihnen und wir sehen uns im nächsten Video, in dem wir erfahren wie wir unsere Bitcoins tatsächlich verdienen und sie nicht nur vom Boden abholen können . Wir sehen uns dann. 77. So Earn du die Bitcoin.: Hey, willkommen zurück in einem brandneuen Video, meinen Lieblingsspieleentwicklern. Dies wird sehr kurz sein, weil ich denke, dass wir bereits wissen, wie man diese Dinge macht. Also werde ich dir eine virtuelle Herausforderung stellen. Es gibt keine Rutschen, es gibt keine Zeit. Pausieren Sie einfach das Video und überlegen Sie sich, wie wir diese Bitcoins tatsächlich verdienen können. Okay, die Zeit ist abgelaufen. Und jetzt, wo sollten wir es machen, wo sollten wir es machen? Nun, wir sollten es tun, wenn wir einen Feind töten. Also schalte ich den wandernden Kobold ein. Hier drin sind wir beschäftigt. Schalten Sie also den wandernden Kobold ein, schalten Sie die feigen fliegenden und patrouillierenden Pilze ein. Jetzt haben wir eine Menge Feinde und unser Spiel fliegt herum und versucht zu unterrichten. Hoffentlich kriegen wir das Gewehr. Und wie werden wir das machen? Nun, wenn du dich erinnerst, jeder einzelne der Feinde den Gegenstand Dropper hier drin. Und Sie können sehen, dass wir einen Item-Drop haben , der die Hälfte ist. Was wir also tun können, können wir gleich hier eins hinzufügen und den Bitcoin herstellen. Und eine weitere coole Mechanik ist, dass wir die beiden erstellen oder zwei Bitcoins oder sogar drei Bitcoins und 1,5 zurück hinzufügen können. Und das wird das Spiel ein bisschen realistischer machen , denn wie Sie wissen, wann immer Sie nicht realistisch sind, vielleicht schwer. Ich materialistisch durch realistische Spiele. So wird unser Gewinn grüner, geerdeter. Also wissen wir, wenn du ein Spiel spielst, du zum Beispiel durch Räume gehst oder Feinde tötest, aber nicht alle von ihnen geben dir Gesundheit. Die meisten von ihnen tun es nicht. Was Sie also tun müssen, ist, dass Sie viel töten müssen und versuchen, so viel wie möglich zu überleben , bis Sie einen Gesundheitsbot bekommen, das Geld boten, naja, Sie bekommen eine Menge Geld. Also fügen wir weitere Bitcoins hinzu. Und wenn Sie sich erinnern, wenn wir in den Gegenstand Docker gehen, sehen Sie genau hier, dass wir eine zufällige variable Ganzzahl erstellen und diese verwenden, um einen der Items Job zu erhalten. Wenn Sie also weitere Bitcoins hinzufügen, erhalten Sie eine bessere Chance, etwas leise zu sein. Was ist in Jahren passiert? Also der feige Fliegen, Lasst uns den Bitcoin hinzufügen. Ist es das? Also füge ich diejenige hinzu, die schon da ist. Ich glaube nicht, dass das eine gute Idee ist. Lassen Sie mich das Prefab und die Statistiken hinzufügen. Also gehe ich in das Prefabs-Level, nicht in feindliche Kugeln. Prefabs, wo sind die Pickups? Also hier drin geht das zurück in den hier drin, und stattdessen verwenden wir den Bitcoin, das ist der bevorzugte. Ich glaube nicht, dass es einen großen Unterschied machen wird, sondern nur um sicherzustellen, dass wir nichts Dummes tun. Und fügen wir den Bitcoin gleich hier hinzu. Wir fügen 24 hinzu, die Patrouille, wir haben eine Chance von 5050. Wenn wir also den Feind patrouillieren, haben wir effektive Chancen. alles sparen wir. Wir führen das Spiel und hoffentlich bekommen wir mal sehen, nein, nicht die Schrotflinte. Ich will das Gewehr. Mach die Dinge schneller. Komm schon. Schon wieder. Lass uns spielen. Komm schon. Rifle hat angerufen, komm schon. Gib mir diesen Befehl. Wir werden es versuchen. Ehrlich gesagt will ich das Gewehr nicht. Ich meine, ich will das Gewehr. Könnte denken, dass dieses Video von der Pistole kurz bekannt ist. Bitte komm schon. Gewehr, Gewehr, Gewehr, Gewehr. Da sind wir los. Jetzt schieße ich das Leben aus diesen Kobolden heraus. Wie du siehst, wie cool ist das. Also das Leben bekommen wir ein Leben, wir haben den Bitcoin nicht bekommen, den wir wollten. Versuchen wir das noch einmal zu töten. Okay, also nochmal, wir haben aus irgendeinem Grund ein Leben, entweder ist unser Glück extrem schlimm oder wir haben etwas falsch gemacht. Mal sehen, was wir falsch gemacht haben. Also haben wir den Bitcoin hier drin, die Jobchance als 1, 0. Okay, willkommen zurück. Aus irgendeinem Grund habe ich das einfach gespielt, ein paar Mal getestet und die ganze Zeit hatten wir immer mit Konsole. Ich weiß es nicht. Ich schätze, unser Glück war so schlimm. Lass mich einfach die Pistole von hier entfernen. Und lass uns auch die Schrotflinte entfernen. Ich will nur Gewehr holen, das Spiel laufen lassen. Lass mich das Gewehr holen. Und jetzt sollten wir das sehen, wenn ich diesen kleinen Kerl hier töte. Okay, also los geht's. Wir kriegen Bitcoin, wir holen es ab, wir kriegen zehn. Und hast du bemerkt, dass unser Gewinn eigentlich ziemlich schwer ist. Also muss ich um diesen Kerl herumlaufen und ich muss ihn töten und schauen, wie er schnell davonläuft und da gehen wir in andere Münze. Und dann gehen wir nach Hause und holen uns noch eine Münze. Da sind wir los. Jetzt haben wir 30 Münzen. Nun, eine andere Sache, die wir auch tun können, um diese zu verdienen, ist, wo ist es, wo ist der zerbrechliche Topf? Sie können genau hier sehen, dass wir ein paar davon hinzufügen können . Da sind wir los. Nein, füge ein paar Bitcoin hinzu, damit wir bessere Chancen haben und lassen Sie uns diese Änderungen anwenden. Da ich die Änderungen anwende, weiß ich nicht, ob dies betroffen ist. Es hätte nicht betroffen sein sollen, aber ich schätze, wir brechen es vielleicht. Los geht's, wir kriegen das. Versuchen wir es noch einmal zu brechen. Wir sollten den Bitcoin holen. Also aus irgendeinem Grund, wenn wir ein neues hinzufügen oh, los geht's. Und wir holen es dann ab und das kriegen wir. Ich hoffe es gefällt dir. Stellen Sie sicher, dass Sie Ihre Änderungen übernehmen, obwohl wir nichts getan haben. Sie müssen Ihre Änderungen diesmal nicht übernehmen. Viel Spaß, viel Spaß jedes Mal und wir sehen uns im nächsten Video. 78. Shop: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und das hier machen wir nichts sehr ausgefallenes. Wir erstellen eine neue Szene. Wir haben gerade eine Shopping-Szene, und wie Sie sehen können, haben wir drei Artikel hier drin. Sie sind sehr identisch. Sie machen nichts Besonderes, aber dies ist nur das Setup für das nächste Video, in dem wir anfangen werden , Dinge zu erstellen. Verschwenden wir also keine Zeit mehr und fangen wir an. Okay, jetzt jetzt ist es an der Zeit, einen Shop zu erstellen. Und um ein Geschäft zu erstellen, wollte ich es alleine zu einer separaten Szene machen. Auf diese Weise lassen wir uns vom Spiel Hades inspirieren. Wir können von einer Szene zum nächsten Ghetto gehen, ein Geschäft, dort einkaufen und dann zu den anderen Szenen wachsen. Was ich also tun werde, ist, dass ich die Stufe zwei duplizieren werde . Und jetzt haben wir Level drei und ich nenne das den Shop, kann das als Shop-Level oder Shop-Szene oder was auch immer bezeichnen. Also doppelklicke ich und du kannst das sehen, obwohl es das Gleiche ist, aber wir sind gerade im Shop, hier oben in der Hierarchie. Also werde ich zuerst den Bitcoin löschen , die Waffe löschen, die Gesundheit abholen, indem ich den zerbrechlichen Kauf fallen ließ und lass uns den Raum öffnen und lasst uns weitermachen und alle Feinde löschen. Ich entferne sie einfach von hier und behalte diesen Raum einfach so wie es ist. Ich glaube, wir werden dies zu einem Prefab machen und es jedem Raum hinzufügen können, den wir wollen. Aber wie auch immer, später werden wir darüber nachdenken. Aber im Moment löschen wir einfach alle Feinde und werden dazu führen, dass dies die Ebene behält, wird das Portal offensichtlich behalten, weil wir später aus dem Laden raus wollen. Und ich klicke hier mit der rechten Maustaste und erstelle ein leeres Spielobjekt, das der Shop-Gegenstand sein wird. Und wir fangen mit Gesundheit an. Da sind wir los. Deshalb werden wir derzeit hauptsächlich drei Ladenartikel haben, auf die wir uns konzentrieren können. Wo wir Gesundheit 14 bekommen, die Upgrade-Gesundheit, und wollen eine Art Waffe kaufen, eine zufällige Frau, denke ich. Also. Lasst uns diese drei einstellen. Also werden wir hier einen haben, einen hier und einen hier. Beginnen wir mit dem einfachsten, dem normalen scharfen Gegenstand. Ich füge hier eine Komponente hinzu, die ein Sprite sein wird. Oder wissen Sie was, vielleicht wollen wir in die Notaufnahme gehen, wissen Sie was, lass uns vorerst einfach ein Sprite hinzufügen. Also ein Sprite-Renderer. Und wir werden in die Sprites in der, wo ist es? Oh, also Abholungen. Und los geht's. Das ist die Gesundheit. Und ich füge einfach das Sprite hier hinzu. Und wir werden es auf die Spielerebene setzen, obwohl wir gesagt haben, dass wir das nicht mehr tun werden. Aber wie auch immer, lass uns weitermachen. Dann werden wir offensichtlich einen Box-Collider 2D hinzufügen, und dies wird ein Auslöser sein. Während es also ein Auslöser ist, Mal sehen wir die Größe und natürlich wollen wir sie viel größer machen. So kann der Spieler hier einsteigen. Und wir werden zum Beispiel, wenn wir Schritte in der Nähe dieses Einkaufsartikels deklarieren, wird er eine Nachricht erhalten. Wir werden auch eine Leinwand hinzufügen und nur ein bisschen wo er lesen wird. Sie können diesen Artikel zum Beispiel eine Gesundheit kaufen oder Ihre Gesundheit für, sagen wir, 50 Münzen auffüllen . Und dies wird nur angezeigt, wenn der Spieler in der Nähe des Knopfes oder des scharfen Gegenstandes oder was auch immer steht . Und wir möchten auch einen kleinen Box Collider erstellen , der sicherstellt , dass wir dieses eigentliche Objekt nicht treffen. Also ein zweiter Box Collider, wir machen es nur ein bisschen kleiner, um gerade genug zu sein , damit wir hier nicht das eigentliche Objekt treffen. Da gehen wir, schließen das, speichern Sie sich das. Und was wir jetzt tun werden, ist dass wir eine Leinwand hinzufügen. Also gehen wir zur Benutzeroberfläche. Wir fügen ein hinzu, wo ist die Leinwand. Und wir nennen diesen D-scharfen Gegenstand Canvas. Und wir werden einstellen, wir wollen die Benutzeroberfläche sehen, okay, also können wir die Benutzeroberfläche nicht sehen. Wo ist es? Das ist es, die große riesige Leinwand? Schalten wir die Spielereien ein. Und es erlaubt mir nicht, die Waage zu entfernen , weil wir sie auf den Weltraum einstellen müssen. Und Null-Null-Punkt fünf auf der X-Achse, Null-Punkt fünf auf der Y-Achse. Und lassen Sie uns seine Position auf 0 zurücksetzen. Doppelklicken Sie nun auf den Shop-Artikel und los geht's. Jetzt haben wir die kleine Leinwand hier. Und lass es uns einfach verbeugen. Ja, ich denke, das ist gut genug hier oben. Und wir werden zunächst einen Besuch von Texten hinzufügen . Also gehen wir zu UI-Text viel Pro. Dies ist der erste. Dies ist für den Text, sagen wir den Druckknopf drücken. Und noch eine, die der sein wird , wohingegen dies der Text sein wird , der den Preis des Artikels darstellt. Also Artikel, Artikel für Eistext. Da sind wir los. Und ich werde das nach unten bewegen und diese nach oben bewegen. Und lasst uns ein paar bearbeiten und das vergrößern. Drücken Sie. E zu kaufen. Und scrollen Sie ein neues Stück in der Mitte nach unten und stellen Sie sicher, dass es automatisch formatiert wird. Und wir werden das auch abschalten. Wir wollen das nicht sehen und es mutig machen , es Roboter machen. Und wir können es nicht sehen, weil wir in die Leinwand und die Sortierebene gehen und es auf den Player setzen müssen in die Leinwand und die Sortierebene gehen . Da sind wir los. Jetzt können wir alles sehen. Und jetzt wieder im Knopf, das passt perfekt. Nun, ich denke, wir können das Maximum erhöhen. Wenn Sie also auf der gegenüberliegenden Seite drücken, haben Sie die Optionen genau hier um die Option für die automatische Größe das Minimum, das Maximum und was auch immer diese sind. Also habe ich einfach das Maximum erhöht, um den ganzen Raum hier drin zu füllen . Da sind wir los. Und jetzt zurück im Preisartikel, weißt du was, lass mich diesen einfach löschen und dann diesen duplizieren. Und jetzt bewegen wir es nach unten. Dies wird, sagen wir, Preis zwei Knöpfe sein. Und dann können wir zum Beispiel 99, 99 Münzen sagen . Da sind wir los. Wie Sie jetzt sehen können, ist eine Tabelle. Vielleicht ist es ein bisschen groß, aber darüber machen Sie sich keine Sorgen. Wir können die Größe dieser beiden tatsächlich verringern , weil sie etwas zu sperrig erscheinen. Also los geht's. So etwas. Und dieser auch so etwas. Ja, klar. Warum nicht? Nehmen Sie sich also Zeit, all dies zu erstellen, stellen Sie sicher, dass sie um Ihrer selbst willen wirklich gut aussehen. Und schließlich möchte ich eine Art Plattform unter der Seele hinzufügen , der Spieler oder wer auch immer dein Spiel spielt, verwirrt dies nicht nur mit einer Art Gegenstand auf dem Boden. Also gehe ich in meine Ressourcen und ich habe diese Art Teleport, ich werde es als Plattform verwenden. Ziehen wir es also genau hier in die Sprites. Und es ist nervig, wenn wir die Akten so klein haben. Klicken Sie also mit der rechten Maustaste hier erstellen Sie die Shop-Plattform. Und fügen wir es hier hinzu. Und das haben wir gerade. Also werde ich es zu einem Vielfachen machen, darauf hinweisen, die Änderungen anwenden gehen Sprite Editor. Und wie schneiden wir dieses Baby auf? Mal sehen, ich glaube das als eines der größeren Sprites. Sie können also genau hier sehen, dass es 128 mal 320 sind. Also zurück im Sprite Editor, denke ich, lass es uns automatisch versuchen. Ja, sicher warum nicht? Automatisch scheint gut zu sein. Wenn Sie möchten, können Sie hierfür Animationen erstellen. Ich empfehle es, damit du die ganze Zeit spielen kannst. Vielleicht machen wir das. Also gehe ich gleich hier zurück in den Artikel. Und lass uns einfach diesen Teleport hinzufügen. Da sind wir los. Dies wird also das Plat-Formular des Artikels sein. Und wir sollten es auf die Ebene legen, Layer. Es ist sehr klein. Also werden wir ins gehen, wo ist es? Okay, also hier, lass uns 50 machen. Sieh dir an, wie das aussieht. Machen wir es noch größer. 25. Jetzt, da wir 25 haben. Nein, das ist ein bisschen zu groß. Jetzt. Was ist zwischen 25 und 50? Das ist Truck 14. Bewerben. Großartig. 40 scheint also die richtige Größe zu haben und ich setze es auf 00 und schiebe es dann etwas nach unten. Nun, lasst es uns behalten. Wenn du willst, kannst du vielleicht anfangen, das auf und ab zu bewegen. Und aber ich werde es einfach behalten, wie es für den Button ist, vielleicht möchte ich ihn drehen. Ich empfehle dir, das zu tun. Aber denken Sie daran, dass Sie, wenn Sie das tatsächliche Plus hier verschieben möchten , das grüne Plus, sicherstellen müssen, dass Sie es als separates Objekt festlegen müssen. Denn wenn wir das bewegen, schauen Sie, was auf der breiten Seite passiert, alles dreht sich um. Sie müssen also sicherstellen, dass Sie eine Art Animation hinzufügen möchten, um dies auch zu animieren, vielleicht werde ich es später tun, aber im Moment konzentrieren wir uns darauf, das eigentliche Element zu erstellen. Also verschiebe ich das hier ein bisschen runter. Also los geht's. Jetzt können wir sehen, dass dies ein Gegenstand ist. Ich werde hier ein Skript erstellen, das sein wird, und die Skripte, ich werde das ein bisschen größer machen. Und haben wir irgendetwas? Okay, also lasst uns fortfahren und klicken Sie mit der rechten Maustaste hier und erstellen Sie einen neuen Ordner. Und das wird für den Shop sein. Und innerhalb Ihres Laufens, um den Shop-Artikel zu erstellen. Da sind wir los. Warte, bis es kompiliert und ich werde wissen, Danke was das öffnet. Und ich werde das, was los ist, hinzufügen. Die neue Einheit ist also sehr schrecklich. Es stürzt immer wieder ab, hört weiter auf. Das Laden des Spiels braucht viel Zeit. Weil das Skript nicht gefunden werden kann. Hervorragend, Großartig. Also haben wir das Skript, das Skript kann nicht gefunden werden. In unserem Fall gibt es offensichtlich ein Problem. Lass mich das löschen. Oh, tut mir so leid. Es lag an mir, weil ich beim Löschen gerade bemerkt habe, dass ich eine Leerzeichen hinzugefügt habe, ein scharfes Element, wir können keine Leerzeichen dazwischen hinzufügen . So scharfer Gegenstand. Jetzt sollte das funktionieren. Okay, da sind wir los. Also öffne das Skript. Jetzt haben wir diesen scharfen Gegenstand. Lassen Sie mich das ein- und zweimal duplizieren. Und jetzt haben wir diese drei Gegenstände. Lassen Sie mich das ein bisschen nach links bewegen und diese auch ein bisschen nach links bewegen. Und schließlich auch dieser, vielleicht können wir sie etwas kleiner machen, aber keine Sorge, wir haben diese drei Gegenstände später, wir werden sie ändern. Offensichtlich wird dies das Gesundheits-Upgrade sein und dieses werden die Waffen sein. Waffen trafen Enter. Ich hoffe es hat dir gefallen. Dies war nur das Setup unserer Artikel. Im nächsten Video beginnen wir mit dem gesamten Skriptprozess und ändern das Verhalten. Und bevor ich gehe, lass mich einfach ein leeres Spielobjekt erstellen und seine Position zurücksetzen. Und das werden die Shop-Artikel sein, nur damit wir für alles eine schöne Hierarchie haben. Spar dir das auf. Und wir sehen uns im nächsten Video. 79. Kaufen aus dem Shop: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und in diesem nehmen wir ein paar Münzen auf , wir werden getroffen. Unser Leben ist also 200 über 300. Aber zum Glück haben wir diese Gesundheit hier drin, damit ich ein paar Gesundheit kaufen und meine Gesundheit verbessern kann, aber nicht alles funktioniert. Sie können also genau hier sehen , weil das etwas anderes ist. Dies ist kein halbes Upgrade, ich meine, ein Artikel zur Wiederherstellung der Gesundheit. Das ist und ich kaufe. Aber endlich sieht man, dass ich 0 Geldbeträge habe. Wenn ich also versuche, mehr zu kaufen, kann ich es leider nicht der Wirtschaft beschuldigen, beschuldigen Sie es wem auch immer Sie wollen. Verschwenden wir keine Zeit mehr. Lasst uns anfangen. Oh, Fall. Jetzt ist es an der Zeit, die Artikel tatsächlich zu kaufen. Und das erste, was wir tun wollen, ist, dass diese Texte hier erscheinen lassen, wenn der Spieler hier im Box Collider steht . Und wenn er außerhalb des Tellerrandes steht, wollen wir den Text nicht sehen und wir können nicht kaufen. Das erste, was wir tun werden, ist, dass ich denke, dass ich das ein wenig erhöhen möchte. Daraus werden wir die Größe also etwas größer machen. Ups. Eine Sekunde. Erhöhen Sie die Box Collider auf allen Seiten, machen Sie sie ein bisschen größer und machen Sie vielleicht sogar den Box-Collider, der kein Auslöser ist, was dieser ist, und vielleicht nur die gesamte Oberfläche davon bedeckt , was auch immer es ist, Plattform mit ein wenig plus grünem Plus, und mit dem, aus dem Weg, werde ich das außerhalb des Bildschirms machen ist ziemlich einfach, nichts zu viel. Und es kommt immer wieder auf dich zurück, wie groß, wie klein du es machen willst. Aber es gibt etwas, das Ihnen nicht überlassen ist, und das ist heute die Herausforderung. Wir möchten, dass der Text erscheint, wenn wir näher kommen. Holen Sie sich also einen Verweis auf den Bytetext. Verwenden Sie den Enter- und Beenden des Unternehmers, um den Text aktiv auf „true“ bzw. „false“ festzulegen . Und erstelle auch einen Bool, der wahr ist, wenn der Spieler in den Spielern ist, und falsch, wenn er nicht da ist. Also, obwohl der Weg das Video jetzt anhält und flach wird. O K. Willkommen zurück. Also habe ich gerade mit dem ersten fertig, was ich tun werde ist diese drei Gegenstände auszuwählen und sie zu den Pickups zu machen? Ja. Machen Sie die Kinder auch Pickups. Jetzt werden wir also die Shop-Artikel öffnen, ein Drehbuch, ich glaube, es öffnet sich hier und wir werden aufhören. Also werde ich zunächst eine Tante Zucker schaffen, der ein- und ausgeht. Also weiter, Trigger Geben Sie 2D ein und bei Zuckeraustritt 2D. Jetzt brauchen wir einen Hinweis auf die Tschüss-Nachricht. Also hier drin erstelle ich ein serialisiertes Feld vom Typ Text Mesh Pro. Oder wissen Sie, was wir vielleicht tun können, ist, dass wir weitermachen und einfach die gesamten Artikel ändern können . Oder was ich meine ist, die gesamte Leinwand auszuschalten und einzuschalten. Also kriegen wir die ganze Leinwand, wir können sie ein- und ausschalten. Vielleicht ist es also der bessere Weg einen Verweis auf die Leinwand zu erstellen. Und hier können wir einen Verweis auf ein Spielobjekt erstellen. Es spielt wirklich keine Rolle. Aber auf jeden Fall, die Canvas-Nachricht, nennen wir dies die Canvas-Nachricht. Und jetzt, wenn wir eintreten, weil wir nur den Pickup haben und die Pick-up-Pickups nur mit den Spielern interagieren wird dies kein Problem sein. Also hier drin, die Tschüss-Nachricht, raus, Entschuldigung, Tschüss Nachricht. Ich denke immer noch an eine andere Variable. So wird der Canvas-Nachrichtenpunktsatz aktiv oder Punktspielobjektpunktsatz aktiv, true. Und dann dupliziere ich es. Und hier drin, wenn wir aussteigen, ist es falsch. Spar dir das auf. Dann brauchen wir auch eine Variable, die nach Zone ein privater Bool sein wird. Und hier werden wir sagen, dass in Zone gleich wahr ist und nach Zone gleich falsch ist. Und vielleicht haben wir es hier als falsch instanziiert. Also fangen wir mit „false“ an. Wir wollen nicht kaufen können, wenn wir sehr weit weg stehen. Okay, großartig damit das aus dem Weg ist. Lass uns hier rein gehen. Und wählen wir diese drei Leinwände aus. Also 123, schalte sie aus, führe das Spiel aus, geh darauf zu. Da sind wir los. Nichts passiert, offensichtlich weil wir vergessen haben, das Wichtigste zu tun, nämlich die Zuweisung der Leinwand. Also weisen wir die Leinwand jedem einzelnen von denen zu , die das Spiel ausführen. Und jetzt hätten wir unser Problem jeden Tag beheben sollen. Dann gehen wir runter. Da sind wir los. Wir drücken E, um Preis 99 Münze, Preis 99 Coin und priceline.com zu kaufen . Okay, großartig. Jetzt schaltet es sich aus, es schaltet sich ein. Und offensichtlich sollte das Bi auch funktionieren. Wir haben einen Fehler, der etwas ist. Gegenwart und die aktuelle Unity-Version. Danke Unity für dieses sehr schlechte Update. Auf irgendeine Weise, lasst uns weitermachen. Jetzt gibt es etwas zu berücksichtigen. Wir haben die drei Arten von Artikeln, die wir kaufen können. Das ist gut. Okay, also können wir zum Beispiel sagen, ob dieser Gegenstand so weiter ist und so weiter, also gibt es etwas Besseres, das ich dir in diesem Video beibringen möchte und das als Inneres bezeichnet wird. Ich gehe nicht auf die Folien, weil es ziemlich einfach zu verstehen ist. Wir können eine Aufzählung erstellen. Es wird der Artikeltyp sein. Und wir können die Klammern hier öffnen und sagen, dass einer von ihnen die Wiederherstellung, Gesundheit, Wiederherstellung der Gesundheit ist . Die zweite ist die Gesundheit nach oben, und der letzte ist eine Waffe. Was ist also der Enum-Item-Typ im Grunde erlaubt es uns, in seinen einfachsten Worten in seinen einfachsten Worten eine neue Art von Variable zu erstellen. So wie wir den Booleschen Wert, die Leinwand usw. haben , können wir auch eine Aufzählung erstellen, bei der es sich um den Elementtyp handelt. Und jetzt können wir hier eine Variable erstellen, bei der es sich um ein serialisiertes Feld vom Typ, Artikeltyp und es handelt sich um den tatsächlichen Elementtyp. Da sind wir los. Wie Sie sehen können, hat die Aufzählung den ersten Buchstaben und für jedes Wort großgeschrieben, während die Variable nicht groß geschrieben wird, ist sie in Kleinbuchstaben. Wenn wir das also speichern und wieder in unser Spiel gehen, schauen Sie, wie cool das sein wird. Wenn ich den Artikeltyp wähle , schließe ich die Box Collider. Sie können sehen, dass ich ein Dropdown-Menü habe und einen dieser Elemente auswählen kann. Und das ist etwas wirklich Nettes. Und dies ist ein Upgrade aus dem vorherigen Abschnitt, in dem die Feinde jeweils ihre eigene Box zum Mitnehmen hatten und so weiter und so weiter. Und du musst etwas aufheben, um etwas anderes zu nehmen. Das hier ist ein viel besserer Weg, viel reibungsloser. Dies wird also das halbe Upgrade sein und das letzte wird die Waffe sein. Großartig. Jetzt haben wir den Artikeltyp, von dem wir wählen können. Aber es gibt noch eine Sache, die wir hier hinzufügen müssen, und das sind die Artikelkosten. Also serialisiertes Feld und die Artikelkosten, aber das ist nicht das, woran ich war. Ich wollte mich darauf konzentrieren, dass ich mich auf etwas konzentrieren wollte , das als Switch-Anweisung bezeichnet wird. Aber bevor ich das hier mache, erstelle ich das Update. Und ich überprüfe, ob ich nach Zone beneidet bin. Dann werde ich prüfen, ob wir einen Eingabepunkt haben , Keydown bekommen, dies öffnen, Keycode, Schlüsselcode Punkt e. Und hier können wir zum Beispiel anfangen zu erstellen, wenn, sagen wir das Element tippe Punkt etwas und was auch immer und beginne, nach den Artikeln zu suchen und basierend darauf zu kaufen. Aber wir haben in diesem Fall etwas viel Stärkeres. Und das ist der Switch-Fall. Lassen Sie mich Ihnen zeigen, was dieser Switch Case ist. Ähnlich wie die if-Anweisungen ermöglicht es uns eine bedingte Codeausführung. Wenn wir einen bestimmten Artikeltyp haben, möchten wir etwas anderes nennen. Wenn wir die Gesundheit verbessern wollen, sollten wir eine andere Methode nennen als die, bei der wir eine Waffe kaufen. Die Switch-Anweisung wird hier also sehr effektiv sein. Und genau wie die if-Anweisung funktioniert es genauso, wie wir die bedingte Codeausführung haben, aber sie ist etwas anders und effizienter strukturiert , wenn es um solche Dinge geht. Also beginnen wir damit, den Schalter zu schreiben. Wir fügen den Fallschalter hinzu. Hier drin könnte das alles sein, was wir wollen. In unserem Fall ist es der Artikeltyp , den wir haben. Im Fall eins. Angenommen, der Elementtyp ist ein Integritätsupgrade. In Fall 1 heißt es hier zum Beispiel ein Gesundheits-Upgrade. Wir führen einen Code aus, den wir brechen. Das ist sehr wichtig und dann gehen wir zum zweiten Fall. Der zweite Fall ist die Waffe. Dann führen wir einen anderen Code aus, wir brechen und suchen dann nach dem Standard. Jetzt können Sie offensichtlich addieren wie viele Fälle Sie möchten, zu 123, 1520, 500 wenn Sie möchten. Aber irgendwann müssen wir eine Art Standard-Sache bekommen. Was passiert also, wenn wir keinen Artikeltyp haben? Dies ist etwas, das nicht passieren wird, aber nur für den Fall, dass es keinen Artikeltyp gibt, müssen wir eine Standardunterbrechung haben und dann haben wir die Switch-Anweisungen abgeschlossen. Stellen Sie also sicher, dass Sie es verstehen. Wir werden die Implementierung sehen und nur ein bisschen, aber schauen Sie sich nur die Struktur an. Wir dann ohne Schau was es ist. Und lasst uns in unseren Code zurückkehren und dies umsetzen. Bevor wir diese Switch-Anweisung erstellen, müssen wir wissen, ob wir tatsächlich Geld dafür haben. Zunächst einmal prüfen wir, ob der Spielmanager punktinstanzpunkt ist. Lass es mich sehen. Haben wir Zugang zum aktuellen Ging? Nein, tun wir nicht. Also werden wir ein öffentliches Int erstellen. Und hol dir aktuelle Bit-Coins. Und das wird nur aktuelle Bitcoins zurückgeben. Speichern Sie das, gehen Sie zurück und hören Sie, wie der Instanzpunkt aktuelle Bitcoins erhält. Und wenn wir mehr oder mindestens gleich haben, wenn wir also mehr oder mindestens gleich den Artikelkosten haben, können wir weitermachen. Und sobald wir den Gegenstand kaufen, gehen wir zum Spielmanager, Punktinstanz, Punkt, Münzen ausgeben. Und die Menge an Münzen, die wir als Artikelkosten ausgeben werden. Aber was dann passieren wird, nachdem wir unsere Münze ausgegeben haben, sollten wir uns einen Gegenstand besorgen. Also werden wir den Switch erstellen. Und hier drin werden wir den Artikeltyp sagen. Dies ist also der Fall, um den wir wechseln. Und jetzt werden wir das öffnen. Also für den Fall, dass wir den Gegenstandstyp Punkt Health Restore haben und es mir nicht erlaubt oh, nein, ist es nicht. Der kleine Elementtyp ist die Wiederherstellung der Punktgesundheit des großen Elementtyps. Wir setzen die beiden Punkte ein und drücken Enter. Hier werden wir es tun, während wir hier entweder Objekte des Typs finden können und es wird der Gesundheitshandler der Spieler sein. Und dann können wir hier reingehen. Und was haben wir nicht erklärt, dass der Gesundheitshandler dem Spieler schadet. Okay, also bei HP zu Spieler, bei HP zu Spieler. Und wie viel möchten wir hinzufügen? Nun, wir können hier wählen, ob 10 oder 20 oder welchen Wert Sie hinzufügen möchten, speichern Sie diesen. Brake hatte das und los geht's, sag das. Also habe ich dort für eine Sekunde inne gehalten, weil ich mir nicht sicher war , ob wir das Dateiobjekt vom Typ verwenden sollten oder ob du noch besser willst, erstelle hier eine Variable für den Player. Also eine private Variable für den Layer und setze sie dann genau hier und die Kollision, dies wäre intelligenter und kosteneffizienter , weil wir wissen, dass nur der Spieler hier die Kollision sein kann der Schicht, die wir gesessen haben. Und das Objekt des Typs zu finden ist manchmal etwas umständlich. Es ist, es braucht viel Platz von der Verarbeitung, viel Rechenleistung, weil ein feines Objekt des Typs einfach die gesamte Liste in Ihrer Szene durchläuft die gesamte Liste in Ihrer Szene durchläuft und dann eine von ihnen auswählt. Es hängt also von dir ab. Was immer du machen willst, liegt wirklich an dir. Also wo haben wir den Artikel genau hier? Wählen wir also den ersten aus. Das ist der Preis für 20. Oder weißt du was? Lass es uns einfach bei 10 behalten. Und das wird ein bisschen Gesundheit wiederherstellen. Und ich gehe in die Prefabs. Und hier drin füge ich die Stacheln hinzu. Also oder sind es die Pickups? Lass uns ein bisschen Münze hinzufügen und hier 23 Münzen. Wir haben also Geld auszugeben. Und dann gehen wir wieder in die Prefabs und fügen ein hinzu. Wo ist es? Wo ist es? Level Objekt an den Stacheln genau hier. Führe das Spiel aus. Also möchte ich von den Stacheln getroffen werden. Okay? Nimm ein paar Kegel ab, geh hier runter und wir sind zu Besuch. Also los geht's. Wir drücken das Ike. Ja, da sind wir los. Wir werden bräunen, bräunen, bräunen. Und wenn ich versucht habe, mehr zu kaufen, dann geht's los. Wir haben 0, also kann ich nichts mehr kaufen. Da sind wir los, so toll. Das scheint zu funktionieren. Im nächsten Video werden wir das Gesundheits-Upgrade verwenden um eine separate Methode und den Gesundheitshandler zu erstellen. Und wie gesagt, und übrigens taucht dieser Fehler immer wieder auf. Mach dir darüber keine Sorgen. Wie ich hier gesagt habe, geht das feine Objekt vom Typ etwas, das mir nicht gefällt besonders ich möchte es nicht zu übertreiben definiertes Objekt von Pipe auf Sie zurück. Ich hoffe wirklich, dass Sie versuchen, Ihre eigene Variable zu erstellen, setzen Sie sie genau hier ein. Mit dem gesagt, hoffe ich, dass es Ihnen gefällt. Ich hoffe, du speicherst alles, singst alle deine Dateien und wir sehen uns im nächsten Video. 80. Ein Gesundheitsverbesserung erhalten: Willkommen zurück Meine Lieblingsspielentwickler zu einem brandneuen Video. Und in diesem nehmen wir ein paar Münzen auf, wir werden getroffen, wir gehen runter. Wir können entweder unsere Gesundheit wiederherstellen oder unsere Gesundheit verbessern. Lasst uns also unsere Gesundheit verbessern. Wie Sie sehen können, ist das Maximum um zehn gestiegen, und unsere Gesundheit ist jetzt voll, weil das unser Mechaniker im Spiel ist. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Okay, also Zeit, unsere Gesundheit zu verbessern. Aber bevor wir das tun, stört mich etwas und etwas, das wir reparieren müssen. Lassen Sie uns zunächst diese drei Campus hier einschalten. Und auf jeder Leinwand werde ich das ändern, was auch immer der Preis hier sagt. So werden wir zum Beispiel den Preis 999 stattdessen als Wiederherstellung der Gesundheit speichern. Gesundheit wiederherstellen. Und wir sagen, wie viel haben wir gesagt, dass es kostet? Wie hoch sind die Kosten für die Wiederherstellung der Gesundheit 10. Also hier drin, dann BTC. Okay, also im zweiten wird es das Upgrade sein. Also öffnet sich, wähle den Button, lass mich diese schließen. Was war es? Aktualisieren Sie den Gesundheitszustand. Upgrade, Gesundheit. Und sagen wir, dieser wird 30 v. Chr. kosten. Und schließlich der neue Gegenstand, lass mich das noch einmal schließen und diese beiden Leinwände drehen , und schließlich haben wir dieses hier. Und das wird durch Waffe oder Waffe sein. Und das wird sein, sagen wir 40 BTC. Da sind wir los. Jetzt haben wir alles richtig eingerichtet Beim Denken im nächsten Video werde ich vielleicht auch jedem dieser Elemente ein bisschen Animation hinzufügen und vielleicht etwas auf der Plattform nur um ihm ein bisschen mehr Leben zu geben. Okay, damit das aus dem Weg ist, lassen Sie uns das wieder runterlassen. Aber bevor wir gehen, möchte ich das eigentliche Sprite hier ändern. Und ich habe dir ein paar Sprites zur Verfügung gestellt. Also haben wir zuallererst diese, aber ehrlich gesagt fand ich das ein bisschen hässlich. Also benutze ich diese auch, und es hängt wirklich davon ab, was dein Spiel haben soll. Du kannst sehen, dass es hier viele Tränke gibt, also wähle ich das Rot aus. Und wir haben dieses dicke Glas vielleicht sollten wir das dicke Glas benutzen? Nein, lass uns einfach das normale Glas benutzen. Und ich füge es hier in die Sprites ein. So öffnet sich das Innere von Sprites größer. Und lassen Sie uns fortfahren und klicken Sie mit der rechten Maustaste hier hinein und erstellen Sie vielleicht einen separaten Ordner dafür oder fügen Sie ihn einfach zu den Pickups hinzu , wenn wir etwas oder etwas für die Gesundheit haben. Irgendwas. Abholungen? Ja, klar. Das wird zu den Pickups hinzugefügt. Darüber machen Sie sich keine Sorgen. Behalt es hier drin. Ich denke, das ist ein guter Ort. Und dann gehen wir in das Item-Upgrade ein und geben ihm dieses. Da sind wir los. Nett. Sehr groß. Also werde ich es vielleicht 200 machen, anwenden, bi-Linearer Punkt machen. Bewerben Sie sich Immer noch groß. 400, 400 Ich denke, wäre zu klein. 300 gelten. Und das Ja scheint gut genug zu sein. Vielleicht können wir es ein bisschen nach oben bewegen. Aber deshalb wollte ich das eigentliche Item-Sprite hier für jeden erstellen . Was jetzt? Lass uns weitermachen und das machen. Einige fortlaufend erstellen das Item-Sprite. Und es ist immer besser, diese hellen auf einem anderen zu haben . Und was wir tun können, ist hier auszuwählen und auf Komponente kopieren zu klicken. Kopieren Sie also Komponenten, wählen Sie das Element Sprite aus und wählen Sie hier ein und im Grunde genommen die Komponente als neu. Jetzt kann ich hier wieder reingehen und die Komponente vollständig entfernen. Und jetzt kann sich dieses Sprite frei auf und ab bewegen und wir können ihm frei eine Art Animation hinzufügen. Also kopiere ich das und füge es für das erste Element und hier ein. Und dann dafür auch hier drin. Und wir sollten die Position jedes einzelnen zurücksetzen. Und dafür. Und hier drin, anstatt dieses Rot zu haben, werden wir das übliche Sprite hinzufügen, das wir verwenden. Und hier drin entfernen wir einfach die Komponente. Da sind wir los. Exzellent. Jetzt können wir diesen Gegenstand kontrollieren, das alles auf Song sprite. Und was wollen wir sonst noch tun? Und der letzte hier drin, Gegenstände privat, entferne diesen Gegenstand und Elektron und im nächsten Video werden wir seine eigene Waffe hinzufügen. Okay, also das aus dem Weg ist, stellen Sie auch sicher, dass Sie die Box-Gleiter an jedem einzelnen davon wechseln , nur damit wir nicht mit den Gegenständen kollidieren , die aus dem Weg sind. Lasst uns eins fortsetzen und jetzt ist es Zeit für das Gesundheits-Upgrade. Also lass uns gehen. Erstellen Sie zunächst eine Methode und den Spielergesundheitshandler, mit denen wir das maximale Level 2 erhöhen können. Haben wir irgendwas zu tun? Nein, das tun wir nicht. Also füge ich es gleich hier hinzu. Also hier drin werde ich eine öffentliche Leere schaffen. Erhöhen Sie max. Was ist das? Maximale Gesundheit. Und hier drin und der maximale Gesundheitsbetrag. Und dann werden wir die maximale Gesundheit bekommen und sie um V-Max-Gesundheitsbetrag erhöhen. Und dann werden wir die aktuelle Gesundheit bekommen und es ist gleich der maximalen Gesundheit. Oder wenn Sie möchten, können Sie dies vermeiden und dies nicht tun. Also bekommen wir ein Upgrade, aber wir bekommen keine Gesundheit. Oder wenn Sie möchten, können Sie anstelle der maximalen Gesundheit festlegen, Sie den aktuellen Gesundheitszustand plus 75 Prozent oder so einstellen . Ich glaube, das ist etwas, das in Hades passiert oder du kannst es um nur zehn erhöhen oder wie du es willst, ich werde es einfach halten wie hier. Und dann gibt es noch eine Sache, die wir tun müssen, und das ist, dass wir in die UI Manager Door Instanz gehen müssen, und wir müssen The Wait eine Sekunde aktualisieren, während wir den UI-Manager müssen aktualisiere den halben Balken , damit wir sicherstellen müssen, dass er zeigt, was passiert. Erhöhen Sie den Maximalwert und den Wert unserer Gesundheit hier, in der UI Manager-Instanz aktualisieren wir den Maximalwert, der die maximale Gesundheit des Schiebereglers ist. Und das ist wichtig, denn dies wird bestimmen, wie der Slugged funktioniert. Nachdem wir die maximale Gesundheit aktualisiert haben, müssen wir zur Punktinstanz des UI-Managers wechseln, dem Punktgesundheitsschieberegler-Punkt-Maximalwert . Und es wird wieder gleich dem maximalen Hallo sein. Also spar dir das auf. Und wir werden auch sicherstellen, dass Sie die Spielerzustände aktualisieren , die Sie am Ende befinden. Spar dir das auf. Okay, großartig. Jetzt, da das aus dem Weg ist, Zeit, den Artikel hier zu kaufen. Also werde ich es dir als Herausforderung ausstellen. Und das bedeutet, einen weiteren Fall für das Gesundheits-Upgrade zu schaffen . Erstellen Sie also einen neuen Fall, Elementtyp des Integritätsaktualisierungs-Objekts verwendet. Dann musst du das Spieler-Gesundheitssystem genau wie zuvor finden Spieler-Gesundheitssystem genau wie oder wenn du die Kollision verwendest, dann endlich die maximale Gesundheit unseres Spielers erhöhen. War das obwohl der Weg das Video gerade pausiert und zur Herausforderung geht. Oh, hey, willkommen zurück. Zurück im Shop-Artikel hier haben wir einen anderen Fall, in dem wir den Fallartikeltyp Punktgesundheits-Upgrade aufrufen werden. Und wir werden das Gleiche tun. Wir werden den Layer-Health-Handler finden. Und dann werden wir die maximale Gesundheit erhöhen, um wie viel erhöhen wir den Mac South? Lass es uns einfach bei 10 behalten. Halte die Dinge einfach, damit wir es leicht verstehen können und dann brechen wir. Also zurück in unserem Spiel, Mal sehen wir, dass dies 13 Bitcoins verursachen wird. Also überall lass es uns 30 machen. Spar dir das auf, führe das Spiel aus. Jetzt sollten wir sehen, dass wir ein paar Münzen abholen. Wir können uns verletzen, wenn du willst. Da sind wir los. Jetzt sind wir also bei 200. Wir können entweder die Gesundheit wiederherstellen oder unsere Gesundheit verbessern. Wenn ich also die Gesundheit aufrüste, los geht's. Sie können sehen, dass ich jetzt 310 habe und ich kann auch ein Upgrade durchführen. Ich kann es kaufen, aber nichts wird aktualisiert. Wenn Sie denken, dass dies unfair ist dass wir den Artikel tatsächlich kaufen können, aber davon keinen Nutzen ziehen, dann seien Sie mein Gast. Ich empfehle Ihnen, zuerst zu überprüfen, bevor wir die Gesundheit erhöhen, haben wir sie tatsächlich maximal? Wenn Sie es maximal haben, nehmen wir es nicht oder kaufen Sie es nicht oder so ähnlich. Wenn das aus dem Weg ist, hoffe ich, dass es Ihnen gefällt und wir sehen uns in der nächsten, wo wir tatsächlich die Waffen kaufen werden . Als Nächstes stellen wir es ab jetzt, 40, ein. Spar dir das auf. Und wir sehen uns dann. Oh, und vergiss natürlich nicht, deine Änderungen zu übernehmen. Wir sehen uns im nächsten. 81. Shopping für Waffen: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video, einem brandneuen langen Video. Aber es lohnt sich, denn jetzt, wenn wir das Spiel laufen, holen wir ein paar Münzen. Wir gehen hierher, okay, damit wir die Gesundheit wiederherstellen können, wir können die Gesundheit verbessern oder wir können etwas viel Kühleres tun, und das ist von uns selbst eine Waffe. Also holen wir uns ein Gewehr und dann können wir es überall schießen. Verschwenden wir also keine Zeit mehr und lasst uns auf jeden Fall Waffen, Visa wie Paxos kaufen . Also Zeit für den letzten Gegenstand, den wir kaufen können, nämlich die Waffe. Also gehe ich ins Item-Sprite. Und übrigens, was ich außerhalb des Bildschirms gemacht habe, ist, dass ich ein paar Animationen hinzugefügt habe und sicherstelle , dass sich das Elementsprite auf einer anderen Ebene befindet. Dort können Sie sehen, wie sich alle drehen und Sie können sehen, dass die Plattform diese kleine Animation darauf hat. Ziemlich einfach, ziemlich einfach. Ich werde nicht zu tief darauf eingehen. Aber was ich tun werde, ist, dass ich hier reingehen und diesen Stolz auf den letzten ändern werde. Und lass uns in die Sprites gehen. Abholungen. Nein, keine Abholungen. Waffenwaffe, Waffenwaffenabholung. Wählen Sie dieses aus und fügen wir das Gewehr vorerst hinzu. Da sind wir los. Ich kann es sehen. Lass es uns ein bisschen größer machen. Tut mir Leid dafür. Wir sollten das Seitenverhältnis irgendwie beibehalten. Was jetzt? Erhöhen wir die Skala einfach um zwei, um zwei, um 1,5 um 1,5. Okay, großartig. Wenn wir das Spiel jetzt ausführen, glaube ich, dass sich das drehen sollte , weil es den Animator hat. Da sind wir los. Sie können sehen, dass es sich dreht und darauf warten, dass wir kommen und abgeholt werden. Der Unterschied zwischen den beiden anderen Gegenständen und dem Waffengegenstand besteht darin, dass wir zum Beispiel nicht nur ein Item 40-Gewehr haben wollen . Wir wollen eine Art zufälligen Gegenstand oder eine zufällige Waffe bekommen , wenn wir eine Waffe kaufen wollen. Also gehe ich in das Artikelskript und dieser Fehler stört mich sehr. Und im Shop-Artikel hier drin werde ich ein paar Zeilen erstellen. Als erstes möchte ich also ein serialisiertes Feld des Waffensystems schaffen . Und es wird eine Reihe potenzieller Waffen sein , die man kaufen kann. Das ist ein langer Name für eine Variable. Und dann erstelle ich ein Privates und das Waffensystem und die eigentliche Waffe, auch keine Waffe. Von, da geht's los. Und schließlich werden wir zwei Dinge tun. Das erste, was das richtig machen wird , weil wir das Sprite basierend auf der Waffe ändern wollen das Sprite basierend auf der Waffe ändern , die wir kaufen werden. Also privates Sprite, Renderer. Und da sind wir los. Und der Gegenstand Sprite, nicht das Gegenstandsprite, das Waffensprite. Also Waffe, also weil das nur für die Waffe benutzt wird. Und dann bekommen wir das serialisierte Feld, den Text Mesh Pro oder TMP Pro, Tempe pro, ja, Kurzschrift P Pro. Und das wird der Preistext sein , auf dem wir den Preis ändern möchten, okay, also können wir das nicht verwenden, weil wir TMP Pro brauchen, tut mir leid dafür. Oder Sie wissen, was wir tatsächlich tun können, können wir, anstatt TMP Sonde Dot Text Mesh pro Gu zu verwenden. Da sind wir los. Auf diese Weise müssen wir keine ganze Bibliothek hinzufügen. Dies ist also nur eine neuartige Art, Dinge zu tun. Und jetzt haben wir einen Preis für jede unserer Waffen und ein Sprite für jede unserer Waffen. Gehen wir ins Waffensystem. Und lasst uns hier hineingehen und ein serialisiertes Feld für den Preis der Waffen schaffen . Also int Waffenpreis. Und wir werden auch ein serialisiertes Feld für das Sprite erstellen. Und das wird das Waffenladen-Sprite sein. Und offensichtlich sind all dies serialisierte Felder, daher können wir nicht darauf zugreifen. Also müssen wir hier ein paar Methoden erstellen. Der erste wird ein Publikum sein und was und und einen Waffenpreis bekommen. Und das wird den Waffenpreis zurückgeben. Und dann werden wir ein öffentliches Sprite für richtig haben und uns ein Waffenladen-Sprite besorgen. Und das wird zurückkehren, die Waffe zurückgeben, oder? Waffenladen Sprite. Da sind wir los. Das Waffenbild und die Waffen Sprite sind also ganz andere Dinge. Vielleicht sollten sie es nicht sein, vielleicht können wir nur einen haben , der das gesamte Sprite zurückgibt. Aber wenn du hier reinschaust, möchte ich die mit der weißen kleinen weißen dünnen Linie haben der weißen kleinen weißen dünnen Linie damit wir die Waffe leicht unterscheiden können. In dem kannst du das sogar hier ändern, dieses. Machen wir uns darüber keine Sorgen. Lass uns so weitermachen wie wir sind. Diese kleinen Tricks können dann am Ende angepasst werden und das können wir alles ändern. Also lasst uns jetzt in die Waffen gehen. Waren die Waffen, die sie in den Prefabs sind. Die restlichen, restlichen reservierten, zerbrochenen feindlichen Waffen. Da sind wir los. Also das Gewehr, das das ablegt und mal sehen, was wir hier haben. Also das Waffenladen Sprite und der Waffenpreis, wie viel kostet das Gewehr? Sagen wir 10. Nehmen wir an, die Pistole kostet 20. Nein, tut mir leid. Was jetzt? Lassen Sie uns das Gewehr 20 kosten. Lass uns zurückgehen. Die Pistole wird zehn kosten und die Schrotflinte kostet 30. Und das sind nur willkürliche Zahlen. Ich weiß nicht, was du uns benutzen willst. Gesetz. Lass uns die Sprites einrichten. Also werde ich das ein bisschen größer machen damit ich die Namen hier schneller sehen kann. Und was haben wir hier drin? Abholungen? Nee. Jedes Mal. Okay. Also füge das Schrotflinten-Sprite für das Gewehr hinzu. Schalte das für das Gewehr frei. Ich gehe zu nein, nein, nein, nein. Das ist ein bisschen umständlich, nicht wahr? Also irgendwo am Gewehr. Und schließlich wählen wir die Waffen und das Prefab aus, die Pistole. Waffen, heb den PESTEL auf, wir speichern das. Und jetzt haben wir einen Hinweis auf all diese. Großartig. Jetzt, da wir das Sprite haben, haben wir den Waffenpreis, das nächste, was wir tun müssen, ist zu beginnen und alles einzurichten , sobald die Waffen nachdenken. Also werde ich im Shop-Artikel hier sparen, ich werde einen Anfang erstellen und ich werde Ihnen eine Herausforderung stellen. Deine Herausforderung besteht also darin, den Typ zu überprüfen, zufällige Waffen auszuwählen, das Sprite und die Steuer festzulegen. Also und überprüfe, ob wir einen Waffentyp haben Du musst eine zufällige Waffe aus potenziellen Waffen oder potenziellen Waffen auswählen . Und Sie müssen die Artikelkosten als Waffenpreis festlegen. Du musst das Sprite als geeignete Waffe einstellen. Sie müssen auch Texte zufriedenstellen. Und ich glaube, das ist der letzte Punkt. Wenn das aus dem Weg ist, pausieren Sie das Video jetzt und gehen Sie zur HL7. Oh, okay, willkommen zurück. Also am Anfang, das ist es nicht das, was ich meinte. Wenn wir einen Gegenstandstyp haben, der der Waffe des Gegenstandstyps entspricht . Dann werden wir hier ein paar Dinge einstellen. Zunächst erstellen wir eine zufällig ausgewählte Waffe , eine zufällig ausgewählte Waffe zufälligen Punktbereich entspricht. Die 0 und das Potenzial. Was ist das? Die potenziellen Waffen, um Punktlänge zu kaufen. Dann wählen wir hier die zu kaufende Waffe aus und sie wird gleich der potenziellen Waffe sein , die auf der Position der ausgewählten Waffe gekauft werden kann. Dann werden wir weitermachen und die Artikelkosten bekommen, die die zu kaufende Waffe sein werden, die den Waffenpreis bekommen. Da sind wir los. Und schließlich werden wir diesen Stolz setzen. Wie kriegen wir zuerst das Sprite? Wir werden Komponenten und Kinder das Sprite besorgen. Oder wissen Sie, was wir vielleicht nicht brauchen werden. Aber wie auch immer, überspringen wir es einfach. Wir gehen in den Sprite-Renderer. Dies ist die Komponente der Kinder, warum die Kinder während? Denn bei diesem Artikel, der das eigentliche Skript hat, ist das Item Sprite hier unten. Und weil keine anderen Spielobjekte, oh, wir haben ein anderes Spielobjekt , das die Item-Plattform ist. Das wird schwierig sein. Also, weißt du was, um alles richtig einzurichten, werde ich dies zu einem serialisierten Feld machen und das speichern. Und dann geh zurück, tut mir leid. Und dann geh zurück und zu jedem einzelnen von denen und warte eine Sekunde. Waffen Sprite-Renderer. Ich war und war verwirrt. Ich war eine Sekunde lang verwirrt, tut mir leid dafür hier drin. Also füge ich das Elementsprite hinzu. Und hier das Sprite. Und hier drin auch das Item Sprite. Also verwirren wir keines davon. Und solange wir hier sind, fügen wir auch den Preistext hinzu. Also. Okay, also habe ich aus irgendeinem Grund vergessen, den Namen dieser zu ändern. Dies ist also der Artikelpreistext aus irgendeinem Grund, von dem ich dachte, wir hätten den Schüler gewechselt. sich darüber keine Sorgen. Und das sind die Dinge, die wir tun müssen. Wir mögen sie nicht, aber wir müssen sie irgendwann machen. Also lasst uns weitermachen und alles einrichten. Da sind wir los. Jetzt haben wir einen Hinweis auf all diese. Wieder hier drin. Der Waffen-Sprite-Renderer. Das Sprite wird der Waffe gleich sein , um das zu kaufen, Waffenladen Sprite zu bekommen. Da sind wir los. Spar dir das auf. Und das Letzte, was wir tun müssen, ist, dass wir den Text festlegen müssen. Also kriegen wir den Preistext. Der Text. Und was sagen wir hier drin? Mal sehen, was ursprünglich hier von einer Waffe geschrieben wurde. Anstatt nur mit der Waffe zu beginnen, beginnen wir damit. Dann werden wir es mit der Waffe verketten um Dot Get Waffennamen zu kaufen. Und das ist eine Zeichenfolge, also können wir das legal machen. Und dann sagen wir den Preis. Also fügen wir diese beiden zuzüglich der Artikelkosten und Artikelkosten hinzu. Und das ist eine Ganzzahl. Denken Sie also daran, als wir vorher irgendwo eine ganze Zahl hatten , habe ich vergessen. Sie erinnern sich also, weil es eine ganze Zahl war, konnten wir sie nicht einfach verkaufen. Wir mussten dot toString sagen. Also und vielleicht war mir nicht klar, was das bedeutet. ToString konvertiert also einfach ganze Zahl oder einen beliebigen Float in eine Zeichenfolge und Sie können sie verwenden. Aber hier drin, weil wir verketten, bedeutet Verkettung, dass wir ein Plus zwischen einer Zeichenfolge und einer Ganzzahl oder einer Zeichenfolge und einem Float hinzufügen . Wenn wir also eine Zeichenfolge mit einem Element verketten oder mit einer Ganzzahl entschuldigen, müssen wir nicht sofort zwei Zeichenfolgen hinzufügen. Visual Studio und C Sharp Code verstehen, dass dies, obwohl es sich hier um eine ganze Zahl handelt, sie als String verwenden. Also speichern wir das und wir müssen auch hier BTC hinzufügen. Spar dir das auf. Und jetzt lasst uns wieder in unser Spiel gehen und sehen, ob das funktioniert. Wir haben die Waffe immer noch nicht hinzugefügt, aber mal sehen, ob das tatsächlich funktioniert, ist eine zufällige Auswahl. Also lass uns hier runter gehen. Okay, also ein Gewehr. Da kaufen wir eine Waffe und es hat nicht funktioniert. Warum ist das so? Weil wir dem Array nichts hinzugefügt haben. Hier müssen wir also die potenziellen Waffen hinzufügen, die wir kaufen können. Und es ist eine konsistente Sache hier oben in den Prefabs, Prefabs Waffen, wählen Sie die potenziellen Waffen und lassen Sie uns einfach die Schrotflinte und das Gewehr haben , weil wir eine Pistole und unsere Hand halten. Also führe das Spiel aus. Lass uns sehen, was passiert. Also ein Gewehr da sind wir los. Kaufe ein Gewehr für 20 Bitcoins. Versuchen wir es noch einmal, um die Schrotflinte zu holen, stellen Sie sicher, dass es funktioniert. Da sind wir los. Die Schrotflinte durch die Schrotflinte, 430 Bit Münzen. Aber jetzt, wenn wir E drücken, passiert nichts, weil wir immer noch keine Kaufmöglichkeit hinzugefügt haben. Also zurück hier unten werden wir einen Fall erstellen. Und dieser Fall wird für den Gegenstandstyp Punkt die Waffe sein. Da sind wir los. Und jetzt werden wir hier zuerst den Spieler finden, den wir hinzufügen möchten, auch die Waffen. Also hier drin werde ich sagen, dass wir einen Spieler-Controller haben , der den Spieler kauft , der Spieler kauft. Also kaufen Spieler. mir wirklich schwer Namen für Objekte des endlichen Objekts des Typs auszuwählen . Und wie Sie sehen können, haben wir jedes Mal redundanten Code. Vielleicht sollten wir das ändern. Wir machen viel zu finden. Ich weiß nicht, ich denke, wir sollten das irgendwann ändern. Anstatt also den Gesundheitshandler zu deklarieren, werden wir den Spieler-Controller bekommen. Da sind wir los. Jetzt haben wir einen Verweis auf den Spieler-Controller. Dann werden wir hier drin sagen , dass die Waffe, die wir haben, also werden wir die Waffe instanziieren, die wir haben. Also die Waffe, die man kaufen muss. Und wir werden den Kaufpunkt des Spielers instanziieren. Holen Sie sich Waffen sind. So wie wir es getan haben, als wir eine Waffe abgeholt haben. Also instanziieren wir die Waffe am Waffenarm. Und das letzte, was wir tun müssen, müssen wir auch diese Waffe auf den Spielern zur Verfügung stehenden Waffe sagen . Also werden wir weitermachen und einen Hinweis darauf bekommen. Denn wenn ich mich richtig erinnere, wenn wir Pistole Dot kaufen , fügen Sie Waffe zur Verfügung, los geht's. Sie können sehen, dass die hinzuzufügende Waffe aufgenommen wird. Also müssen wir hier eine Referenz bekommen, oder Sie können diese tatsächlich kopieren und hier hineinlegen. Das sieht nicht sehr hübsch aus, das sieht nicht sehr professionell aus. Wenn Sie auf den Code zurückblicken, werden Sie nicht genau verstehen, was passiert. Stattdessen werden wir hier ein Waffensystem erstellen. Und es ist die Waffe, um ein Gleiches zu instanziieren hinzuzufügen. Und dann haben wir hier die Waffe hinzugefügt und vergessen nicht zu brechen. Dies ist etwas, das wir brauchen und nur für den Fall, dass wir hier den Standard erstellen. Dies besagt, dass, wenn keiner von diesen funktioniert, Standard-Debuggen, Denkprotokoll und kein Elementtyp ausgewählt wurden. Und das alles. Ich mag die Switch-Fälle sehr. Sie sind echt nett. Wenn du sie ansiehst. Sie sehen wirklich sehr nett aus. Sie haben also einen Fall, alles ist wirklich richtig arrangiert. Also lasst uns zurückgehen und sehen, was hier passiert. Falls es sich um eine Waffe handelt, erhalten wir den Spieler-Controller, einen Hinweis auf den Spieler-Controller. Wir haben nur einen, also ist das kein Problem. Wir instanziieren dann die Waffe. Wir setzen es in eine Variable und natürlich setzen wir es auf den Spielerkauf, bei dem eine Armee immer das Kind setzen will, wir setzen den Elternteil der Waffe, die wir instanziiert haben, als Arm und dann bekommen wir den Spieler kaufen, wir fügen die verfügbare Waffe hinzu. Offensichtlich müssen wir, wie Sie sich hier erinnern, die verfügbaren Waffen für den Spieler haben. Wir fügen diese Waffe hinzu, wir brechen und wir haben unsere Robins. Also wieder rein. Mal sehen, ob das funktioniert. Führe das Spiel aus. Und wir holen ein paar Münzen auf, um uns eine Schrotflinte zu kaufen. Jetzt haben wir eine Pistole, wir holen die Schrotflinte. Wie cool ist das? Jetzt haben wir also eine Schrotflinte, und wir haben nicht nur hier drin, ich wünschte, ich hätte das Maximieren nicht beim Spielen verwendet und maximieren, Lass es uns einfach entfernen. Wir haben also nicht nur die Schrotflinte und Waffen und es funktioniert und es schießt und es macht alles. Aber wir auch, wenn wir hingehen, wo ist es? Wo ist es auf dem DOM-Player? Schalte das hier frei. Da gehst du. Du siehst, dass wir eine Schrotflinte und eine Pistole haben. Da das aus dem Weg ist, haben wir alle unsere Einkaufsartikel fertig erstellt. Ich hoffe es gefällt dir. Ich hoffe dir gefällt, wie sich das Spiel entwickelt. Stellen Sie sicher, dass Sie Ihre Änderungen immer übernehmen und sicherstellen, dass Sie mir eine Bewertung hinterlassen, wenn Sie das noch nicht getan haben, sehen wir uns im nächsten Video. 82. Abschnitt 14: Creating – Bildmaterial einrichten: Willkommen zurück Meine Lieblingsspielentwickler zu einem brandneuen langen Video. Und in diesem, wenn wir das Spiel laufen, werden Sie sehen, dass wir die Kiefer Invader 2D gekauft haben. Warum klingt es so? Aber wie auch immer, wir haben zwei Knöpfe. Die Exit-Button, die diesen Text gerade hier anzeigt, und die Schaltfläche Start, wenn wir ihn auswählen, gehen wir los. Wir gehen auf die erste Stufe. Wie cool ist das? Wir können schießen, wir können Hilfe holen, wir können auch sterben. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, Fall. Also Zeit, ein paar Menüs zu erstellen , und wir beginnen mit dem Titelbildschirm, denn offensichtlich benötigt jedes Spiel einen Titelbildschirm. Was ich also entschieden habe, ist, den Titelbildschirm, den Test1 zu haben , und ich werde ihn in den Titelbildschirm umwandeln . Ja, neu laden. Und ich entferne das Skelett. Ich behalte nur den Spieler und füge ein paar zerbrechliche Gegenstände hinzu. Also in den Prefabs. Und lassen Sie uns die Größe hier nur ein bisschen vergrößern. Und wo ist es? Pickup-Portale, Zimmer. Okay, also ein paar zerbrechliche Teile. Also füge ich hier eins hinzu und noch eins hier drin und noch eins hier drin. Und nur ein paar Teile, an denen wir Spaß haben werden zu zerstören. Und in diesem Menü haben wir auch die beiden Schaltflächen, die uns sagen, dass wir entweder das Spiel starten oder das Spiel beenden sollen. Also lasst uns weitermachen und das machen. Ich klicke mit der rechten Maustaste hier rein. Ich füge eine UI-Canvas hinzu, und dies wird die Hauptmenü-Leinwand sein. Ich stelle das Ereignissystem hier ein. Ich werde sicherstellen, dass es mir leid tut, da der Bildschirmbereich überlagert wird und sicherstellen, dass die Skala die Bildschirmgröße hat. Und da geht's, 1920 bis 1080. Drücken Sie Enter, doppelklicken Sie, damit wir es hier richtig sehen können. Und was werden wir haben, während wir nur den Bildschirm haben, auf dem wir uns bewegen. Aber wir haben auch zwei Knöpfe und den Namen des Spiels hier. Vielleicht sollten wir das ein bisschen kleiner machen. Ich weiß es nicht. Ich habe immer noch darüber nachgedacht, wie wir all das passen werden. Vielleicht können wir versuchen, alle Pots und den Kuppelspieler auszuwählen und einfach alle Teile auf der Waage etwas kleiner zu machen, vielleicht machen sie dazu 0.30.20. Immer noch klein. 0.50.5? Ja, klar. Und dann sind sie nicht Spieler ist auch 0,50,5. Also los geht's. Wenn wir versuchen, das Spiel jetzt mit unserem kleinen kleinen Kerl zu laufen. Oder wie Sie sehen können, ist er immer noch sehr groß und er kann die Gegenstände nicht abholen da die Waage sehr klein ist. Das liegt daran, dass ich gerade erkannt habe, dass die Animationen ihn groß halten werden. Bringen wir ihn also zurück zu einem. Und keine Sorge, wir werden versuchen alles hier reinzupassen. Also zurück zu einem. Spar dir das auf, okay, Feinde führen das Spiel aus. Wir werden den Sprite-Kerl haben. Du wirst herumlaufen. Er kann keine Dinge aufheben, weil wir hier einen Fehler haben. Und das liegt daran, dass wir den Manager nicht haben, wir haben keinen Unternehmer in die Münze. Es gibt ein Problem. Warum ist das so? Nun, weil der Spielmanager auch auf der Münze nicht verfügbar ist. Also werden wir das Spiel beenden. Und wir werden alle diese Teile auswählen und sicherstellen, dass der Artikel Dropper, Lassen Sie uns einfach die Komponente für den Moment entfernen und einfach die Zerbrechlichkeit halten, damit wir Fehler vermeiden. Also los geht's, wir zerbrechen ein paar Töpfe und haben Spaß. Und wir fügen hier auch zwei Schlüssel hinzu, damit der Spieler auswählen kann, ob das Spiel beenden oder fortsetzen möchte. Also klicke ich auf unserem Bildschirm und unserer Leinwand hier mit der rechten Maustaste, wähle deine aus, ich füge einen Text hinzu Mesh Pro. Dies wird der Titel sein. Also Spieltitel, also Time Bot, Invader, ich bin mir nicht sicher, ob ich das nennen möchte, mag zum Scheitern verurteilt, gekauft und Vader sein , aber lasst uns es einfach so behalten, wie es ist. Die automatische Schriftgröße wurde geändert, das Maximum erhöht und lassen Sie es uns ein bisschen größer machen. Lass es uns in die Mitte stellen. Lasst uns das Maximum noch mehr erhöhen. Also los geht's. Wir brauchen einen großen, riesigen Titel 40 Mal sowohl Eindringling als auch d. Und wir können einige Unterlagen hinzufügen, einige Beleuchtungen auf Glühen. So können wir zum Beispiel die oder die Unterlage vergrößern und hier eine Farbe hinzufügen , um sie etwas kühler zu machen. Also mach weiter, beschriften Sie dies, erhöhen Sie die Weichheit, den Offset auf dem Y oder ähnliches. Wählen Sie also die Farben aus, die Sie für angemessen halten. Vielleicht mach diesen einen roten oder schwarzen oder antinode. Nein, Schwarz ist schlecht. Mal sehen, vielleicht vergrößern Sie das vollständig rot und erhöhen Sie es auf dem Y. Also los geht's. Wir haben also so etwas wie einen Time Bot und Vader 2D. Und es ist nicht sehr hübsch, aber es macht seinen Job. Und jetzt fügen wir zwei weitere Schaltflächen hinzu. Also hier drin klicke ich mit der rechten Maustaste und Benutzeroberfläche und füge eine Schaltfläche hinzu. Dies wird der Startknopf sein. Und ich verschiebe es ein bisschen nach links. Und hier entscheiden wir, wo wir es hinstellen wollen. Da wir also nicht zu viel Platz haben, können Sie sehen, wie ich das Spiel ansehe. Ich setze sie vielleicht genau hier ein. Mal sehen, ob wir das Spiel laufen. Wie sieht das aus? Also einen Knopf hier unten zu haben, nein, ich denke, das ist nicht schlecht. Das ist überhaupt nicht schlimm. Also werde ich vielleicht die Größe vergrößern. Und in den Ressourcen. Wir können hier reingehen und Sie finden die Menüelemente, die ich Ihnen zur Verfügung gestellt habe. Das sind also die Knöpfe. Also zurück in unseren Sprites, mal sehen, haben wir etwas unter den UI-Elementen, UI-Elementen und klicken Sie mit der rechten Maustaste, erstellen Sie 140 Schaltflächen. Öffne das und ziehe die Schaltflächen ganz nach Unity. Und mal sehen, was wir hier haben. Und lasst uns zu Multi-Lügen Sprite Editor gehen. Das ist die Babys in Scheiben schneiden. Da sind wir los. Diese sind also perfekt mit den Schatten geschnitten. Wenden Sie also die Änderungen an. Jetzt haben wir diese und ich wähle den Start-Button. Und wie Sie sehen können, haben wir die normale React-Komponente, an die wir gewöhnt sind. Und wir haben auch das Bild und die Button-Dinge genau hier. Und Sie können auf dieser Schaltfläche ein On-Click-Ereignis hinzufügen. Wann immer darauf geklickt wird, können Sie das Verhalten ändern. Wenn also die normale Farbe beispielsweise komplett schwarz oder weiß oder rot oder was auch immer sein kann, können Sie die hervorgehobene Farbe ändern. Wenn wir zum Beispiel die Maus über diesen Knopf bewegen, drücken Sie den Knopf frei und wird zum Beispiel grün. Und wenn wir wählen, ich weiß nicht, ausgewählte Farbe, bin ich mir nicht sicher, was das ist. Wenn ich das Spiel jetzt ausführe, wirst du feststellen, dass wenn ich über den Button bewege und rot werde, sobald ich darauf klicke, es grün wird. So funktionieren Knöpfe. Du kannst hier mit vielen Dingen herumspielen. Aber worauf ich mich konzentrieren möchte, ist die Änderung der Sprite-Quelle. Und mal sehen, welche Art von Knöpfen wir hier haben. Im Sprite Editor ist also etwas nicht Gutes passiert. Und wie viele Sprites haben wir? 1, 2, 3, was sind diese leeren Dinge hier drin? Ich mag das Aussehen nicht, aber trotzdem versuchen wir, diesen Button hinzuzufügen. Da sind wir los. Sie können also sehen, dass dies der Button ist, den wir hinzugefügt haben. Versuchen wir, es auf die native Größe einzustellen oder es vielleicht auf das Y zu erhöhen. Also los geht's. Wir können zwei Schaltflächen auf jeder Seite des Titelbildschirms setzen. Und vielleicht kannst du eine andere Art von Button hinzufügen, vielleicht ist diese, die etwas klarer ist. Ich denke, es ist besser. Wenn wir das Spiel jetzt ausführen, können Sie sehen, dass wir einen wirklich gut aussehenden Knopf haben und er ändert sogar die Farbe, wenn wir es drücken. Und vielleicht willst du so etwas nicht haben. Vielleicht möchten Sie das einzige, was Sie vielleicht haben möchten , dies nicht drücken zu lassen. Vielleicht können wir es dunkler oder so machen oder es so behalten, wie es ist, aber ändern Sie einfach das Alpha darauf, was auch eine gute Idee ist, aber ich werde sicherstellen, dass es eine Art grüne Farbe hat. wir wissen, dass wir diesen Knopf drücken. Und jetzt haben wir damit den Startknopf. Lassen Sie uns das duplizieren und nach links verschieben. Und das wird der Exit-Button sein. Also Schaltfläche „Beenden“. Und was müssen wir jetzt tun oder weißt du was? Vielleicht habe ich das zu früh gemacht. Löschen Sie einfach die X-Taste , weil wir den Text ändern möchten. Und hier sieht man, dass wir Button-Texte haben. Wir wollen diesen Text nicht. Wir haben gelöscht. Wir werden unseren eigenen Text hinzufügen, bei dem es sich um einen Text Mesh Pro handelt. Und offensichtlich werden wir es zum Cyborg kühn machen. Die automatische Größe, erhöhte Anforderungen, setzten sie in die Mitte. Und das ist alles, das ist alles, was wir tun müssen. Und ich werde die Größe dieses erhöhen. Machen wir es also ein bisschen größer und stellen es in die Mitte und stellen Sie einfach sicher, dass es richtig passt. Das einzige, was uns hier stören könnte , ist, dass das Wann, als wir versuchten, zum Beispiel die Farbe dieses zu ändern . Oh nein, nein, alles funktioniert. Sollten wir es also dunkel machen? Ich denke dunkel. Versuchen Sie zunächst, den Namen einzugeben, also kam Start. Okay, anscheinend ist es nicht der richtige Weg, es komplett dunkel zu haben . Welche Farben sollten wir wählen? Vielleicht sollten wir sogar die Unterlage entfernen. Aber wenn wir die Unterlage hier entfernen, entfernen Sie auch die Unterlage hier oben. Deshalb verwende ich manchmal keine Text-Mesh-Sonde, weil alles irgendwie verwandt ist. Wir ändern den gesamten Shader dessen, was Mesh Pro erkennt. Shader sind eine ganz andere Art von Informationen. Also werde ich mich nicht zu tief darauf einlassen. Also zurück in Unity. Und mal sehen, wie das aussieht. Wenn ich das Spiel führe, ist es sichtbar? Also starte das Spiel und nicht sehr viel. Wenn es rot wird, ist es sichtbarer. Vielleicht können wir den Hintergrund des Buttons ändern. Also spiele ich nur ehrlich herum, ich bin mir nicht sicher, was ich mache. Ich teste die Dinge nur so aus wie du es bist. Nein, ich denke, das ist besser für unser Startspiel. Und jetzt, da wir dieses haben, können wir jetzt duplizieren, nennen Sie es den Exit-Button. Und lass es uns zur Seite bringen. Auf der anderen Seite. Und hier drin werden wir den Text ändern, um darauf zuzugreifen. Schon wieder. Drücken Sie Enter. Da sind wir los. Jetzt haben wir zwei Knöpfe. Wir haben das Menü eingerichtet. Wir können herumlaufen, wir können diese Dinge zerstören, wir können um uns herum schießen. Wir benutzen die sehr gruseligen Knöpfe. Da sind wir los. Und wir können das Spiel starten, das Spiel beenden. Aber wie Sie sehen können, tun sie jetzt und wieder nichts. Was wir also tun werden, ist, diesen ein paar Funktionalitäten hinzuzufügen . Also gehe ich in die Drehbücher. Ich klicke mit der rechten Maustaste und erstelle einen Ordner für das Menü. Doppelklicken Sie hier rein, klicken Sie mit der rechten Maustaste und erstellen Sie ein C-Skript für den Hauptmenü-Manager Und nennen wir es einfach Menü, Hauptmenü, weil wir es dem Hauptmenü-Manager hinzufügen müssten , wenn wir es täten. Was ist das Problem hier? Wir haben ein Problem mit den Soundeffekten, glaube ich. Ja, ich denke, es ist ein Problem mit den Soundeffekten. Das Problem mit ein paar Dingen. Es gibt viele Probleme hier, weil wir nicht den ganzen Manager und all das Zeug hinzugefügt haben, aber es geht uns nicht wirklich darum. Dies wird kein Problem sein , weil wir eigentlich nichts tun. Und auf dieser Ebene war jetzt das Hauptmenü. Fügen wir es der Hauptmenü-Leinwand hinzu. Und doppelklicken und öffnen wir das Skript genau hier. Also werden wir zunächst eine Methode für das Exit-Spiel erstellen. Also öffentliches Leere Exit-Spiel. Und weil wir immer noch im Editor sind und das Spiel nicht implementiert haben, wird das nicht funktionieren. Aber wenn wir Application Dot close schreiben, meine ich, dass die Anwendung gelehrt hat quit. Dies wird aus der Anwendung beendet und die Player-Anwendung beendet. Und wie Sie sehen können, aber weil wir uns im Spielmodus des Unity-Editors befinden , wird das nicht funktionieren. Was wir also tun werden, ist, dass wir einfach ein Debug-Punkt-Protokoll hinzufügen. Und wir sagen, dass wir das Spiel verlassen haben. Vertrau mir, wenn du dieses Spiel baust, funktioniert dieser Button. Mach dir darüber keine Sorgen. Wie auch immer, dies wird das Spiel laufen. Und wenn wir zurück zu Unity gehen, wenn wir zum Exit-Button gehen, können wir hier und im onclick-Ereignis nach unten scrollen, wir können diesen Plus-Button drücken und zuerst ein Objekt hinzufügen, das wir wird auf die Funktionen von zugreifen. Wenn ich also das Hauptmenü hinzufüge, werden Sie feststellen, dass ich jetzt auf Funktionen und eine dieser Funktionen zugreifen kann . So kann ich zum Beispiel auf das Spielobjekt zugreifen und hier ein paar Dinge machen. Schalten Sie vielleicht das Spielobjekt aus, leiten Sie, transformieren, den Namen ändern und so weiter und so weiter. Aber ich kann auch auf das Hauptmenü zugreifen. Und Sie können hier sehen, dass ich Canvas, Canvas, Scaler, Grafik, Raycaster habe , und all dies sind Komponenten innerhalb der Hauptmenü-Leinwand, mit der ich die Schaltfläche bereitgestellt habe , die auch das Hauptmenü enthält. Also wähle ich es im Hauptmenü aus. Und Sie können sehen, dass ich viele Methoden habe, die ich verwenden kann. Und einer von ihnen ist das Exit-Spiel, das ich gerade erstellt habe. Wenn ich also auf diesen klicke, führe ich das Spiel aus. Ich kann herumlaufen und die Dinge tun, die ich tue. Und wenn ich dann auf das Exit-Spiel klicke, wirst du feststellen, dass wir das Spiel verlassen haben. Warum wir groß schreiben, weiß ich nicht, aber Sie können sehen, dass dieser Knopf tatsächlich funktioniert und ich kann ihn drücken. Jetzt ist es an der Zeit, die Startspiel-Methode zu erstellen, und das wird Ihre Herausforderung sein. Stellen Sie also die Szene und den Gebäudeindex als erste Szene und die erste Ebene als zweite Szene ein. Du erinnerst dich also an die Gebäudedecks. Wenn nicht, müssen Sie es überprüfen. Es ist in den Dateierstellungseinstellungen, glaube ich. Jep. Ja. Also müssen wir das Spiel beginnen. Um das Spiel zu starten, müssen wir das erste Level laden. Um die erste Ebene zu laden, brauchen wir natürlich einen Szenenmanager und all das gute Zeug. Ich hoffe, du hast nicht vergessen, wie das geht. Es war vor ein paar Abschnitten. Erstellen Sie die Start-Spiel-Methode und stellen Sie sicher, dass sie öffentlich ist. Und die Methode greift auf den Szenenmanager zu und ruft die Build-Einstellungen des aktuell aktiven Gesehenen ab. Und dann musst du es um eins erhöhen. Und genau wie ein kleiner Hinweis, Sie müssen auf den Szenenmanager zugreifen, aktive Szene erhalten und Index plus eins erstellen. Wenn das aus dem Weg ist, pausiere das Video jetzt und mach das alleine. Okay, willkommen zurück. Lassen Sie mich zunächst den Start und das Update entfernen. Ich bin mir nicht sicher, ob wir sie jemals benutzen werden. Und hier füge ich das Senior Management von Engine Dot hinzu. Und jetzt schaffe ich eine öffentliche Leere. Void Star-Spiel sollte groß geschrieben werden und dieses sollte das Spiel nicht starten. Das hat die scharfen Linien geöffnet. Und hier drin greife ich auf die gespeicherte Punktlast des Szenenmanagers zu. Und welche Szene sollte ich laden? Nun, zuerst gehen wir zu den Dateierstellungseinstellungen. Und der Titelbildschirm ist bereits der erste. Was ich also tun möchte, um den Index von diesem zu erhalten und ihn dann um eins zu erhöhen. Also werde ich weitermachen und diese Szene holen. Manager-Punkt, erhalte aktive Szene. Und hier drin bekomme ich den Build-Index und ich werde ihn einfach um eins erhöhen. Also gehen wir sofort zur nächsten Szene. Spar dir das auf. Lasst uns jetzt wieder in unser Spiel gehen. Und mal sehen, ob das funktioniert. Also laufe ich wieder weg. Wir laufen herum, wir zerstören Dinge, wir verlassen das Spiel, es funktioniert nicht. Starte das Spiel. Und es funktioniert nicht, weil wir nicht zugewiesen haben , wie klug von uns, wir haben den Stopp-Button nicht zugewiesen , um überhaupt etwas zu tun. Also Hauptmenü, wie oft mache ich diesen Fehler, bis wir das endlich gespeichert haben? Führe das Spiel aus. Fangen wir noch mal an. Da sind wir los. Jetzt sind wir also auf der ersten Ebene. Wie cool ist das? Und wir wissen, dass es die erste Stufe ist, weil wir alle Skelette hier haben. Siehst du, obwohl wir keine Änderungen an diesem Level vorgenommen haben, aber weil wir die Prefabs des Skeletts geändert haben, können sie jetzt Dinge aufnehmen. Offensichtlich gibt es ein paar Dinge, die wir ändern müssen. Aber im Moment wissen wir, dass das Startspiel funktioniert, das Exit-Spiel funktioniert. Wir haben einen Titelbildschirm erstellt. Wir werden unsere Änderungen übernehmen und wir werden Sie sehen oder ich werde Sie im nächsten Video sehen. 83. Victory: Willkommen zurück, meine Spieleentwickler. Wie Sie sehen können, haben wir in diesem Video einen Sieg geschaffen, nichts zu besonderes gesehen, nichts zu ausgefallenes und haben einfach den Sieg errungen. Wir haben eine beliebige Taste gedrückt, wir sammeln, wir gehen zum Hauptmenü, wir starten das Spiel, wir fangen einfach wieder an. Wir haben das aus irgendeinem Grund seltsam, wir haben die Waffe nicht richtig funktioniert. Wir werden uns später aus irgendeinem Grund damit befassen , wenn wir uns durch die Levels bewegen , könnte etwas verloren gehen. Aber es gibt etwas, das ich in dieser Einführung tun möchte , und ich würde nicht daran denken während ich das Video mache , und das fügt die Ebene genau hier hinzu. Was ich tun werde, ist mit der rechten Maustaste auf den Victory Canvas und die Benutzeroberfläche zu klicken. Es wird sehr einfach sein. Du wirst daran denken, dies zu tun. Ich nenne das D-Layer. Ich werde ihm das Sprite hinzufügen ihn in die Nacht schicken. Und dann erstelle ich eine Animation , die sich in der Assets-Animation befindet. Und mal sehen, ich glaube, dass ich den Tanzspieler hier drin gemacht habe. Lass uns das entfernen und meinen eigenen Tanzspieler erstellen. Also spar dir das auf. Ja, ich möchte sie ersetzen. Und dann erstelle ich die Animation der tanzenden Spieler oder wähle diese beiden aus, setze sie hier und schauen wir uns das an. Okay, das ist zu schnell. Stopp, stopp, stopp, stopp, stopp, stopp. Kopiere das, füge es hier ein. Und mal sehen, wie das aussieht. Das ist immer noch extrem schnell. Fügen wir sie fünf voneinander hinzu. Und doch sieht es nicht sehr gut aus. Aber ja, wir, wir möchten, dass der Spieler den Cancún auf jeder Seite macht. Also legen wir hier einen fest, duplizieren es, setzen hier eins, aber wir werden das Ausmaß dieses Minus eins machen. Jetzt, wenn wir das Spiel laufen, meine ich, dass wir den Siegesbildschirm laufen. Da gehst du. Wir haben zwei Ken, Ken's, den Sieg und plus NEG, und dann gehen wir auf die Ebene. Exzellent. Wie Sie sehen können, gibt es hier offensichtlich ein Problem. Wir werden uns später damit befassen, aber im Moment verschwenden wir keine Zeit mehr und kommen wir endlich zum Siegesbildschirm. 0 Fall. Jetzt, da wir einen Titelbildschirm haben, möchten wir auch einen Vektorbildschirm erstellen. Also lasst uns weitermachen und genau das machen. Ich gehe in meine Sprites, dass ich Sprites sage, ich meinte meine Szenen. Und in Szenen werde ich eine neue Szene erstellen. Klicken Sie also mit der rechten Maustaste Oh, wo ist die Szene? Und los geht's. Also Szene, und das wird der Siegesbildschirm oder die Vector3-Szene oder wie auch immer du es nennen willst, drücke Enter. Und fügen wir es einfach den Build-Einstellungen hinzu. Also ziehe ich den Siegessehenen Bildschirm genau hierher. Da sind wir los. Mach es auf. Wie Sie sehen können, haben wir absolut nichts, das dieses Ding einfach halten wird. Es ist sehr einfach. Also gehe ich einfach zu deiner Canvas und das wird der Sieg Canvas sein. Nichts zu viel hier drin, also nur der Canvas-Scaler, der bis 1080 auf 1920 eingestellt ist. Also los geht's, 1920. Dann AT, und Sie sind sehr vertraut mit dem, was vor sich geht. Es gibt nur eine Sache, die vielleicht nur ein bisschen besonders sein wird. Also werde ich noch nicht wissen, nicht die Herausforderung, noch nicht. Lass mich hier einfach ein paar Dinge machen. Das ist also unsere Siegesszene. Mal sehen, wie es im Spiel aussieht. Okay, also klicken Sie mit der rechten Maustaste, lassen Sie uns ein Bild und ein Bild erstellen , und stellen wir sicher, dass es den ganzen Bildschirm genau so ausfüllt. Lass es uns komplett schwarz machen. Oder du kannst es weit halten, du kannst tun, was wir wollen. Also werde ich auf Schwarz eingestellt. Und hier drin werde ich sagen, dass ich auch einen Text-Mesh-Sonde hinzufügen möchte. Die Stapel. Viel Profi wird der Siegtext sein. Da sind wir los. Lassen Sie uns die automatische Größe machen, erhöhen Sie das Maximum. Und lass es uns einfach ein bisschen größer machen. Da sind wir los. Lasst uns ändern, fett machen. Mach es in der Mitte. Setze es auf den Robo. Und lasst uns die Unterlage von hier entfernen. Mir gefällt das Untergrund nicht so viel Wasser, also probieren wir es einfach hier drin aus. Sieg mit ein paar Ausrufezeichen und erhöht das Maximum, um auf diesen gesamten Bildschirm zu passen. Da sind wir los. Also Fabrik. Und was wir dann tun werden, ist, dass wir diesen Text duplizieren, ihn ein wenig nach unten verschieben und vielleicht die Größen verringern. Ups, und das wird lauten. Während es ist, so wird dies die beliebige Taste drücken. Und hier drin drücken Sie eine beliebige Taste, um zum Hauptmenü zurückzukehren. Also los geht's, drücken Sie eine beliebige Taste, um zum Hauptmenü zurückzukehren. Lass uns einfach dieses Spiel starten und sehen, wie das aussieht. Und da sind wir los. Wie Sie sehen können, drücken Sie den Sieg eine beliebige Taste, um zum Hauptmenü zurückzukehren. Ganz einfach, nichts sehr Kompliziertes. Also werde ich Ihnen eine kleine Herausforderung stellen, um den Text nach zwei Sekunden erscheinen zu lassen . Erstellen Sie also eine Animation, die den Text nach zwei Sekunden erscheinen lässt , und tun Sie dies ohne Code. Und wenn Sie eine zusätzliche Herausforderung wünschen , die ich nicht in die Folie aufgenommen habe, können Sie uns auch eine Möglichkeit schaffen , jede Art von Taste zu drücken. Also müssen wir hier nicht ein bisschen recherchieren. Also drücken wir einen beliebigen Knopf und gehen dann zum Hauptmenü. Das ist auch eine Herausforderung für Sie auf beiden Seiten. Damit aus dem Weg ist, pausieren Sie das Video jetzt und gehen Sie dann zur Herausforderung. Okay, willkommen zurück. Was wir also hier machen werden, ist, dass wir einfach eine Animation erstellen werden. Und wir gehen in die Asset-Animationen und erstellen einen neuen Ordner für den Sieg. Text. , öffnete sich und höre Bier. Nach zwei Sekunden. Und ich fühle, schau mal, wie viele Ordner wir jetzt haben. Und ich habe das Gefühl, dass es bei diesem Projekt darum ging so viele Ordner wie möglich zu erstellen. Willkommen bei der neuesten Version des Erstellens der meisten Ordner, die Sie können. Wie auch immer, lass uns weitermachen. Also haben wir das genau hier. Wir werden auf einen beliebigen Tastentext zugreifen. Und hier füge ich eine Canvas-Gruppe hinzu. Also diese Gruppe. Jetzt können wir also mit dem Alpha herumspielen. Da sind wir los. Und lasst uns die Interaktivität und das Blockieren der Neubesetzung entfernen. Und hier drin drücken wir Record und nach zwei Sekunden. Also fangen wir bei 0 an. Und bei der 2-Sekunden-Marke bleiben wir bei 0 und fügen vielleicht das Ticket hinzu, vielleicht 1 Sekunde zum Laden. Also hier drin wird das eins werden. Aber bei der 2-Sekunden-Marke. Wie Sie sehen können, wird dies langsam voranschreiten. Also nein, ich will nicht, dass es so ist. Ich möchte 0 hinzufügen, hab das. Und wie lassen wir das Salz von selbst erscheinen? Nun, das wird wahrscheinlich ein bisschen schockierend für dich sein, aber wenn wir das Spiel starten, wird das alles alleine passieren. Also fangen wir mit dem Level an. Dann kommen wir 12. Da sind wir los. Also lassen wir den Text erscheinen. Offensichtlich wollen wir kein Looping haben. Also gehe ich zum Sieg und sorge dafür, dass wir keine Schleife machen. Als Nächstes müssen wir eine beliebige Taste drücken, um zum Hauptmenü zurückzukehren. Also gehe ich hier in die Drehbücher ein. Und wo sollen wir hinzufügen? Fügen wir es einfach in der Benutzeroberfläche hinzu. Ich denke, das ist ein guter Ort dafür. Und klicken wir mit der rechten Maustaste auf Create C-sharp Sieg. Nein, eigentlich weißt du, was du bist, ist ein schlechter Ort dafür. Wie auch immer, Siegesbildschirm. Und das wird extrem einfach sein. Aber wo soll ich es hinstellen? Wenn nicht im UI-Ordner? Skripte, Mal sehen, Fallen, Waffen, Menüs, ja, Denkmal. Klar, das Menü ist ein besserer Ort. Ziehen wir diesen Sieg also in den Menüordner. Und im Menüordner fügen wir einfach den Sieg zum Sieg Canvas hinzu. Und hier drin Lass uns doppelklicken öffnet , entferne den Start. Wir brauchen es vorerst nicht. Und weil wir von Szene zu Szene wechseln werden, fügen wir einfach den UI-Szenenmanager oder das Seen-Management hinzu. Und hier drin werden wir sagen, dass der Eingabepunkt die Taste nach unten bekommt oder nicht, tut mir leid, keinen Schlüssel herunterbekommen, weil wir keinen bestimmten Schlüssel wollen. Also hier drin hoffe ich, dass Sie versucht haben, ein bisschen zu recherchieren. Es gibt etwas, das als „Any key down“ bezeichnet wird. Und das werden wir einfach sagen, und das reicht. Und Sie können sehen, dass genau hier wahr ist. Im ersten Frame drückt der Benutzer beliebige Taste oder sogar eine Maustaste. Dann gehen wir zu Scene Manager Punktlast gesehen. Und wir werden die erste Szene laden , weil wir wissen, dass immer , immer, immer das Titelmenü das erste C sein wird . Wir gehen zurück in unser Spiel. Wir werden den Gewinn machen. Also los geht's, Sieg. Zwei Sekunden. Drücken Sie eine beliebige Taste, um bei Demos fortzufahren. Und jetzt sind wir in der Titelmenü-Szene und etwas, das ich dir vergessen habe zu sagen. Und das ist, dass Sie hier vielleicht eine Art Musik hinzufügen können. So kannst du sehen, dass wir beenden und das Spiel starten können. Und da sind wir los. Wir beginnen wieder mit dem Spiel. Whoa, was ist das? Was ist das? Scheint wie eine Art Flammenwerfer. Ich denke, es gibt ein kleines Problem, aber machen wir uns darüber vorerst keine Sorgen. Wir werden das Problem später beheben. Offensichtlich gibt es eine Art von Fehler und einen Teil des Codes aufgrund der Art und Weise, wie wir wechseln, aber machen Sie sich darüber später keine Sorgen. Vielleicht glaube ich dem letzten Abschnitt, in dem wir tatsächlich die fortgeschrittene Einheit oder das fortgeschrittene C-scharf machen. Einer davon, wir schaffen tatsächlich eine sehr ausgeklügelte Art, Level zu durchlaufen alles bei uns zu behalten. Also sind wir aus dem Weg gegangen. Danke fürs Zuschauen. Ich hoffe es gefällt dir. Ich hoffe, Sie inszenieren alle Ihre Dateien. Staging aller Ihrer Dateien und übernehmen Sie alle Ihre Änderungen. Habe gerade einen Siegesbildschirm gemacht. Übernehmen Sie die Änderungen. Und wir sehen uns im nächsten. 84. Stufe neu: Willkommen zurück, meine Spieleentwickler. In diesem Video werden wir unserem gehörlosen Bildschirm ein wenig Funktionalität hinzufügen. Wenn wir also gerade herumlaufen, leben wir und alles ist gut. Wenn wir sterben, haben wir die Möglichkeit, das Level entweder neu zu starten, also beginnen wir auf dem gleichen Level, oder wir haben die Möglichkeit, zum Hauptmenü zurückzukehren und ein bisschen zu weinen. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Okay, jetzt haben wir alles. Wir haben den Titel, wir haben den Sieg. Es ist Zeit, etwas gegen den tauben Bildschirm zu unternehmen. Wenn wir also sterben, können Sie jetzt sehen, ob wir das Spiel mit KI laufen, Sie können sehen, dass wir die UTI haben, wir haben das gekühlte Los, aber es gibt nichts zu tun. Also haben wir einfach da sitzen bis wir den Spielmodus wieder beenden. Das wollen wir nicht machen. Wir wollen eine kontinuierliche Schleife in unserem Spiel haben. Also werde ich tun, dass ich auf den tauben Bildschirm gehe. Und hier klicke ich mit der rechten Maustaste und erstelle einen Button oder weißt du was? Bevor ich all das mache, werde ich Ihnen eine Herausforderung stellen. Und Ihre Herausforderung besteht darin, die beiden Methoden und die beiden Schaltflächen zu erstellen. Zunächst müssen Sie also zwei Schaltflächen erstellen, das Level neu starten und zum Hauptmenü zurückkehren möchten. Sie müssen für jede dieser Schaltflächen eine Methode erstellen . Und dann müssen Sie diesen beiden Schaltflächen die Funktionalitäten zuweisen . Da das aus dem Weg ist, glaube ich, dass Sie bereits wissen, wie man ein Level neu startet. Sie müssen die Szene laden, auf der wir uns gerade befinden , die wir bekommen können, indem Sie aktiv gesehen werden. Also pausiere das Video jetzt und mach die Herausforderung. Oh, okay, willkommen zurück. Wie bist du damit zurecht gekommen? Weil die aktuellen Herausforderungen etwas langweilig werden , weil Sie bereits alles wissen. Also habe ich dir das ganze Video einfach geliebt. Und ich bearbeite Dinge, ohne einen Tiefenbildschirm zu sehen. Verwandeln wir also den Alpha in eins, damit wir den Knopf richtig sehen können. Und mal sehen, was wir hier drin machen werden. Also haben wir den Knopf. Wählen wir dieses aus und lassen Sie es uns vergrößern. Bewegen Sie es nach links. Und dann werden wir hier den Text entfernen und unsere eigenen Texte hinzufügen. Also alles, was ich hier mache, haben wir schon abgedeckt. Sagen wir Neustart-Level. Und lasst uns alles richtig einstellen, das richtige Alles und die Größe, max, das Maximum und den offensichtlich sollte der Button hier die UI Elements Buttons haben und sollte dieses Sprite genau hier haben. Da sind wir los. Jetzt können wir den Text vergrößern und etwas größer machen. Da sind wir los. Wir machen es mutig. Mutig, ich meine fett. Jetzt haben wir den fetten Text und lassen Sie uns diesen Button machen. Ich war größer. Ja, wie sieht das aus? Ich denke, es sieht ziemlich gut aus. Also werde ich das duplizieren. Bewegen Sie das hier runter. Dies ist die Hauptmenüschaltfläche und der Text wird das Hauptmenü sein. Da sind wir los. Also denke ich, dass das gut genug aussieht. Lasst uns vielleicht einfach das wissen, den Text. Ich möchte die Textgröße für den Neustart ein wenig erhöhen. Und da sind wir los. Also denke ich, dass das gut genug aussieht. Spar dir das auf. Und jetzt lasst uns die Funktionalitäten hinzufügen. Im Scene Manager wollen wir also alles erstellen. Ich meine, kein unsichtbarer Manager, du bist ein Manager. Wir möchten die Methoden erstellen, die uns vom Liebhaber entführen oder neu starten oder uns zum Hauptmenü bringen. Aber die Sache hier ist, und das ist eine Philosophie in der Spieleentwicklung. Und wo willst du das eigentlich machen? Also der UI-Manager, was macht er? Bringt es uns von einer Szene zur nächsten? Nein, tut es nicht. Es verwaltet nur die Benutzeroberfläche und das ist ihre Aufgabe. Also ein besserer Ort, an dem ich glaube, diese Methode zu machen oder diese Methoden wie im Level-Manager zu erstellen , aber gleichzeitig möchten wir nicht, dass die Schaltflächen Zugriff auf den Level-Manager haben. Wir möchten nur, dass die Buttons Dinge im UI-Manager ändern können . Also sind wir in einer kleinen Gurke, wenn du es so nennen willst. Was ich also tun werde, ist, dass ich meinem Bauchgefühl vertraue und die Methoden hier drin erstellen werde . Es ist ein öffentliches ungültiges Neustart-Level. Und die Art und Weise, wie wir das Level neu starten, ist, dass wir einfach den Szenenmanager bekommen, die Last gesehen wird. Und in welcher Szene werden wir den Szenenmanager laden, Punkt wird aktiv gesehen, dass Build und x. Jetzt laden wir einfach die Szene der aktuellen aktiven Szene. Das bedeutet, dass wir das Level neu laden und dann öffentlich void re kehren zum Hauptmenü zurück. Und hier drin werden wir diese Szenenmanager-Dot-Load-Szene bekommen . Und wir laden einfach die Szenen 0, weil wir wissen, dass die Szene oder die Titelszene oder die MainMenu-Szene auf dem Index 0 befindet. Und jetzt gehen wir zurück in den UI-Manager. Und hier werden wir dieselben Methoden erstellen. Aber anstatt die Dinge tatsächlich zu tun, werden wir auf den Level-Manager zugreifen und haben wir eine Instanz? Ja, wir haben eine Instanz. Also hier drin werden wir die Punktinstanz des Level-Managers bekommen , Punkt-Neustart-Level. Und lasst uns das Gleiche hier machen, aber anstatt das Level neu zu starten, kehren Sie zum Hauptmenü zurück. Also spar dir das auf, geh zurück zu Unity. Und ich weiß, dass sich das etwas überflüssig anfühlt. Ich weiß, dass es sich anfühlt, als würden wir immer wieder dasselbe tun. Aber ich glaube, dass dies eine angemessenere Art ist, Dinge zu tun. So können wir zum UI-Manager, zum neu gestarteten Level und zum Hauptmenü gehen. Gehe zu deinem Manager und kehre zum Hauptmenü zurück. Spar dir das auf. Schalten wir den Tiefenbildschirm aus. Lassen Sie uns zunächst die von uns vorgenommenen Änderungen anwenden. Jetzt schalten wir ab. Zunächst setzen wir das Alpha auf 0. Wir werden den tauben Bildschirm abschalten. Größer stirbt das Spiel. Und jetzt haben wir das Neustart- und Hauptmenü. Wenn ich auf das Hauptmenü klicke, gehe ich zurück zum Hauptmenü. Exzellent. Versuchen wir es noch einmal mit dem Neustart des Levels. Wir sterben, wir beginnen mit dem Level. Da sind wir los. Wir sind wieder auf Level 2, Baby. So exzellente Arbeit. Ich hoffe es gefällt dir. Ich hoffe, du hast diese Herausforderung gemacht. Ich hoffe, du hast dein Bestes gegeben und ich gratuliere dir, wenn du es von Anfang bis Ende getan hast, ganz alleine. Ich werde alles inszenieren, sage alle begehen die Änderungen. Es wurde eine Möglichkeit erstellt, das Level neu oder nach dem Tod zum Hauptmenü zurückzukehren. Und kein Weg geschaffen. Zwei Tasten, um das Level neu zu starten, kehren nach dem Tod zum Hauptmenü zurück . Und wenn sich das ändert. Wenn Sie mir noch keine Bewertung hinterlassen , können Sie ein bisschen warten und mir dann eine Bewertung hinterlassen. Dies ist der perfekte Zeitpunkt und wir sehen uns im nächsten, wo wir einen der cooleren Aspekte eines jeden Spiels erstellen werden , nämlich das Pause-Menü. Also sehe ich dich dann. 85. Einrichten von Pausen: Willkommen zurück, meine Spieleentwickler. In diesem Video, wenn wir das Spiel laufen, als wir den Peaky hatten, können Sie sehen, dass wir ein Bälle Menü haben. Wir können entweder bei der Arbeit zum Hauptmenü gehen, mir vertrauen oder wir können das Spiel fortsetzen. Wenn wir das Spiel fortsetzen, wir sind immer wieder, können wir das auch wieder pausieren, und anstatt auf einen der Schaltflächen zu klicken, können wir den Peaky treffen. Aber wir sind, dass dies etwas ist , das wir auch im nächsten Video behandeln werden. Aber jetzt erstellen wir unser Pausenmenü. Oh, okay, jetzt wollen wir unserem Spieler die Möglichkeit hinzufügen, das Spiel anzuhalten. Unser Spieler, ich meine, der Typ, oder das Mädchen, das tatsächlich unser Spiel spielt. Wie werden wir das machen? Nun, es wird ziemlich einfach sein. Wir werden den Tiefenbildschirm duplizieren. Und dies wird der Pausebildschirm oder das Pausemenü sein. Pausieren Sie also das Menü und drücken Sie Enter. Und hier werden wir alles gleich haben, außer ich das anschalten lasse, bis auf das Los. Also zuerst das Blut, wir wollen das Blut und das Pausenmenü nicht, es wird mich auf das eine setzen lassen. Also haben wir das Bild hier drin, aber wir wollen es nur ein bisschen verblasst machen , damit wir den Hintergrund sehen können. Sagen wir also 0.5, okay? Also werden wir es bei 0.5 haben. Und dann verschieben wir den Neustart-Button. Und Sie machen nur den Neustart-Button hierher, verschieben Sie das Hauptmenü hierher. Und anstatt das Level neu zu starten, das Sie behalten können, wenn Sie möchten, aber wir werden diese eine Schaltfläche „Fortsetzen“ erstellen. Also Fortsetzen Button und im Text hier drin wird das Spiel einfach fortsetzen. Also los geht's. Jetzt haben wir diese beiden Knöpfe. Offensichtlich müssen wir die Funktionalitäten ändern und hier. Aber das ist etwas und ich ein paar Minuten. Öffnen wir zunächst den UI-Manager. Und hier drin werden wir ein paar Dinge machen. Zuallererst brauchen wir offensichtlich eine Referenz. Also erstelle ich ein serialisiertes Feld des Spielobjekts, das das Pause-Menü ist. Spar dir das auf. Aber die Sache hier ist, wie wir im vorherigen Video gesagt haben, UI Manager, okay, vielleicht schaltet er das Pausenmenü ein und aus, aber er ist nicht dafür verantwortlich, das Spiel tatsächlich anzuhalten. Der Level-Manager ist das Skript , das dafür verantwortlich ist. Im Level-Manager werden wir also einen öffentlichen Bool erstellen. Und wir werden das nennen, das Spiel ist pausiert. Und offensichtlich möchte ich es nicht öffentlich machen, aber wir werden es oft benutzen. Weißt du was? Machen wir es nicht öffentlich. Machen wir es zu einer privaten Variablen, und wir erstellen eine Möglichkeit, auf den Zugriff zuzugreifen. Ein öffentlicher Bool wird also angehalten, und wir kehren einfach zurück. Diese sind manchmal ein bisschen umständlich. Vielleicht denkst du: Nun, ich schaffe viel Gold. Aber vertrauen Sie mir, wenn Sie das höhere Niveau erreichen, auf das professionelle Niveau, sind dies wichtige Dinge, die Sie haben müssen. möchte nicht, dass Ihr Spiel durch den Code leicht korrumpierbar ist. Jetzt, da das Spiel angehalten wird, bis ich Manager habe, haben wir das Pause-Menü, auf das wir offensichtlich auf irgendeine Weise zugreifen möchten, ändern Sie das Pause-Menü. Also werde ich hier eine Methode erstellen, die besagt, dass die öffentliche Leere einschalten, pausieren, das Menü ein- und ausschalten. Und es wird einen booleschen Wert aufnehmen, der das Ein- und Ausschalten sein wird. Und ich weiß, dass dies nicht der beste Weg ist , um die Variable darzustellen, aber lasst uns sowieso weitermachen. Du wirst sehen, was ich meine. Also hier drin werden wir einfach weitermachen und das Pausenmenü, Punkte-Direktive auf ein und aus. Jetzt gehen wir zurück in den Levelmanager. Und hier drin werden wir eine öffentliche Leere schaffen. Pause, Spiel fortsetzen. Und was wir hier machen werden, ist, dass wir prüfen ob wir nicht im Spiel pausiert sind. Also haben wir noch nicht pausiert. Dann greifen wir auf den UI-Manager zu. Punktinstanz, Punkt, Pause, Schalten, Pausieren Menü ein und aus. Und was sollen wir es einstellen? Nun, wir werden es einfach auf wahr setzen. Denn wenn wir kein unentgegengesetztes Spiel sind, wenn wir eine Art Taste drücken, möchten wir das Pause-Menü einschalten. Und sonst. Das heißt, wenn wir das Spiel nicht angehalten haben. Also wenn wir oder entschuldigen mich, wenn wir in einem pausierten Spiel sind. Dann werden wir das Gleiche hier machen, aber stattdessen werden wir es ausschalten. Und das geht zur UI Manager-Achse, diese und schaltet sie aus. Da das aus dem Weg ist, gibt es etwas, das wir noch tun müssen, und das ist tatsächlich dieses Spiel zu drehen oder zu ändern im Gegensatz zu einer Art Button. Und dies wird Ihre Herausforderung sein, das Spiel mit einer Art Schlüssel fortzusetzen. Suchen Sie also nach Eingaben und wenn Sie gedrückt werden, sollten wir die Methode aufrufen und das Spiel fortsetzen oder pausieren und sicherstellen, dass Sie den Status des Spiels ändern. Wenn es also angehalten wird oder wenn es nicht mehr ist, pausiere das Video jetzt und erstelle eine Eingabe. Okay, willkommen zurück. Also wo willst du es hinlegen? Ich denke hier oben. Also ein Update, wir werden prüfen ob der Eingabepunkt die Taste runter und einen Schlüsselcode für p. Dann werden wir pausieren, fortsetzen, das Spiel. einfach ist es. Und dann enden Sie hier. Wenn wir das Spiel nicht angehalten haben , wird der Gewinn nicht angehalten. Wir klicken auf den Peaky, wir haben eingeschaltet. Das Ein- und Ausschalten ist also wahr. Also hier drin werden wir sagen, dass das Spiel pausiert ist, gleich wahr ist. Und dupliziere das und verschiebe das hier runter. Falsch. Spar dir das auf. Testen wir das also. Ich hoffe, ich habe keinen Fehler mit dem Falschen und Wahren gemacht. Warum glaube ich, dass es richtig ist. Also in der Schaltfläche „Fortsetzen“ werden wir hier etwas hinzufügen, nämlich der UI-Canvas. Und hier gehen wir zum UI-Manager. Wir werden „Abzweig“, „ Pause-Menü“ ein und aus finden . Und wie Sie sehen können, haben wir die Möglichkeit , entweder wahr oder falsch hinzuzufügen. Und das ist der eigentliche boolesche Wert hier , der alle Pfade einschaltet. Also zurück in unserem Spiel und hier, lasst uns zuerst das Pause-Menü drehen, das Spiel ausführen. Also und hier haben wir den Peaky. Wir können zurück zum Hauptmenü gehen. Wir können auch den Peaky erreichen als der Peaky zurück. Und dann schalten wir das Pausenmenü aus. Da sind wir los. Aber es gibt immer noch eine Sache , die die Schaltfläche „Fortsetzen“ ist. Jetzt füge ich das onclick-Ereignis hier hinzu. Und ich werde meine eigene Regel brechen, den Level-Manager von jedem des Managers hinzuzufügen den Level-Manager von , ist wie: Oh, verstöße nicht gegen die Regeln. Aber ja das bin ich. Ich gehe in das wiederhergestellte Pause-Resume-Spiel. Also führe das Spiel aus. Und jetzt drücken wir die Taste, setzen das Spiel fort und alles funktioniert gut. Aber wie Sie sehen können, kann ich immer noch herumlaufen, wenn ich das Spiel pausiere . Ich kann immer noch Feinde erschießen und ich kann immer noch sterben. Wenn Sie nun eine dunkle Seelen erschaffen möchten, fragen Sie Art der Pause im die Art der Pause im Spiel, wo das Spiel im Hintergrund fortgesetzt wird. Und du sitzt einfach hilflos da und versuchst herauszufinden, was in der Speisekarte passiert. Sei mein Gast. Wenn nicht, wenn Sie möchten, dass die Welt gestoppt wird, fahren Sie mit dem nächsten Video fort. Aber bevor wir das tun, müssen wir natürlich unsere Änderungen vornehmen. Wir sehen uns dann. 86. Die Spiel tatsächlich: Willkommen zurück, meine Spieleentwickler. In diesem Video werden wir die Änderungen anwenden, die wir vorgenommen haben. Nicht nur das, wir werden das Spiel starten , wenn wir uns auferlegen sollten, Sie werden feststellen, dass selbst die Kugel einfriert und Mathspace, wenn wir versuchen herumzulaufen, passiert nichts. Und wenn wir versuchen zu schießen, werden auch keine Kugeln produziert. Dies ist also das eigentliche Parsen des Spiels, nicht nur ein Menü zu haben. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, Fall. Obwohl wir den Pause-Bildschirm haben, können wir zurückgehen. Wir können zum Hauptmenü gehen. Wir pausieren das Spiel nicht wirklich. Das Spiel läuft noch, wir können immer noch laufen, wir können immer noch springen. Wir können alles machen. Eigentlich springen wir nicht. Der Feind greift uns immer noch an. Wir müssen also einen Weg finden unseren Gewinn tatsächlich einzufrieren. Und ich fühle mich nicht wirklich dazu bereit. Also stelle ich Ihnen die Herausforderung vor, die ganze Wortwelt mit einem l zu stoppen , die Welt mit Zeitskala einzufrieren. Das ist also der einzige Punkt und die Herausforderung, ziemlich einfach, ich denke, du weißt, was zu tun ist. Also pausiere das Video jetzt und friere die Welt ein. Hey, willkommen zurück. Ich weiß, dass du einen verdammten Hass machst, wenn ich dir zu Beginn eines Videos eine Herausforderung gebe, lehnst du dich einfach zurück. Ja, endlich lerne ich etwas und dann stellt Michael dir einfach eine Herausforderung. Okay, sowieso, hier drin, sobald wir das Spiel pausieren und wir werden auf die Zeit zugreifen, einen Punkt eine Delta-Zeit. Und es wird keine Zeit sein, dass die Zeitskala 0, F. Und hier, wenn wir den Boss stoppen, ist die Zeitpunkt-Zeitskala 1,5. Spar das wieder in unserem Spiel auf. Oder wir machen das ein bisschen größer, führe das Spiel aus. Also unterbreche das Spiel. Exzellent. Es gibt jedoch ein Problem, und das ist, dass nichts auftaucht. Nicht nur das, wir können auch immer noch der Waffe wackeln. Und was ist hier passiert? Nun, das Problem ist, dass unser Pausenmenü mit der Animation behandelt wird oder erscheint. Was ich also tun werde, ist, dass ich hier in den Animator gehe. Und ich werde nur die Komponenten entfernen , damit wir keine Animationen mehr haben. Jetzt, wenn wir das Spiel laufen, habe ich das Menü angehalten und alles hört auf. Aber wie du gesehen hast, kann ich mich immer noch mit dem Feind bewegen. Bewegen Sie sich nicht, aber ich kann immer noch Kugeln schießen und produzieren. Da gehst du. Man sieht die Stabilität und ich kann einige davon produzieren. Und das ist nicht etwas, was wir wollen, wenn wir das Spiel fortsetzen, alles ist wieder normal, aber das reicht nicht aus. Was wir also tun werden, ist, dass wir in das wo ist er? Spieler-Controller. Also Spieler, der Spieler-Controller. Also Spieler-Controller. Und hier drin, wenn wir das Update hochscrollen, werden wir hier enden. Sagen Sie das, wenn das Punktinstanz-Punktspiel des Level-Managers angehalten wird, während das Spiel pausiert wurde. Wenn es also stimmt, bedeutet das, dass wir einfach zurückkehren werden. Und denken Sie daran, was passiert, wenn wir einfach zurückkehren, wir meiden einfach das ganze Objekt. Wenn wir also zu dieser Zeile kommen, überprüfen Sie, ob sie pausiert ist, stimmt. Dann kehren wir zurück und gehen dann zurück zum Update, und dann gehen wir zurück zum Update. Der Spieler macht also nichts. Er kann sich nicht bewegen, er kann die Waffe nicht richten. Er kann nicht animiert werden, weiß, dass er abschneidet, Zahnfleisch wechselt, nein, nichts. Jetzt in unserem Spiel, wenn wir den Gewinn ausführen, können wir jetzt das Spiel pausieren. Und Sie können sehen, dass sich unser Spieler nicht mehr bewegt obwohl wir aus irgendeinem Grund immer noch eine Kugel erzeugen können . Oh, das liegt daran, dass das eigentliche Schießen auf das sogenannte Waffensystem ist. Also setzen wir das Spiel fort, das Boot fliegt davon. Sie können dies überall in dem Update tun, wann immer Sie möchten in dem Update tun, wann immer Sie , während das Waffensystem, das wir hier hineingehen, ein Update ist. Da sind wir los. Jetzt können wir keine Kugeln mehr abfeuern. Sie können dies auch den feindlichen Controllern hinzufügen , wo sie uns auch mit Maulwürfen erschießen. Also schätze ich, dies ist das Ende der erstellenden Menüs und unseres Spiels. Ich werde unsere Änderungen begehen. Wir nennen das als Pausenmenü gemacht. Eigentlich Eier. Schon wieder. Übernehmen Sie die Änderungen. Ich hoffe es gefällt dir. Schauen wir uns unsere Meister an. Solange wir hier sind, haben wir immer noch Zeit. Dieses Video war sehr kurz. Ich meine, schau mal, wie viel wir zusammen erreicht haben. Dieser Gewinn ist unglaublich. Es hat so viele Dinge, es hat so viele Optionen, so viele Variablen, so viele Skripte, so viele Ordner wie die Ordner, die wir haben , ich weiß nicht, was sie fast in 100 Ordnern hat, denke ich. Wahrscheinlich haben wir so viele Animationen, die nicht mögen. Schau dir an wie viele und wir haben immer noch nicht alles animiert. Wir haben immer noch viel zu tun. Kann die Feinde beim Schießen animieren, es gibt immer noch viele Dinge, die wir hinzufügen können. Da dieses Video also kurz ist, möchte ich, dass du dir die Zeit nimmst zu beten, dann auszuatmen und zu schätzen, wie weit du deiner Spieleentwicklungsreise gekommen bist. Und was für eine erstaunliche Rezension. Du lässt mich sowieso einfach verlassen. Vielen Dank fürs Zuschauen. Ich weiß es wirklich zu schätzen, wenn Sie an diesem Punkt kommen. Wenn Sie mir eine Nachricht hinterlassen haben , unterhalten wir uns. Sag der Community, wie viel du gekommen bist, wie viel du gelernt hast, wie viel du erreicht hast und siehst dich im nächsten, denke ich, wo wir einen Bosskampf schaffen werden, glaube ich, welcher ist wie das coolste Ding der Welt. 87. Teil 15: Boss Battes (Fortgeschrittene C# StateMachine) – Einführung in die Sate: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video im brandneuen Bereich. Und eine der besseren Abschnitte, ich stelle Ihnen den Bus Skelly Chef vor. Ich verschwende deine Zeit nicht zu viel. Zunächst werden wir über die Zustandsmaschine sprechen, was es ist, wie es ist, warum wir sie benutzen, wie wir sie verwenden werden, den Animator benutzen, all das gute Zeug. Und im zweiten Teil des Videos werden wir über die Animationen sprechen, die ich erstellt habe , nur um Sie durch den Prozess zu führen. Wenn Sie die Animationen erstellt haben, die Mitte, werden wir eine Herausforderung haben. Wenn Sie bereits alle Animationen gemacht haben, können Sie den zweiten Teil überspringen. Oder wenn du denkst, dass du ein bisschen Hilfe brauchst, führe ich dich einfach durch ein bisschen von dem, was ich getan habe. Wenn das aus dem Weg ist, verschwenden wir keine Zeit mehr. Dann fangen wir mit dem Fall Boss Fight 0 an. Also, äh, willkommen in einem der aufregendsten Teile dieses gesamten Projekts und das ist der größte Kampf. Welcher Gewinn ist komplett ohne Verlust-Knopf? Kein Spiel. Lassen Sie uns also überlegen, wie wir einen Bosskampf schaffen werden. Lassen Sie uns zunächst über etwas sprechen, das als State Machine bezeichnet wird. Wenn wir hier im Animator schauen, werden Sie es bemerken, und nehmen wir zum Beispiel den Doom Player. Sie werden feststellen, dass dies tatsächlich Animationen sind, aber sie funktionieren auch als Status. Also haben wir die Bundesstaaten oder ich bin im Status der Spieler-ID-Links oder des Spielernamens. Er ist ein Nachlass. Er kann bestimmte Dinge tun. Er kann sich nicht bewegen. Zum Beispiel kann er schießen, er kann viele Sachen machen, aber er befindet sich in einem Zustand des Leerlaufs. Dann haben wir den Gehzustand und dann haben wir den Spieler schneidig. Wenn wir zum Beispiel schneidig sind, haben wir bestimmte Animationen. auch nicht bewegen. Tut mir leid, wir können nicht mit unseren Waffen oder Waffen schießen. Das ist also ein Zeichen für einen anderen Zustand in dem wir unterschiedliche Mechaniken und unterschiedliche Verhaltensweisen haben. Also werden wir den Animator verwenden , um solche Zustände zu produzieren. Und ich habe die ganze Zeit diese Animationen genannt. Aber viele Leute nennen sie gerne Staaten. Und das ist okay. Du kannst sie so nennen, wie du willst, solange es richtig beschreibt, was passiert. Sprechen wir also mehr über Zustände und was eine Zustandsmaschine ist, da eine Zustandsmaschine ein Verhaltensmodell ist. Es besteht aus einer endlichen Anzahl von Staaten. Also Verhaltensmodell, genau wie wir im Leerlauf haben, genau wie wir das Flugzeug haben, tut mir leid, das Laufen und das Strichen. Dies sind Verhaltensmodelle und sie sind endlich. Wir müssen also immer wissen, wie viele Staaten wir haben. Und eine gegebene Eingabe führt die Maschine den Zustandsübergang durch und produziert Ausgaben. Genau wie wir die Übergänge zwischen den Animationen im Animator haben, hat eine Zustandsmaschine Übergänge? Deshalb ist der Animator das perfekte Tool, sagen wir mal, um diese Zustandsmaschine zu erstellen. Sprechen wir also darüber, was wir in unseren Bundesstaaten haben. Zuallererst haben wir den Startzustand. Also haben wir den Ausgangszustand, wir übergehen in einen anderen Staat , der das A oder was auch immer es ist. Vielleicht fangen wir damit an, im Leerlauf zu laufen, dann können wir zum Beispiel zwischen wechseln, und dies ist alles ein Beispiel zwischen zwei Zuständen, B und C. Und zum Beispiel, wenn wir von State A gehen um C zu sagen, können wir nicht zurück zu sagen a, Bot von Staat C, wir können in Bundesstaat B gehen, zu Bundesstaat A gehen und dann zwischen a und b hin und her gehen. Dies ist also nur ein Beispiel dafür, was ein Staat sein könnte. Und offensichtlich haben wir bei jedem Übergang Bedingungen. Daher müssen bestimmte Bedingungen erfüllt sein, um von einem Staat in einen anderen zu wechseln. Und das ist etwas, das wir die ganze Zeit und die Ergebnisse gemacht haben. Also werde ich einfach weitermachen. Sprechen wir über die Boss State Machine , die wir haben werden. Der erste Staat wird also das Erscheinen sein. Also der Chef, sobald wir den Bossraum betreten, wird der Boss vom Boden aus erscheinen und Sie werden die Boss-Sprites in nur ein bisschen sehen. Ich habe dir sie in den Ressourcen zur Verfügung gestellt. Dann fangen wir an zu laufen. Sobald der Boss zum Leben kommt, wird er auf den Spieler zugehen. Also keine Zeit zu verlieren, kein Leerlauf, nichts. Der Boss fängt einfach an, auf den Spieler zu gehen. Dann haben wir die fünf Schüsse. Also werden wir unserem riesigen Skelettboss die Möglichkeit geben , den Sie in nur ein bisschen sehen werden , um bestimmte Schüsse abzufeuern. Genau wie wir die feindlichen Kugeln hatten, werden wir, genau wie wir die Spielerkugeln hatten, genau wie wir die Spielerkugeln hatten, auch die Bosskugeln haben , die aus vielen Richtungen abgefeuert werden. Dann werden wir die Nahkampfangriffe haben oder genau wie ich es Ihnen versprochen habe, werden wir Nahkampfangriffe für unseren Boss erzeugen , der den Spieler angreift, sobald er hier in der Nähe ist. Also werden wir eine Art Timer haben. Und offensichtlich wollen wir, dass der Übergang in beide Richtungen geht. Zum Beispiel wollen wir nicht erscheinen, gehen und dann wieder erscheinen. Das war's also. Sobald wir auftauchen, kehren wir unter einer bestimmten Bedingung nie wieder in den Staat zurück. Wir fangen an zu laufen. Unter einer bestimmten Bedingung fangen wir an, Schüsse abzufeuern und dann fangen wir wieder an zu laufen. Und unter bestimmten Bedingungen beginnen wir auch Nahkampfangriffe, und unter bestimmten Bedingungen gehen wir wieder zum Laufen. Aber dann gibt es den zweiten Teil des Kampfes. Und dann wird unser Feind wütend oder unser Chef wird wütend, wenn wir ihn so erschießen, dass seine Gesundheit sinkt. Er fängt dann an, wütend zu werden. Er fängt an, Schüsse wütend abzufeuern. Er fängt winkelig an und greift uns hauptsächlich an. Er wird die Farben ändern, du wirst die Größe ändern. Und schließlich, wenn wir ihn töten, wenn wir ihn töten, wenn wir dies schaffen, haben wir den Zustand zu haben wir den Zustand sterben, wo er uns nicht mehr verletzen kann. Er verschwindet und wir sind gegangen. Also werde ich, wenn du willst, kannst du das Video anhalten, das anschauen, dieses Ende nehmen. Wir werden all dies in unseren kommenden Videos machen , aber ich werde Ihnen auch die Herausforderung stellen, alle Animationen zu erstellen und so zu denken, erstellen Sie die Animationen, die wir für den Chef haben werden. Und lass mich dir einfach die Ressourcen zeigen. Wir haben das Erscheinen, den Angriff, den Farbstoff, den Leerlauf, den Gang. Und wenn du dir nicht sicher bist, was der Angry dir kurz zeigen wird , nachdem ich alle Animationen beendet habe, werde ich sie nicht live machen weil es ehrlich gesagt viel Zeit in Anspruch nehmen wird. Es wird viel Mühe kosten. Ich werde einfach eine neue Szene erstellen, die Balken dort platzieren und die paar Animationen erstellen. Dann musst du das Erscheinen schaffen, angreifen, gehen, schießen, wütend werden, wütend werden, wütend angreifen, wütend schießen, wütend schießen, gehen. Und wenn Sie sich nicht sicher sind, wie Sie den Wütenden erzeugen sollen, zumindest der wütende Gang zum Beispiel der wütende ist zumindest der wütende Gang zum Beispiel der wütende Shooting der gleiche wie der wütende Shooting, tut mir leid. Ich meine, der wütende Spaziergang ist genauso wie der normale Spaziergang. Aber was ich tun werde, ist, dass ich das Ausmaß des Feindes, des Chefs erhöhen werde . Und ich mache ihm auch ein bisschen rote Farbe, damit er anders aussieht. Der wütende Angriff ist genauso wie der Angriff. Und schließlich wollen wir den wütenden Zustand festlegen, dass der wütende Zustand den Boss nur als rote Farbe haben wird, ein bisschen größer und skalierender und ein bisschen schnellere Animationen auch. Wenn das aus dem Weg ist, pausiere das Video jetzt und ich weiß nicht, vielleicht zeige ich dir im nächsten Video die Animationen. Vielleicht zeige ich dir hier die Animationen, nur damit er alles sehen kann, alles einrichten kann. Und wir sehen uns vielleicht im nächsten Monat vielleicht, weißt du. Hey, willkommen zurück. Wie bist du damit zurecht gekommen? Ich wollte dir nur ein paar Dinge zeigen oder meine Staaten erschaffen habe und wie ich das wütende Gehen und das wütende Schießen und wütenden Angriff gemacht habe und wie ich es gemacht habe dass du dich inspirieren lässt. Ich habe auch ein paar Dinge repariert. Wenn Sie den Angriff gemacht haben, haben Sie vielleicht bemerkt, dass das Sprite nach rechts bewegt, was nicht sehr nett ist. Also repariere ich das auch. Also lass mich dir zeigen, was ich getan habe. Zuallererst habe ich alle meine Sprites hier drin, der Bibelangriff so untätig, den wir nicht benutzen. So kannst du das Gehen sehen. Alle von ihnen wurden fast gleich gehalten. Ich habe gerade den Filter gewechselt und die Pixel pro Einheit 75 erstellt. Und was habe ich gemacht, dieser Kelly-Boss. Also lass mich dir zeigen, was ich hier drin gemacht habe. Sagen wir also, wir sind im Erscheinen. Lass mich dir das Erscheinen zeigen. Ganz einfach, ganz normal. Einfach da gehst du. Sie können sehen, dass wir das Skelett erscheinen lassen. Du siehst, dass ich zwei Box-Collider hinzugefügt habe. Einer von ihnen ist ein Auslöser, damit wir wie Sie wissen gehen können, wo wir durch die Wände gegangen sind. Hatte mich gesehen. Okay. Also der unten, der oben, der ist dieser. Da sind wir los. Ich kann es aus- und einschalten. Und Sie können sehen, dass wir einen Auslöser machen werden , der nur damit wir den Feind treffen können, aber gleichzeitig kann der Feind hier hinter dem Hintergrund stehen . Also los geht's. Wir haben das Erscheinen, wie Sie sehen können. Und diese Struktur hier im Animator. Ich habe die Übergänge noch nicht erstellt , weil ich sie beim Erstellen des Codes erstellen möchte. Ich wollte sie nicht machen, ohne dass du es weißt, denn irgendwann werden wir Ausstiegszeit haben, Übergangszeit und all diese guten Dinge haben. Wie Sie sehen können, beginnen wir damit, genau wie auf den Rutschen zu erscheinen , als zu gehen und zwischen dem Gehen und Schießen, dann werden wir wütend als das wütende Gehen, der wütende Angriff und der wütend schießend. Also der Besuch das Walking. Da sind wir los. Ganz einfach. Wir laufen einfach herum. Dann haben wir den Angriff. Wie Sie sehen können, können Sie vielleicht in Ihrem Fall und sogar im Hinterkopf sehen, Ihrem Fall und sogar im Hinterkopf sehen, dass sich der Boss nur ein bisschen so nach oben und nach rechts bewegt . Beachten Sie also, dass wir gehen. Man sieht, dass er sich nur ein bisschen bewegt hat, aber das ist, obwohl wir uns in den Sprites etwas verändert haben. Wenn Sie sie gleich behalten, werden Sie feststellen, dass sich Ihre sehr bewegt. Um das zu beheben, habe ich dafür gesorgt, in den Sprite-Editor zu gehen. Und hier drin habe ich den benutzerdefinierten Pivot geändert. Das ist also der Punkt, an dem wir es das Zentrum nennen. Eigentlich ist es ein Drehpunkt. Es gibt jedoch einen kleinen Unterschied zwischen Pivot und Center, aber dies ist gerade das Zentrum , als sich das Zentrum genau hier befand, weil das gesamte Bild nach rechts verschoben wurde. Deshalb bewegt sich der gesamte Feind nach rechts. Was ich getan habe, ist, dass ich genau hier das Zentrum geändert habe, einen benutzerdefinierten Pivot erstellt habe und es war 0.6554878. Wenn Sie diese Nummer genau wie ich kopieren möchten, oder vielleicht finden Sie eine, die besser ist. Verstand ist nicht perfekt. Wie Sie sehen können, bewegt er sich ein bisschen nach rechts. Sie können also Ihren eigenen Wert finden und sehen , dass Sie nicht alle Sprites bearbeiten müssen. Sie können einfach alle auswählen. Und hier können Sie den benutzerdefinierten Pivot unten auswählen und dann diese Zahl aufschreiben und bei 0,5 belassen. Dies am Y, auf dem X, ändere es auf 6554878. Okay, und was haben wir sonst noch gemacht? Das ist also der Angriff und du kannst sehen, dass ich ein bisschen Platz lasse , wenn er zuschlägt. Also werden wir auf dieser Seite einen Angriff haben. Und sobald die Sorte APU ist, warte ein bisschen, um unserem Spieler Platz zu geben , um vielleicht außer Kontrolle zu gehen. Und dann schwingen wir wieder nach unten. Und wenn wir erschaffen werden, sind hauptsächlich Angriffe. Sie werden sehen, wie dies entscheidend ist da wir Ereignissysteme hinzufügen, die den Spieler nur beschädigen wenn sich das Salz an einer bestimmten Position befindet. Wir wollen den Spieler nicht beschädigen, wenn Soldaten aufsteigen , weil das Skelett offensichtlich nicht schwingt. Also werden wir ihn einfach beschädigt, wenn die Quelle hier ist, und wir werden genau hier eine Art kreisförmigen Collider erstellen . Und wenn der Spieler drin ist, wird er beschädigt. So werden wir den malaiischen Angriff erzeugen. Was schulden wir sonst noch der Schießerei? Also habe ich das von den sterbenden Sprites bekommen, glaube ich. Ja, da sind wir los. Es ist also von den sterbenden Sprites und es ist nicht das Klügste auf der Welt. Ich brauche nur ein bestimmtes Sprite. Und wie Sie sehen können, wenn wir drehen, ändern Sie einfach die Waage. Die Skala nimmt zu und geht dann wieder nach unten. Du siehst es genau hier. Also schicke ich den Aufnahmeknopf und machte sie dann größer, kleiner, größer, kleiner, größer, kleiner. Und das ist der Zeitpunkt, an dem wir schießen werden. Wir werden hinzufügen, genau wie wir es mit einem Unregelmäßigen getan haben. Und das bedeutet, dass wir Schießpunkte hinzufügen werden, also werden wir vier hinzufügen. Und wenn er wütend ist, werden wir sechs hinzufügen und über wütend sprechen. Mal sehen, wie wir wütend werden. Also los geht's. Du siehst, dass wir so wütend werden. Zuallererst werden wir größer. Wir haben also den kleineren, größeren, kleineren, größeren. Und ich habe auch die Leerlaufsprites hier hinzugefügt. Das musst du nicht. Ich habe nicht viel Veränderung bemerkt. Wenn wir alle legalen Sprites löschen, ändert sich ehrlich nichts, aber ich wollte nur etwas anderes haben als nur ein abgestandenes Bild. Dies fügt dem Spieler vielleicht in nur einer kleinen subtilen Bewegung nur einer kleinen subtilen Bewegung hinzu, dass man mit dem Feind, dem Boss, zu Skelly sehen kann, dass er größer, kleiner, größer, kleiner wird , und seine Hand zuckt nur ein bisschen genug, um nur ein bisschen Leben zu haben und er wird größer oder kleiner. Und dann sieht man, dass er groß wird , wo wir die Skala bei 1,3 am X und am y haben , offensichtlich am SAT, brauchen wir sie nicht. Und dann warten wir nur ein paar Sekunden bis der Spieler merkt, was gerade passiert ist. Und dann fangen wir endlich an, wütend zu werden. Während das wütende oder wütende Gehen also genau das gleiche ist wie beim normalen Gehen, aber es ist ein bisschen schneller. Und im ersten Frame habe ich darauf geachtet, dass die Skala auf 1,3 eingestellt wurde. In der Animation hatte ich den Rekord. Ich ändere die Farbe auf Rot. Oh, und übrigens hier drin, während die wütend werden. Also werden sie wütend, du wirst feststellen, dass er langsam liest sie liest. Und hier setze ich es hier auf Rot und es bewegt sich langsam. Sie können die Farbe genau hier sehen. Es bewegt sich langsam zum Lesen. wütenden Gehen Beim wütenden Gehen haben wir es einfach am Anfang gelesen, erhöhen die Skala auf allen Seiten auf 1,3 und wir machen das Gehen etwas schneller. Das wird passieren, wenn er wütend wird. Er wird schneller laufen, also werden die Animationen schneller sein. Wir haben das wütende Schießen, also genau das Gleiche, die Farbe ändert sich einfach. Es ist völlig rau, weil zu diesem Zeitpunkt die ganze NME oder die Chefs rot sind. Und schließlich der wütende Angriff. Es ist genau das Gleiche, nur mit einer größeren Skala, einer anderen Farbe und viel schnelleren Bewegungen. Sie können also sehen, dass es keine Wartezeit gibt , wenn die Quellen aufgehen, er hackt die ganze Zeit weg und wir werden dasselbe schaffen, was wir hier drin haben werden, den Schaden. Diese Position werden wir den Schaden haben. Und an dieser Position werden wir auch den Schaden haben. Okay, also wenn das aus dem Weg ist, hoffe ich, dass dir dieses Video gefallen hat. Ich hoffe, du hast alle deine Animationen erstellt. Es hat die Zeit gedauert, sie zu machen. Das ist die Bühne all unser Whoa, das ist nett. Jedenfalls habe ich aus irgendeinem Grund einen Fehler. Das repariere ich später. Aber im Moment hoffe ich, dass es dir gefällt und ich sehe dich im nächsten Video, in dem wir unseren Feind tatsächlich bewegen und Dinge zerstören werden . Wir sehen uns dann. 88. Chef einrichten: Willkommen zurück meine Spieleentwickler zu einem brandneuen Video. Und wenn ich in diesem Spiel maximiere, alles zu sehen, wenn ich das Spiel führe, wirst du feststellen, dass der Boss vom Boden aus appelliert und auf uns zugeht. Und wenn er an eine bestimmte Position kommt, fängt er an, uns zusammenzuarbeiten. Ist das überhaupt ein richtiges Verb? Er fängt an, uns mit seinem riesigen Salz zu verprügeln. Das ist also keine Zeit mehr verschwenden. Und lasst uns anfangen. Oh, okay, jetzt lasst uns den Feind tatsächlich laufen lassen oder nicht Feind, der Boss beginnt tatsächlich auf den Spieler zu gehen. Wie werden wir das machen? Wenn wir zum Animator gehen, wollen wir als Erstes von der Erscheinung zum eigentlichen Gehen übergehen . Also werde ich einen Übergang ins Walking schaffen. Und es wird keine Bedingung geben. Es wird nur eine Ausstiegszeit und vielleicht eine Übergangsdauer geben , die sehen, wie das aussieht. So erscheint der Feind und los geht's. Man sieht, dass er, wenn er fertig ist, ins Gehen übergeht. Du kannst hier drin herumspielen. Lassen Sie uns zum Beispiel die Ausstiegszeit auf 97 Prozent erhöhen . Also haben wir sein Erscheinen komplett beendet. Mal sehen, wie das aussieht. Okay, es gibt also einen Fehler hier. Und ich möchte das alles vor dir machen, nur damit du sehen kannst, wie die Dinge passieren. Vielleicht dauert es ein bisschen länger vom Video, aber ich muss dir das zeigen. Ich will sowieso keine Verwirrung. Jetzt, da wir das Gehen haben, ist es tatsächlich an der Zeit, zuerst die Transformation des Spielers zu finden, einen starren Körper zu bekommen , die Richtung zu finden und so weiter, die Geschwindigkeit hinzuzufügen. Wie werden wir das machen? Nun, wie Sie wissen, haben wir alle diese Zustände genau hier eingerichtet. Also was ich tun werde, klicke ich auf das Gehen. Und Sie können genau hier sehen, dass ich etwas hinzufügen kann , das als Verhalten bezeichnet wird. Klicken wir also auf Verhalten hinzufügen. Lass uns weitermachen und ein neues Skript erstellen. Und anstatt der Boss aus irgendeinem Grund wütend zu werden, nennen wir das den Boss Walk. Das Hinzufügen eines Verhaltenskripts zu einem Status hat also eine andere Art von Benennungskonvention, die ich verwenden werde. Eigentlich benutzt MEINE Einheit den Unterstrich, also werde ich diesen Standard beibehalten, sagen wir mal. Erstellen Sie also eine Anzeige und warten Sie, bis die Datei importiert wurde. Und da sind wir los. Jetzt haben wir die Nachkriegszeit. Wenn wir anklicken und sehen, wo das tatsächlich ist, gehen wir in die Vermögenswerte. Es ist sofort in den Vermögenswerten. Wenn also irgendwann jetzt, wenn ich das ein bisschen größer mache können wir die Ordner richtig sehen. Und Sie können sehen, dass es nur um die Vermögenswerte geht. Und aus diesem Grund gehe ich hier in die Skripte, klicke mit der rechten Maustaste und erstelle einen neuen Ordner für das Boss- oder Boss-System. Nennen wir es das Kassensystem. Drücken Sie die Eingabetaste und sichern Sie dann die Assets. Werde das in den Boss ziehen. Da sind wir los. Und der Boss klickt auf Gehen. Ist das Drehbuch immer noch da? Die neue Version von Unity ist also sowieso äußerst gültig, hoffentlich dauert Ihre nicht so lange alles zu kompilieren und zu verstehen. Jetzt doppelklicken wir auf die Promenade und schauen wir uns an, was wir hier haben. Wie Sie sehen können, haben wir kein Mono-Verhalten mehr. Wie Sie genau hier sehen können, ist das Mano-Verhalten normalerweise einem Skript vorbehalten , das an ein Spielobjekt angehängt wird. Also etwas, das sich bewegen wird. Zum Beispiel haben wir hier kein motorisches Verhalten, wir haben ein Verhalten der Zustandsmaschine. Und das ist ein Skript, das nur an bestimmte Zustände angehängt ist . Also lass uns eins fortsetzen, was haben wir hier? Genau wie wir den Start und das Update des Mono-Verhaltens haben , haben wir den On-State-Enter und das On-State-Update. Wir haben auch den On-State Exit, On-State-Umzug und den On-State-IQ, was auch immer das ist. Wie auch immer, wir werden uns nicht auf die letzten beiden konzentrieren, also können wir sie löschen. Und hier drin werde ich alle diese Zeilen auswählen , weil sie kommentiert sind. Und wir können alles mit der Steuerverschiebung auskommentieren oder nicht, tut mir leid, Control K, du. Da sind wir los. Stellen Sie also sicher, dass Sie die Strg gedrückt halten und gleichzeitig K drücken. Wie Sie sehen können, haben wir viele Fehler. Und das liegt daran, dass diese Zeilen tatsächlich die Kommentare sind. Genau wie hier, das wir über das Update haben, wird das Kommentar-Update jeden Frame aufgerufen , den Sie hier sehen können, On-State-Enter wird aufgerufen, wenn ein Übergang beginnt, und das On-State-Update wird jeweils aufgerufen update und on exit wird bei den Übergängen aufgerufen. Und okay, Excellent. Lasst uns jetzt weitermachen. Hier drin werde ich zuerst die Transformation erstellen, die die Ebene verfolgen soll. Dann werd ich es kriegen. Ein starrer Körper 2D. Also Boss starrer Körper, kein Boss. Starrer Körper 2D. Oder weißt du was? Lassen Sie uns nicht führen müssen, dass dieses ganze Spiel ein 2D-Spiel ist, also brauchen wir das nicht und eine Vektor-Drei-Punkt-Richtung, um sich zu bewegen. Und genau wie normale Feinde haben wir die Komponenten des Boss Walking und so weiter. Jetzt, da wir diese haben, ist es Zeit für eine Herausforderung. Und Ihre Herausforderung besteht darin, die IP-Schicht zu finden und den starren Körper zu erhalten. also zuerst darüber nach, Denken Sie also zuerst darüber nach, wo wir alle Referenzen bekommen sollten. Normalerweise benutzen wir den Start, aber jetzt haben wir nicht aufgehört. Also wo sollten wir sein? Sie denken, wo wir ein verwenden sollten, wo sollten wir alle unsere Komponenten bekommen? Dann müssen wir natürlich den Spieler finden. Dann müssen wir den starren Körper auf den Boss bringen. Und ich gebe dir einen kleinen Hinweis. Wir müssen den Animator aus den Parametern verwenden. Was meine ich mit dem Animator aus den Parametern? Lass mich dir das einfach zeigen. Wenn wir also hier reingehen, können Sie sehen, dass wir beim Ein-State-Enter, beim Statusupdate und beim On-State-Exit beim Statusupdate und beim On-State-Exit bestimmte Parameter haben, und einer von ihnen ist der Animator. Wir haben also sofortigen Zugriff auf den Animator. Das verwenden Sie eine Bestellung, um die Referenzen zu erhalten. Also hin und her zu unserer Herausforderung, das ist ein bisschen schwer. Gib dein Bestes, probiere verschiedene Dinge aus, verschiedene Tricks, mache Fehler, gib dein Bestes. Es gibt keinen Druck auf dich. Pausiere das Video jetzt und mach die Herausforderung. O K wird wiederkommen. Da wir also keinen Start haben, werden wir die On-State Enter und Away Allstate Enter Works verwenden , sobald wir in den Zustand eintreten, werden wir die Parameter einrichten und dann werden wir sehen, was wir wollen mach es später. Im Moment werden wir weitermachen und die Spieler-Verfolgungsjagd benutzen. Was ist der Spieler Chase wird das Spielobjekt sein, um Objekte des Typs zu finden. Oder wo ist es tatsächlich ein Objekt des Typs zu finden. Und es wird der Spieler-Controller sein. Beachten Sie die obere Kugel den Spieler-Controller. Finde also das Objekt des Typs. Ich glaube, wir haben das schon mal gesehen. Und wir haben das Spielobjekt benutzt, weil wir das Spielobjekt einfach verwenden können , ohne das Mono-Verhalten hier oben zu haben. Also brauchen wir die Spielobjektklasse. Dann bekommen wir das endgültige Objekt des Typs. Wir kriegen den Spieler-Controller. Und schließlich müssen wir den Transport dieses Spielobjekts bekommen , das wir gefunden haben. Jetzt haben wir einen Hinweis auf den Spieler, den wir jagen sollen. Als nächstes brauchen wir die starren Körper. Also werde ich sagen, dass der starre Körper der Bosse der Animatorkomponente entspricht. Und wir werden den starren Körper 2D bekommen. Und haben wir dem Boss einen starren Körper hinzugefügt? Schauen wir uns das an und sehen, ob wir es getan haben. Wenn wir auf die Skelly klicken, haben wir es nicht getan. Also lasst uns weitermachen und einen starren Körper 2D hinzufügen. Da sind wir los. Jetzt haben wir einen starren Körper. Und stellen wir sicher, dass wir die Rotation an diesem Ende einfrieren. Und wir sorgen dafür, dass der große Maßstab auf 0 liegt. Da sind wir los. Spar dir das auf. Wenn Sie Ihren Chef nicht herumschieben können möchten, können Sie sicherstellen, dass er entweder kinematisch statisch oder vielleicht sogar statisch ist . Aber ich denke, er wird sich nicht bewegen können. immer, lasst uns einen fortsetzen, jetzt müssen wir sicherstellen, dass der Feind oder der Boss tatsächlich bewegt. Also wo sollten wir das machen? Nun, offensichtlich sollte es das Gegenteil sein. Also ein Update, ich werde sagen, dass wir einen Vektor zwei haben, was die neue Position ist, in der wir uns befinden sollten. Und es wird gleich dem Vektor zum Nebel sein. Und worauf sollten wir uns bewegen? Es sollte der Bosspunkt sein, starre Körperpunktposition. Das wird also sein, wie Sie genau hier sehen können. Zuallererst haben wir den Strom, dann haben wir das Ziel, dann haben wir die Entfernung max. Also hier werden wir weitermachen und diese Position starrer Körper sagen. Also von den Chefs der starren Körper offensichtlich. Dann werden wir sagen, dass die Position des Spielers Chase Dot das Ziel ist. Und ich werde hier oben eine öffentliche Floatgeschwindigkeit schaffen. Und das wird die Geschwindigkeit sein , mit der wir uns bewegen werden. Und dann schwimmt ein öffentlicher Schwimmer zurück. Reichweite, und dies wird später bei der Verwendung des Werkzeugs ein Angriffsbereich sein. Was wir also tun werden, ist, dass wir sagen werden , dass wir uns mit der Geschwindigkeit bewegen werden, aber wir werden es hinzufügen Zeitpunkt fixierte Delta Prime und y feste Delta-Zeit. Und was ist der Unterschied? Sie können hier das Intervall in Sekunden sehen, bei dem die Physik und andere feste Bildrate aktualisiert werden. Es ist also fast dasselbe wie Delta-Zeit, aber es ist eine feste Delta-Zeit. Es fügt dem Spiel nur ein bisschen zusätzliche Leistung hinzu. Und aus irgendeinem Grund ist mir aufgefallen, wenn wir die reguläre Delta-Zeit benutzen, wir ein seltsames Verhalten haben, weil wir in einem Animator sind. Vielleicht ist das der Grund. Ich bin mir nicht 100% sicher, aber was ich mit einer festen Delta-Zeit gefunden habe, die genau wie Delta-Zeit ist, nur fixiert und genauer. Also lasst uns weitermachen. Was wollen wir schließlich tun, wenn wir in einen bestimmten Bereich kommen? Wir wollen anfangen, unseren Spieler anzugreifen. Also wenn der Vektor zwei Punktabstand zwischen der Ebene Punktposition und dem starren Körper zu jagen. Die Position des Bosses mit starren Körperpunkten. Wenn es weniger als die Angriffsreichweite , die wir hier erstellt haben. Während wir die Geschwindigkeit erschaffen haben. Dann werden wir hier sagen, dass der Animator, der auslöst, der eingestellte Trigger und wir werden anfangen anzugreifen. Lasst uns also wieder in unser Spiel gehen. Schaffen wir einen Übergang zwischen dem Gehen und dem Angriff. Und ich wechselte zwischen dem Angriff und dem Gehen. Und hier drin werden wir sicherstellen, dass wir keine zusätzliche Zeit haben oder nicht , lassen Sie uns das tatsächlich überspringen, weil es manchmal benötigt wird. Also hier drin werden wir sagen, dass wir angreifen wollen. Dies wird der Name des Triggers sein. Die Bedingung für den Übergang vom Gehen und zum Angriff wird der Auslöserangriff sein. Ich füge es hier ein, heb dir das auf. Und jetzt hier drin werde ich sehen, wie wir zurückkommen werden. Also zuerst tun wir, wir gehen von The Walking aus, wir fangen an anzugreifen, aber wie kommen wir dann zurück? Lassen Sie uns zuerst sehen, wie das aussehen wird. Also werde ich das Spiel ausführen und wir werden uns unser Spielerverhalten ansehen. Wie Sie sehen können, ist er erschienen, aber aus irgendeinem Grund bewegt er sich nicht und seine Rutschen sehr leicht weg. Gehen wir also zum Lehrplan und schauen wir uns an, was das Problem hier drin ist. Vielleicht solltest du ihn ein bisschen dynamisch oder kinematisch machen. Versuchen wir es noch einmal. Und schon wieder. Er scheint, als fängt er an zu laufen. Und wenn wir in Reichweite sind, wie Sie sehen können, ist er es. Da gehst du. Alles scheint zu funktionieren. Das einzige Problem ist, dass wir auf ihn gerendert werden. Also gehe ich zurück. Ich werde nach diesen privaten und der Boss-Ebene suchen. Das ist also deine Präferenz. Willst du hinter dem Boss vor dem Boss erscheinen ? Aber eigentlich wollen wir vielleicht hinter dem Boss erscheinen. Wir wollen nicht über den Boss gehen. Also in den Ebenen hinzugefügt, Spieler, Los geht's. Jetzt, wenn wir das Spiel laufen, gibt es jetzt ein offensichtliches Problem hier drin, dass okay ist, also werden wir hinter dem Boss gerendert. Das ist gut. Er kämpft gegen die USA, macht einen Angriff als einen anderen Angriff als ein anderer Angriff als ein weiterer Angriff. Aber hier ist das Problem, dass er immer noch nicht auf uns zugeht. Das liegt daran, dass wir den Boss nicht wirklich in Bewegung gebracht haben. Das war ein Fehler meinerseits. Starre Karosserie im Bus. Wir können die Position „Verschieben“ verwenden. Und hier drin werden wir es als neue Position verkaufen . Also spar dir das auf. Sie können genau hier sehen, Position Verschieben nicht funktioniert, bewegt den starren Körper in Position, speichern Sie ihn zurück. Jetzt Spiel, führe das Spiel aus. Und jetzt sollten wir sehen, dass er, wenn der Boss erscheint, auf die Schicht zugeht und er anfängt, den Spieler zu schlagen und auf ihn zu gehen. Aber wie Sie sehen können, ist er nicht die richtige Richtung und er hält zu nahe an der Schicht an. liegt daran, dass man sehen kann, dass die Geschwindigkeit und die Angriffsreichweite vielleicht ein bisschen größer sind, wenn wir auf den Lehrplan klicken , dass die Geschwindigkeit und die Angriffsreichweite vielleicht ein bisschen größer sind, wenn wir auf den Lehrplan Angriffsreichweite vielleicht ein bisschen größer sind, wenn wir auf , wenn wir auf den Lehrplan klicken. Also lasst uns vielleicht fünf machen. Mal sehen, wie das aussieht. Führe das Spiel aus. Und jetzt kommt er nahe, dann gehst du, du kannst sehen, dass er anfängt uns zu bekämpfen und er geht auf uns zu. Das sieht also irgendwie gut aus. Ich glaube, wir wollen nicht hinter den Boss gehen können. Mir gefällt es nicht sehr. Vielleicht sollte das doch kein Auslöser sein. Vielleicht solltest du den Boss einfach auf den Kopf schlagen können. Es ist keine große Sache, wenn wir das tatsächlich durchgehen können oder Sie zum Beispiel die Rasterwand die Wand auf ein bestimmtes Niveau ändern und sicherstellen, dass der Chef nicht mit interagiert wall, was meiner Meinung nach eine wirklich gute Idee ist. Vielleicht testen wir das aus. Lasst uns das aufheben. Aber im Moment scheint alles gut zu funktionieren. Es gibt das Problem offensichtlich das Drehen des Feindes zu machen. Und wir müssen ein paar Reparaturen für die Bewegung machen, aber das behalten wir für ein späteres Video. Vorerst. Ich hoffe es gefällt dir. Ich hoffe, du begehst deine Änderungen und wir sehen uns im nächsten. 89. Bessere Boss Bewegung: Willkommen zurück meine Gunst die Spieleentwickler. In diesem Video werden wir ein paar Fehler oder Unannehmlichkeiten und die Bewegung unserer Chefs beheben . Also, wenn wir das Spiel ausführen und es gibt ein paar kleine Optimierungen, die du vielleicht nicht bemerkst. zum Beispiel jetzt Wenn wir zum Beispiel jetzt verschwinden, haben wir den doppelten Angriff nicht. Und wir können auch sehen, dass unser Feind jedes Mal umgedreht wird. Wenn das aus dem Weg ist, verschwenden wir keine Zeit mehr und lasst uns anfangen zu flippen. Oh, okay, jetzt wo wir die erste Art des Gehens und eines Pyruvatangriffs etabliert haben . Das nächste, was wir tun werden, ist, dass wir die Bossbewegung reparieren werden , und wir werden damit auf der gesamten Chefzustandsmaschine SAP vorankommen . Also lasst uns anfangen. Das erste, was ich beheben möchte, ist der Doppelangriff. Was ist der Doppelangriff? Nun, wenn ich das Spiel führe, behalte ich es so, wie es hier ist. Wie Sie sehen können, kommt er nahe, er greift einmal, zweimal an. Wenn ich entkomme, greift er immer noch einen an. Also 12, das ist der doppelte Angriff. Wir wollen nicht, dass das passiert. Um dies zu vermeiden, öffne ich das Visual Studio und hier und am On-State-Ausgang. Wenn wir also den Boss Walk verlassen, gehe ich weiter und greife auf den Animator zu. Und ich setze den Auslöser zurück. Also hier drin sage ich nochmal Angriff. Was das also tun wird, ist, Sie genau hier sehen können, wenn wir uns in einer bestimmten Entfernung befinden, den Angriff auslösen. Also gehen wir in den Angriff. Aber sobald wir das Gehen verlassen, werden wir den Auslöser zurücksetzen damit wir nicht mehr im Angriff sind. Also zurück hier drin greifen wir nicht mehr zweimal an. Wenn ich jetzt das Spiel führe, sollten die Bossfeinde erst angreifen, wenn wir Steuern hatten. Also Steuern, wir gehen weg. Da sind wir los. Man sieht, dass er nur einmal angreift. Großartig, das ist behoben. Das nächste, was ich beheben möchte, ist die angreifende Animation. Sie werden also bemerken, dass er nicht die beiden ganzen Schwünge auf und ab macht. Du bist nicht der Einzige, der oben ist und dann hört er auf. Warum ist das so? Nun, denn es ist die Ausstiegszeit genau hier beim Übergang. Wenn ich also darauf klicke, Kelly, und du wirst es hier in der Vorschau bemerken , wenn ich das Spiel laufen lasse, er schießt einmal und dann geht er wieder zum Laufen, was wir nicht wollen. Stattdessen werde ich die Ausstiegszeit einstellen , um etwa 90 Prozent des Umzugs zu spielen. Jep. Da sind wir los. Vielleicht noch mehr, nur ein bisschen mehr. Also vielleicht 97 ish des Umzugs. Mal sehen, wie das aussieht. Und all dies muss basierend darauf kalibriert werden , wie sich Ihr Spiel anfühlt. Also los geht's. Wir greifen einmal an, zweimal runter und runter. Dort fangen wir dann wieder an zu laufen. Exzellent. Eine weitere Sache, die hier ein bisschen stört, ist die Ausstiegszeit beim Gehen zum Angriff. Jetzt haben wir alles eingerichtet. Jetzt sollten wir also einen etwas reibungsloseren Weg sehen . Da sind wir los. Also greifen wir an, wir gehen, wir greifen an, wir gehen, wir greifen an, wir gehen ein bisschen und wir drängen weiter auf den Spieler zu. Aber offensichtlich fehlt noch eines und ist , dass der Feind nicht in unsere Richtung schaut, was ich aufgrund der Art und Weise, wie unser Nahkampfangriff aufgebaut wird, als großes Problem bezeichnen würde aufgrund der Art und Weise, wie unser Nahkampfangriff aufgebaut wird, als großes Problem . Also lasst uns das in Ordnung bringen. Das erste, was wir tun werden, ist offensichtlich, dass wir den Spieler so drehen werden , wie wir ihn geschrieben haben. Feinde. Aber wo machen wir das? Vielleicht möchten wir das und das Gehen machen. Nun, was ist, wenn wir angreifen? Wir wollen uns auch den Spieler ansehen und sollten wir uns nicht auch den Spieler ansehen und schießen? Dies scheint also etwas zu sein, das allgemeiner und nicht staatlich basiert. Also werden wir hier ein Skript erstellen, das Chef-Controller bezeichnet wird. Und ich warte darauf, dass es kompiliert und diesen Boss-Controller zu diesem Kelly-Boss-Spielobjekt hier drin hinzufügt Boss-Controller zu diesem . Und hier drin bekomme ich zuerst einen Hinweis auf den Spieler, den ich jagen soll. Also eine private Leere. Leere, nichtig, ich hatte mich verändert. Und die Ebene, die es zu jagen gilt. Los geht's, heb das jetzt auf und fangen an. Ich werde weitermachen und sagen, dass der Spieler, den man jagen soll , dem endgültigen Objekt des Typs entspricht. Der Spieler-Controller. Und ich werde weitermachen und auf die Transformation zugreifen. Jetzt haben wir den Spieler, den wir jagen müssen, bereit zu gehen. Das nächste, was Sie tun müssen, ist, tatsächlich mit dem Flippen zu beginnen. Der Boss, wenn der Spieler von einer Seite zur nächsten des Feindes geht . Da wir das bereits gemacht haben, werde ich es Ihnen als Herausforderung ausstellen. Und deine Herausforderung besteht darin, den Boss in die richtige Richtung zu drehen . Prüfen Sie also zunächst die Position des Bosses relativ zur Position des Spielers. Denken Sie daran, dass wir durch die darauf basierenden Transformationen den Bustransport um die Y-Achse drehen würden. Sie müssen also um 180 Grad drehen. Es ist also ähnlich wie wir die Waffen gedreht haben, nicht nur der NMI. müssen Sie natürlich umgekehrt hinzufügen . Und dann rufe diese Methode an, bevor du den Feind spazierst. Teste es aus. Gibt es ein Problem? Warum gibt es ein Problem? Sie werden also offensichtlich auf ein Problem stoßen. Darüber machen Sie sich keine Sorgen. Tu dein Bestes. Finde den Flipping-Weg und wir sehen uns in einem bisschen. Okay, willkommen zurück. Im Update werde ich also prüfen, ob die Transformation, der Positionspunkt x, der Boss, größer ist als die Ebene, um diese Position zu verfolgen, der RX. Dies basiert übrigens darauf, wie die Masse anfänglich aussieht. Wenn er also umgekehrt geschaut hätte, wollten wir das vielleicht umgekehrt überprüfen. Wie auch immer, wenn die Position des Boss größer ist als die Position des zu jagenden Spielers, offensichtlich nur auf der X-Achse. Was wir dann tun werden, ist hier drin, dass wir die Transformationspunkt-Position erhalten werden. Und wir werden, entschuldigen Sie mich, das Transformieren drehen. Während es sich dreht. Und dann 0 F auf der X-Achse und 180 auf der Y-Achse und 0 auf der Z-Achse. Und warum ist das so? Wenn wir wieder in unser Spiel gehen und wenn wir diesen Kelly-Boss bekommen, wenn wir genau hier eine Rotation machen, dann sehen wir , dass er sich umgekehrt dreht, was genau das ist, was wir wollen. Also werden wir auch sicherstellen, dass es sonst, wenn wir diese Position umwandeln, aber diesmal ist es umgekehrt. Das bedeutet, dass der Spieler das ist, was passiert ist. Der Spieler ist auf dem anderen Weg. Dann werden wir sicherstellen, den Feind wieder zurückdrehen. Also los geht's. Spar dir das auf. Also wenn wir jetzt wieder reingehen und was ist das Problem? Vielleicht haben wir hier einen Tippfehler gemacht. Ja, da sind wir los. Also wieder hinein führen wir das Spiel aus. Mal sehen, was passiert. Und da sind wir los. Offensichtlich gibt es also ein kleines Problem. Was zum, was war das Problem? Offensichtlich hat unser Bossfeind eine Art Anfall. Und warum passiert das? Nun, weil wir versuchen umzudrehen. Beachten Sie also, was hier bei der Rotation passiert, wir drehen uns und dann kehren wir zurück. Wir versuchen, den Feind umzudrehen, ich meine den Boss basierend auf der Spielerrichtung. Aber weil wir es jeden einzelnen Frame nennen und aufgrund der Animation, die uns dazu bringt , in eine bestimmte Richtung zu gehen, haben wir ständig dieses ständige Umdrehen. Was wir also tun werden, ist wieder hier drin, wir werden eine Variable erstellen, die überprüft, ob wir umgedreht haben oder nicht. Also hier drin werde ich ein Publikum schaffen. Und um es vorerst öffentlich zu halten, werden wir offensichtlich nicht wie ewig mithalten. Also, wenn Lipid umgedreht wird und ich werde es am Anfang auf false setzen. Also hier drin werden wir prüfen, ob wir einen Flippant haben. Das bedeutet, dass „Flipped“ gleich falsch ist, da dies die reguläre Richtung ist, die wir uns ansehen. Wenn der Spieler auf der linken Seite ist, genau hier. Wenn sich der Spieler also auf der linken Seite befindet, möchten wir nicht umgedreht werden. Und hier drin ist gekippt ist gleich wahr. Entschuldigung. Aus irgendeinem Grund wird der Tab nicht so verwendet, wie ich will. Visual Studio Community hält nicht mit mir Schritt. Und dann werden wir es hier in unsere Bedingungen aufnehmen. Wenn der Spieler also auf der linken Seite ist und umgedreht wird, wird er umgedreht, dann werden wir ihn wieder auf die andere Seite drehen. Und hier drin, wenn er nicht umgedreht wird, werden wir ihn zurückdrehen. Also hoffe ich, du verstehst, was hier passiert. Zuallererst haben wir das am Anfang gekippt, es ist falsch. Hier drin funktioniert das nicht nur, wenn der Spieler auf der anderen Seite des Pfades ist anderen Seite des Pfades und wir nicht gekippt haben, dann werden wir umdrehen. Wir werden dies auf wahr setzen, und dies wird es uns ermöglichen, nicht wieder zurückzublättern, wenn wir offensichtlich nicht umgedreht werden müssen. Also führe das Spiel aus. Und du wirst jetzt bemerken, dass der Feind auftaucht, er ist hinter uns her. Offensichtlich muss die Entfernung ein wenig angepasst werden. Und wenn wir dann auf die andere Seite gehen, während diese gekippt sind, gehen wir los. Du siehst, dass wir da sind. Er ist umgedreht. Er ist umgedreht. Okay. Er ist nicht umgedreht. Er ist umgedreht. Er ist nicht umgedreht. Also los geht's. Jetzt haben wir Butter, Bewegung und Butter und ein Missionsübergang könnte ein besseres Fernmanagement gut sein. Also fünf denke ich ist viel, vielleicht ist 3.5 eine gute Zahl. Ich möchte nicht, dass der Spieler oder der Feind den V-Spieler trifft. Vielleicht sind sogar drei gut. Das hebe ich dir auf. Wir haben ein bisschen Übergang hinzugefügt. Nehmen Sie sich Zeit und spielen Sie mit den Übergängen herum und machen Sie sie perfekt in Richtung, Sie möchten, damit das aus dem Weg ist, Ihre Änderungen vorzunehmen. Ich hoffe, es gefällt Ihnen und wir sehen uns im nächsten Video, in dem wir den eigentlichen Angriff einrichten und unseren Spieler verletzen und nicht nur MC schwingen werden den eigentlichen Angriff einrichten und unseren Spieler . Wir sehen uns also dort. 90. Einrichtung von Boss: 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. 91. Boss in der zweiten Phase: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video werden wir unseren Boss wütend machen. Wie Sie sehen können, habe ich hier einen Übergang erstellt. Ich habe einen Trigger erstellt, den wir nicht benutzt haben. Und wir können vom Gehen gehen, um wütend zu werden, zu wütend zu werden, zu wütend zu gehen und anzugreifen. Mal sehen, wie das in unserem Spiel aussieht. Ich werde im Spiel maximieren. Ich gehe zum Lehrplan und mache, nein, ich meine, gehe zum wütenden Gehen und mache die Geschwindigkeit fünf, speichere das und maximiere das Spiel, führe das Spiel aus. Jetzt solltest du sehen, dass der Boss wütend wird, er wird größer und jetzt läuft er viel schneller. Und du wirst feststellen, dass er viel mehr Schaden anrichtet und wir können davonkommen. Sie können sehen, dass unsere Gesundheit derzeit erschöpft ist. Wir haben versucht, ihn zu erschießen. Er hat kein Gesundheitssystem. Was für ein Spiel das ist, und jetzt kommen wir in den Tod, indem wir sterben. Wenn das aus dem Weg ist, gehen wir zurück zum Hauptmenü. Wir brechen ein paar Gläser, wir weinen und versuchen das Spiel zu beenden, aber es wird uns nicht erlauben. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, okay, jetzt ist es an der Zeit, unseren Boss das nächste Level zu bringen. Und im nächsten Level will ich ihn offensichtlich wütend machen, keine Sorge um die Schießerei. Darum werden wir uns später befassen. Wir kennen bereits alle Schießmechaniken. Also werde ich einen Übergang vom regulären Gehen zum Wüten schaffen . Und hier drin erstelle ich einen neuen Trigger oder tatsächlich einen Trigger. Also nenne ich es „wütend“. Wenn wir also laufen, werden wir wütend und dann übergehen wir zur Wut. So werden wir größer, wir werden schneller und wir werden wohl stärker. Nun, offensichtlich werden wir stärker werden. Und wenn wir dann von der Wut übergehen, meine ich, wenn wir den wütenden Übergang beenden, werden wir zum Wütend übergehen. Also schauen wir uns das an. Wir werden wütend. Wir beenden die Animation, atmen ein bisschen und dann werden wir wieder zurückgehen. So ausgezeichnet, das alles funktioniert einwandfrei. Das nächste, was wir tun werden, ist, dass wir einen Übergang vom wütenden Gehen zum wütenden Angriff und einem Übergang zurück schaffen . Und wir werden jede Ausstiegszeit hier entfernen. Und ich werde diese Ausstiegszeit machen und hier sind ungefähr 90. Wie lang war der vorherige? Also hier drin, 97. Okay, dann 97. Wenn wir also angreifen, greifen wir einmal, einmal, zweimal, einmal, zweimal an. Okay, ausgezeichnet. Also haben wir alles richtig eingerichtet und wir werden den gleichen Trigger genau hier für den Angriff verwenden . Weil, warum nicht? Wir können das tun, speichern wir all das. Und jetzt haben wir den wütenden Angriff. Aber wenn wir angreifen, wollen wir natürlich mehr Schaden haben. Wir wollen einen größeren wütenden Radius haben. Dafür werde ich Ihnen eine Herausforderung stellen, um den Boss wütend anzugreifen. Erstellen Sie also zunächst eine neue Methode, die den wütenden Angriff des Chefs bewältigt. Dieser Angriff sollte eine größere Reichweite und einen stärkeren Angriff haben. Sie müssen also nur dafür Variablen erstellen und Ereignisse zu den wütenden Tech-Animationen hinzufügen. also das Halten Sie also das Video jetzt an und erstellen Sie den neuen wütenden Angriff. Hey, willkommen zurück, meine Spieleentwickler. Lassen Sie mich Ihnen für eine Sekunde zeigen, was auf unserem Discord Server los ist . Dies ist eine Person, der ich helfen werde, und wie Sie sehen können, schickt er mir ein bisschen Code. Ich habe ihm ein bisschen Code zurückgeschickt. Wir unterhalten uns, wir haben die Chats ständig in der allgemeinen Spieleentwicklung und so weiter. Das ist die ganze Zeit so aktiv. Die Menschen helfen sich gegenseitig. Ich habe versucht, so viel wie möglich zu helfen. Stellen Sie also sicher, dass Sie sich der Discord anschließen. Ich hätte früher darüber sprechen sollen, aber darüber keine Sorgen. Lassen Sie uns dieses Video einfach beenden, damit ich helfen kann, zu markieren. Also scrolle ich hier rein. Ich erstelle zwei neue Variablen. Der erste wird ein serialisiertes Feld in D-Dur sein und es wird der wütend als der Durchschnitt sein . Und lassen Sie es uns einfach auf 30 einstellen. Also 30 oder 40. Also haben wir uns verdoppelt, weil wir die Größe verdoppelt haben, wir verdoppeln den Schaden. Und ein serialisiertes Feld für den Schwimmer und die Wütenden im Radius. Und da sind wir los. Das sparen wir uns. Lass uns weitermachen und das entfernen. Und dann scrolle ich hier nach unten. Und übrigens, wenn du willst, kannst du auch hier den Angriffsradius ziehen. Also der wütende Angriffsradius, werde ich nicht tun. Ich glaube nicht, dass das notwendig ist. Ich werde hier nur eine neue Methode für den wütenden Angriff erstellen . Und es gibt eine andere Philosophie, oder einen anderen Weg tatsächlich genug, keine Philosophie, aber man kann Philosophie nennen, wenn man schick klingen will, wie ich es jetzt will, können wir, anstatt eine andere Methode zu machen, wir können die hier drinnen tatsächlich ändern, aber ich denke, es ist angemessener, eine neue Methode zu entwickeln, nur um keine Verwirrungen zu haben. So wütend auf die hintere Schicht. Und wir werden genau das Gleiche tun. Also hier drin ist eine andere Sache, die wir tun können, vielleicht einfach diesen Teil einer allgemeinen Variablen zu machen , nur wir keinen redundanten Code haben, aber wir werden diesen einfach kopieren einfügen hier, und wir werden den Druck hier entfernen. Und hier drin. Dies war nur zu Debugging-Zwecken. Ich empfehle Ihnen immer, das ganze Debug-Punkt-Protokoll zu verwenden. Und anstelle des Schadensbetrags werden wir den wütenden Schadensbetrag verwenden. Und statt des Angriffsradius, des wütenden Angriffsradius, speichern wir das. Wir gehen zurück in unser Spiel. Wir überprüfen die Animationen des Skelly Boss. Der wütende, wütende Angriff, wütender Angriff. Es ist also der erste, der Hang und die Szenen. Wir greifen wütend und auf dem Schwung an. Da sind wir los. Also hier drin fügen wir eine Veranstaltung hinzu. Wir nennen den wütenden Angriff. Und jetzt schwingen wir genau hier runter. Wir fügen ein weiteres Event hinzu und wir machen den wütenden Angriffsspieler. Also spar dir das auf. Gehen wir auch zum Where Z Disc Lehrplan. Scrollen Sie den wütenden Angriffsradius , dieser war drei, das ist das 16. Sag das vielleicht, selbst wenn es nicht sehr logisch ist, wenn wir den Boden haben, stell dir vor, als hätten wir eine Art, ich weiß nicht , vielleicht etwas Kraftfeld oder so. Ich weiß es nicht. Jetzt sparen wir das alles. Wir führen das Spiel durch und wir sollten sehen, dass er jetzt wütend wird und absolut nichts tut , weil wir etwas vergessen haben. Wenn wir zum Animator gehen, können wir sehen, dass wütendes Gehen kein Verhalten hat. Versuchen wir also, das Gehen so hinzuzufügen. Nein, es funktioniert nicht im Verhalten. Und wir werden nur der Boss laufen. Da sind wir los. Jetzt haben wir eine Angriffsreichweite und lassen Sie es uns ein bisschen größer machen. Also vielleicht vier, weil e größer ist und die Geschwindigkeit vier wird, sag das, führe das Spiel aus. Und jetzt sollten wir sehen, dass er wütend wird und jetzt ist er schneller. Wie Sie sehen können, gehen wir los. Das ist Angriff. Es ist viel schneller bei Deals, viel mehr Schaden und er ist ein bisschen schneller. Vielleicht machen wir ihn noch schneller, indem wir 50 hinzufügen. Oh nein, nein, nein, nein, niedrig. Du. Da sind wir los. Wie Sie sehen können, ist er offensichtlich wirklich wütend, wenn der Chef wütend ist. Aber es gibt ein Problem. Sie haben vielleicht bemerkt, dass es nicht sehr schwer war , es nicht zu bemerken , dass wir sofort zum eckigen Steak gehen und das ist nicht etwas, was wir wollen, aber das ist etwas, das wir mehr Kontrolle haben werden einmal haben wir ein Gesundheitssystem für unseren Chef, was wir im nächsten Video tun werden. Stellen Sie also sicher, dass Sie Ihre Änderungen übernehmen und wir sehen uns im nächsten. 92. Hinzufügen von Boss: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video werden wir die Ebene schaffen, ich meine, der Boss nimmt Schaden. Wenn wir also das Spiel starten, das Skelly angezogen wird, scrollen Sie nach unten. Sie können jetzt sehen, dass er eine maximale Gesundheit des Chefs und einen aktuellen Gesundheitszustand des Busses hat . Also sollte ich ihn, sobald du merkst, dass er vier wird. Warum wird er vier? Ich meine, warum wird er wütend? Weil wir ihn auf halbem Weg durch seine Hilfe wütend machen werden. Wenn seine Gesundheit auf halbem Weg ist, wird er wütend. Wir erschießen ihn nochmal. Wir sollten das letzte Mal schließen. Wie Sie sehen können, stirbt er und er verschwindet und das Ende. Verschwenden wir also keine Zeit mehr und fangen wir an. Oh, Fall. Also Zeit, unserem Chef eine BRAF-Gesundheit hinzuzufügen. Also lasst uns weitermachen und loslegen. Das erste, was wir tun werden, ist, vom wütenden Gehen zum Sterben zu gehen. Und wir werden hier einen Auslöser schaffen, der als Würfel bezeichnet wird, und die Bedingungen hier drin setzen, um zu sterben. Und dann scrollen wir nach unten. Und hier, wo wir laufen, um wütend zu werden, wir eine Bedingung hinzufügen und sie als den Fall „Wütend Trigger 0“ festlegen . Da das aus dem Weg ist, denke ich, dass das alles ist, was wir einrichten mussten , bevor wir anfangen. Also gehe ich in den Boss-Skriptordner und klicke mit der rechten Maustaste und erstelle ein neues C Sharp-Skript namens Boss Health Handler. Drücken Sie Enter und warten Sie, bis es kompiliert ist. Und wir ziehen es in diesen Kelly-Boss. Warum machen wir es hier drin? Nun, denn Sterben ist oder der Boss Health Handler oder die gesamte Gesundheit Teil des gesamten Chefs ist. Es ist nicht für einen einzigen Staat angegeben, genau wie wir sagten, es ist für den ganzen Chef und es wird ziemlich einfach sein. Zuallererst werde ich hier ein serialisiertes Feld erstellen, das eine ganze Zahl und der Chef sein wird, maximale Gesundheit, und es wird 500 sein. Und dann werden wir eine öffentliche aktuelle Gesundheit schaffen. Und offensichtlich werden wir das später ändern. Also Chef, aktuelle Gesundheit, spar das. Und dann und fange an. Wir werden nur sagen, dass die aktuelle Gesundheit der Chefs gleich der maximalen Gesundheit der Chefs ist . Richtig? Jetzt müssen wir eine Methode entwickeln, die es uns ermöglicht , unserem Chef Schaden zuzufügen. Dafür zeige ich es dir als Herausforderung, weil wir das bereits getan haben. Also lass den Boss Schaden erleiden. Zuallererst müssen Sie die variable Qualität maximale Gesundheit und die aktuelle Gesundheit erstellen . Offensichtlich habe ich mich nicht richtig vorbereitet, weil ich dachte, du hättest das alleine machen sollen. Aber da gehst du. Ein zusätzlicher Schritt von mir für dich. Lassen Sie uns weitermachen und beginnen mit der aktuellen extra intelligenten Gesundheitsbewegung von mir und erstellen Sie dann eine Methode, die es dem Boss ermöglicht, basierend auf einem Parameter Schaden zu erleiden. Endlich etwas Neues für dich zu tun. Wenn Gesundheit die Hälfte der maximalen Gesundheit ist, müssen wir in die sterbende Animation übergehen. Ups, ich sage Sterben. Ich wollte sagen, warte auf die Magie des Editierens. Hey, du Willkommen zurück. Erstellen Sie also eine Methode, die es dem Chef ermöglicht, Schaden zu erleiden, wenn Gesundheit den maximalen Gesundheitsübergang in die wütende Animation hat . Sie wissen also, was zu tun ist, wenn das Herz bei 0 ist, wechseln Sie zur sterbenden Animation und zerstören sie schließlich beide mit einem Ereignissystem. das Video jetzt mit all diesen Informationen Pausieren Sie das Video jetzt mit all diesen Informationen. Mach keine Fehler wie ich. Und mach weiter und mach die Herausforderung. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Also hier drin werde ich eine öffentliche Leere schaffen. Der Schaden war eine Ganzzahl, die Höhe des Schadens. Das ist alles ziemlich einfach. Ich glaube, du weißt schon, wie man alles macht. Also hier drin werde ich sagen, ich werde sagen, dass die aktuelle Gesundheit der Chefs minus der Höhe des Schadens entspricht. Dann werde ich sagen, ob die Chefs aktuelle Gesundheit weniger als oder gleich, kleiner oder gleich der maximalen Gesundheit des Chefs, Bus, maximaler Gesundheit geteilt durch zwei. Das bedeutet also, dass wir auf halbem Weg in seine Gesundheit sind. Dann holen wir uns die Komponente, den Animator. Und er könnte reden. Danke. Und wir werden den Auslöser einstellen. Und wir werden wütend werden. Also lasst uns in unseren Animator gehen und lassen Sie uns die Wut wieder hier drin kopieren. Füge es genau hier ein. Da sind wir los. Jetzt werden wir also wütend. Und dann werden wir weitermachen und sagen, wenn der aktuelle Gesundheitszustand des Chefs kleiner oder gleich 0 ist, dann werden wir hier drin dasselbe tun, aber anstatt wütend zu werden, werden wir sterben. Exzellent. Also dy, also werden wir jetzt eine Methode erstellen, um zu sterben. Also hier drin sage ich ungültig, zerstöre, zerstöre den Boss. Und wir werden einfach das Spielobjekt zerstören. Und wo sollen wir das nennen? Lassen Sie uns diesen veröffentlichen, nur für den Fall, dass wir vom Ereignissystem aus darauf zugreifen können. Während das Ereignissystem, wenn ich darauf klicke, Kelly, zu den Animationen gehen, sterben wir. Was haben wir hier drin? Mal sehen, in den Szenen gehen wir los. Also haben wir diese Pfütze ABA, kein Knochenblut oder so. Und wir sollten das offensichtlich ein bisschen rot machen. Und vielleicht behalte es an dieser Stelle einfach ein paar Sekunden. Und dann fügen wir ein Ereignissystem hinzu. Oder vielleicht wissen wir was. Bringen wir es auf die zweite zweite. Und hier drin zerstören wir den Boss. In der Animation sterben wir und dann zerstören wir den Boss. Hervorragend, spar dir das alles auf. Mal sehen, was wir sonst noch haben? Oh, offensichtlich müssen wir auch diesen Schaden auslösen. Wo nennen wir die Reise Schaden nehmen? Nun, wenn wir in die Ebene gehen, haben Sie eine Kugel. Wenn ich das öffne und den Spieler finde , sage ich „Spieler-Gesundheitskugel“. Ich meinte den Spieler Bullet Controller. Hier drin. Wir werden prüfen, ob wir den Feind haben, dann werden wir den Feind beschädigen. Mal sehen, haben wir eine Schicht für den Boss? Wir haben keinen Anwalt für den Chef, also lasst uns die Ebenen bearbeiten. Erstellen Sie eine Boss-Ebene oder erstellen Sie ein Boss-Tag. Das können wir auch tun. Oder vielleicht haben wir eine Chef-Tag-Notiz, dass wir Abels dunkel nicht haben, also lasst uns weitermachen und bearbeiten. Erstellen Sie ein Tags. Boss DAG. Da sind wir los. Wenn wir jetzt also hier reingehen, also jetzt, ist dies das perfekte Beispiel für Sie, um den Unterschied zwischen einem Tag und einer Ebene zu verstehen. Also denk dran wo. Okay, also erinnere ich mich nicht einmal daran vielleicht in den Stacheln hier drin, ich habe dir gesagt, dass wir es vermeiden können, den Vergleichs-Tag-Player zu verwenden. Wir können sofort sagen, dass Spikes eine Art Schadensschicht sind, also sind sie auf der Haben wir irgendetwas, die Pickups oder irgendetwas, zum Beispiel die Backups. So können wir vermeiden, das a-Tag zu verwenden , um es mit dem Player zu vergleichen , um sicherzustellen, dass nur der Layer es trägt. So kann nur der Spieler über Ebenen mit den Tonabnehmern interagieren. Wir müssen nicht nach einem verglichenen Tag für den Unternehmer suchen . Geben Sie ein. Denken Sie daran, dass ich darüber gesprochen habe, aber jetzt können wir im Bullet-Controller sagen, dass die Kugel nur mit dem Chef interagiert, aber das reicht nicht aus weil wir auch anders überprüfen wollen. Wenn es ein collision.com-Tag mit einem Boss gibt, müssen wir eine völlig andere Komponente oder eine völlig andere ja Komponente aufrufen eine völlig andere Komponente . Also zurück hier drin, mal sehen, ist der Lehrplan. Oh, wir haben die Tag-Sortierebene nicht erstellt. Nein, nein. Warum müssen wir Layer für den Chef sortieren? Das Etikett ist so Boss. Kopiere das. Jetzt tut es uns nicht leid, wir müssen das Boss-Tag setzen. Da sind wir los. Das sparen wir uns. Jetzt zurück in unserem Spiel suchen wir nach dem Boss. Und wenn es der Chef ist, dann werden wir die Kollision bekommen , die Komponente bekommt, den Chef-Gesundheitsbehandler. Und von hier aus werden wir Schaden erleiden und es wird die Geschossgeschwindigkeit sein. Nein, der Schadensbetrag. Also Schadensbetrag, spar das. Jetzt haben wir alles eingerichtet, also bin ich wirklich froh, dass das passiert ist. Dies ist eine Möglichkeit für dich zu demonstrieren. Wir hätten sagen können, dass wir eine Kugelschicht haben, eine Spielerkugelschicht, und es interagiert nur mit dem Boss und dem Feind. Aber wenn wir einen Feind treffen, der Boss nicht irgendein Feind. Er ist auch ein Chef-Gesundheitshandler. Also müssen wir auf die Gesundheit und den Chef zugreifen. Wenn wir versuchen, diesen zu benutzen, wird es nicht funktionieren. Es wird einen Fehler so gut verursachen dass Sie, obwohl Sie das speichern , auch diese beiden Zeilen kopieren können und wir sie hier einstellen können. Offensichtlich ist dies also redundanter Code. Was wir also tun können, ist mit der rechten Maustaste und hier schnelle Aktionen und Refactoring, und wir können sagen, dass wir Bluteffekt erzeugen, die Methode extrahieren, sie als instanziierten Bluteffekt bezeichnen. Und ich schreibe instanziieren richtig ist Dan Shi Da. Ja, da sind wir los. Wenden Sie die Änderungen an und hier werden wir den Bluteffekt instanziieren. Spar dir das auf. Jetzt jetzt sollte unser Spiel nicht einwandfrei funktionieren. Wenn ich also auf dieses Kaliber klicke, scrolle nach unten und der Chef Mac South, machen wir es 20. Äh, nein, nein, nicht 20, vielleicht 40, nur damit wir die Übergänge richtig sehen können . Wir führen das Spiel aus. Also jetzt kommt der Boss hoch. Wir erschießen ihn einmal und ich möchte das Spiel nicht wieder maximieren. Wer sollte der Boss? Wo Z? Also sollten wir den Boss. Scrollen wir nach unten. Was ist seine Gesundheit aktuell gesundheitlich, die Bücher. Also so eine neue Kugel. Und okay, dieser Fehler ist also nichts, auch weil der Kristall irgendeine Art Schaden hat. Okay, also werde ich diese vier statt 40 machen. Weißt du was, lass uns acht machen. Führe das Spiel aus. Das System ist sehr schlecht, also sollten wir sofort gehen, wir scrollen nach unten, es ist um sechs. Wir sollten, äh, zweimal. Da sind wir los. Wir können sehen, dass er wütend wird und jetzt läuft er viel schneller. Also erschießen wir ihn nochmal. Wir sollten ihn zum letzten Mal. Und da sind wir los. Er geht in die Flasche und stirbt. Aber es stimmt etwas nicht, aber ich habe es nicht getan, als hättest du es vielleicht nicht gesehen, weil ich es nicht getan habe. Aber wenn wir ihn einmal erschießen, ihn zweimal erschießen, wird er wütend. Ich kann ihn immer noch erschießen. Und da gehst du. Man sieht, dass er immer noch angeschossen wird und sofort stirbt nachdem er zum Gehen übergegangen ist. Im nächsten Video werden wir also sicherstellen, dass er unbesiegbar ist , während er wütend wird. Und nur um mich daran zu erinnern, werde ich hier einen Kommentar hinzufügen und, weißt du was, lass uns sofort richtig machen . Wenn es wütend wird, sollte das nicht funktionieren. Und dies ist nur ein Beweis dafür, wie manchmal Sie in Zukunft etwas hinzufügen möchten, nur damit Sie es nicht vergessen. Fügen Sie einen Kommentar hinzu und stellen Sie sicher, dass es funktioniert. Ich hoffe, es hat dir gefallen. Dies war ein wirklich schönes Video, das es als wichtige Lektion für den Unterschied zwischen Tags und Ebenen hielt das es als wichtige Lektion , weil es manchmal schwer zu erklären ist, aber dies war der perfekte Ort, um es zu lernen. Also hoffe ich, es gefällt dir. Ich hoffe, du begehst deine Änderungen und wir sehen uns im nächsten. 93. Chef Health: Willkommen zurück, Meine Lieblingsspielentwickler. Wie Sie sehen können, haben wir in diesem Video ein kleines Bild hinzugefügt, wir haben ein bisschen Text hinzugefügt und eine große Gesundheitsleiste hinzugefügt, und eine große Gesundheitsleiste hinzugefügt um die Gesundheit unseres Chefs darzustellen. Jetzt, wenn wir das Spiel laufen, wenn der Boss erscheint, erschießen wir ihn. Man sieht, dass sein Leben erschöpft ist. Wenn wir ihn noch einmal erschießen, ist er wütend. Und wenn wir ihn erschießen, während er wütend ist, wirst du feststellen, dass er keinen Schaden ertragen kann. Und das ist eine Mechanik jedes Boss und jedes einzelnen Spiels. Also erschieße ich ihn wieder, ich habe es ihm wieder gezeigt, der Health Bot verschwindet, der Boss stirbt. Und verschwenden wir keine Zeit mehr mit einem sehr langen Video, aber lassen Sie mich, es ist wichtig, und das passiert, wenn wir Ihre Augen erschaffen. Also lasst uns anfangen. Okay, jetzt funktioniert alles irgendwie gut. Wir können den Boss beschädigen. Wir können ihn töten, wir können ihn entfernen, aber wir haben keine Ahnung, wo seine Gesundheit hinzukommt. Was wir also tun werden, ist, dass wir einen Helfer für den Boss schaffen werden. Also gehe ich hier rein. Und in diesem Video denke ich, dass es etwas gibt, das Sie selbst wählen können. Es gibt also zwei Arten von Gesundheitsbars, die Sie dem Chef hinzufügen können. Einer von ihnen wird zum Beispiel sein, wenn Sie möchten, dass die Health Bar immer mit dem Chef in Bewegung ist. Aber ich persönlich denke, dass das nicht die beste Idee ist, denn Sie möchten, Ihre regelmäßigen Feinde diesen Gesundheitsbalken auf dem Kopf haben dass Ihre regelmäßigen Feinde diesen Gesundheitsbalken auf dem Kopf haben. Vielleicht ist es besser, einen Boss Health Bar zu haben , irgendwie wie Dark Souls zu sein, entweder unten oder oben. Und weil wir bereits die Gesundheit und das Geld und die Waffen auf der Unterseite haben, die für den Spieler ausgestellt werden können. Dann erstelle ich es hier oben. Also öffne ich den UI-Canvas. Ich eröffne die Gesundheit, ich hole den Gesundheits-Schieberegler. Und wir wissen, welche Kürzungen die gesundheitlichen Auswirkungen für den Chef nicht genutzt haben. Ich dupliziere es. Und ich verschiebe es nach draußen. Und ich muss die Prefabs öffnen und ich muss das verschieben, wo ist es? Gesundheit, Slider und draußen genau hier. Speichere das wieder in unser Spiel. Jetzt haben wir einen Gesundheitsschieber 1, der auch zufällig ein I ist. Entfernen Sie den eigentlichen Schieberegler haben ja. Öffnen Sie einen kurzen Aufschlag. Tut mir so leid. Hätte den anderen Health-Schieberegler verschieben sollen. Also los geht's. Dieser ist hier drin. Und dann dupliziere ich das hier. Und ich verschiebe diesen aus der Leinwand. Und derjenige, den wir größer haben als hier, können wir einfach löschen. Wo ist der Health-Schieberegler? Da sind wir los. Dies ist diejenige, die wir brauchen. Mal sehen, schieb das nach oben. Das wird der Boss sein. Habe Schieberegler. Da sind wir los. Und ich werde einfach weitermachen und vielleicht ein leeres Spielobjekt direkt hier erstellen , es nach draußen stellen. Also der Boss Slide, ich kenne dieses Spielobjekt auf den Campus. Falsche Gesundheit. Und dann füge der Chef den Schieberegler unter der Boss-Gesundheit hinzu. Das ist also sehr nervig, wenn Sie ein Prefab haben indem Sie es ändern möchten, es ist extrem nervig. Selbst wenn ich das bewege, muss ich es immer noch hier ändern. Also US-Gesundheit, Schieberegler und dann die Benutzeroberfläche und das leere Spielobjekt, das ist die Gesundheit des Chefs. Während der Boss das getan hat. Und lassen Sie uns den Schieberegler zum Chef Health bewegen. Und lassen Sie uns die Position auf 0, 0 einstellen . Und da sind wir los. Jetzt haben wir den Boss-Schieberegler. Wir arbeiten im Prefab. Also hier drin möchte ich das auch ein bisschen größer machen. Also wenn ich reinzoome und mal sehen, was wir hier drin haben. Mach das an der Seite größer. Machen Sie das auf der Website größer. Auch. Bewegen Sie es ein bisschen nach oben. Und ich werde einfach weitermachen. Und wenn du willst, kannst du es selbst machen. Fülle alles aus. Mal sehen wir uns all die kleinen Anpassungen an. Das wird ein bisschen gut dauern wann immer du es bist, ich glaube, du bist es. Deshalb sind die Videos, in denen wir dich haben , länger als gewöhnlich. Also los geht's. Ich denke, das ist gut genug. Ja, scheint mir gut zu sein. Und schließlich möchte ich ein bisschen Bild hinzufügen. Also gehe ich ins UI-Image. Und dieses Bild wird das Boss-Image haben. Und wir können hier auch den Bossnamen hinzufügen. Also füge ich einen Text-Mesh-Sonde hinzu. Und das wird Kelly sein. Mach es fett, mach es in der Mitte. Mach es mutig, mach es zu einem Roboter. Und lass uns Nein, nein, nein. Und lass es uns vielleicht bewegen. Du entweder unter oder vorbei. Es spielt keine Rolle. Wählen Sie Ihre eigene Art, dies zu erstellen. Ich mache es zur automatischen Größe. Und da sind wir los. Also Kelly, los geht's, Skelly und hier wird das Bild den Boss repräsentieren. Also werde ich in den Sprites, das Z, finden , während diese Schokoriegel da sind. Also Bild, Skelly und native auf native Größe eingestellt. Lassen Sie uns das Seitenverhältnis beibehalten. Und lass es uns viel, viel kleiner aussehen lassen. Und vielleicht setze es hier rein und weiß was, vielleicht ist dies nicht der beste Weg, dies zu tun. Vielleicht kannst du einfach den Kopf behalten, damit du weißt was, lass mich das einfach löschen oder warte eine Sekunde und ich werde dieses Foto bearbeiten. Okay, willkommen zurück. Alles, was ich getan habe, ist nur dieses Foto zu bearbeiten und Sie werden es wahrscheinlich in Ihren Ressourcen haben. Also füge ich es hier hinzu. Und das Busbild wird das Skelett sein. Also los geht's. Jetzt haben wir das. Ich weiß, dass das nicht viel ist, es macht das Spiel nicht wirklich viel besser, aber es fügt nur ein bisschen Finanzen hinzu. Sie wissen also, dass diese Gesundheitsbar dem Skelly Boss gehört und Sie ein kleines Bild von seinem Kopf haben. Jetzt haben wir eine gute Vertretung. Also, wenn ich jetzt vom Prefab zurückgehe und aus irgendeinem Grund ist es nicht an seinem Platz. Wir haben die Chefgesundheit. Lasst uns das einfach löschen. Behalte das beide Gesundheit. Und aus irgendeinem Grund war es nicht an seinem Platz. Ich gehe zu Slider und setze die Position 0, 0. Und jetzt haben wir es richtig. Und passen wir die Position ein wenig an. Und da sind wir los. Jetzt haben wir die beiden. Skelly Gesundheit. Lasst es uns einfach ein bisschen nach links bewegen. Und ich denke, es ist gerade ziemlich gut. Das ist also die Hilfe, die wir beim Chef sehen können, wenn du willst. Wir können auch das Bild der Füllung ändern. Also will ich nicht, dass es rot ist. Vielleicht möchte ich, dass es es in den Sprites hat. Mal sehen. Du hast dein Auge. Du bist du, bist du Ich-Elemente. Ich habe die EU gedrängt, aber das habe ich nicht verstanden. Okay, also gehe ich in die UI-Elemente und hole mir das blaue. Also benutzen wir den blauen. Bild. Das Blau, nein, nein, nein, nein, nicht dieses. Bereich ausfüllen. Füllen Sie den blauen Schieberegler aus. Okay. Jetzt bewegt sich der blaue Schieberegler auf und ab. Und wie gesagt, dieser ganze Abschnitt oder dieses ganze Video müssen Sie selbst recherchieren. Sie müssen Ihre eigene Benutzeroberfläche erstellen, und Sie müssen die Dinge so tun, wie Sie es möchten. Oh, okay. Also denke ich, dass das gut genug ist. Ich bin mir nicht sicher, ob es gut genug ist. Und es gibt ein bisschen von den Kanten sind nicht sehr glatt, aber keine Sorgen darüber, solange es die Dinge richtig repräsentiert. Jetzt haben wir also die Gesundheit. Das nächste, was wir tun müssen, ist die Kontrolle darüber zu haben. Also gehe ich in die Gesundheit der Chefs, ich gehe ins Drehbuch. Und in der UI oder Nano tatsächlich im Boss. Da sind wir los. Klicken Sie mit der rechten Maustaste auf C-Sharp-Skript erstellen, und dies ist die Chef-Gesundheitsleiste bei Enter Warte, bis es kompiliert wurde. Und jeden Tag haben wir jetzt den Chef hilflos, um es der Chefgesundheit hinzuzufügen , die die Boss Health Bar eröffnet hat. Und was müssen wir hier drin haben? Nun, offensichtlich wollen wir einen Verweis auf den Schieberegler. Also serialisierter Feld-Schieberegler, müssen wir eine UI-Engine haben, Unity Engine Punkt u. Also jetzt können wir den Schieberegler haben, dann haben wir den Boss-Gesundheits-Schieberegler dann hier drin. Also das erste, was wir tun, sobald wir anfangen, da wir den maximalen Wert festlegen müssen, offensichtlich. Der Boss hat also Schiebereglerpunkt Maximalwert ist gleich Objekte des Typs zu finden. Und es wird der Chef-Gesundheits-Handler sein. Und vom Chef-Gesundheitshandler müssen wir die maximale Gesundheit bekommen. Also gehen wir in den Chef Health Handler. Und hier erstellen Sie eine kleine Methode, die eine öffentliche Int sein wird. Holen Sie sich maximale Gesundheit oder erhalten Sie die maximale Gesundheit des Chefs. Öffne die Klammern, gib Max zurück, habe. Wir speichern das. Wieder hier drin. Hol Boss, Max, Gesundheit. Das sparen wir. Jetzt werden wir in das Update schieben, es schieben, weil wir einen Schieberegler verwenden oder wie oft auf einen Schieberegler warten. Also ein Update, das wir ständig machen werden, um den Hub-Verlust zu erhalten, hat Schieberegler-Punktwert und es wird gleich sein, um Objekte vom Typ, Gesundheitshandler, Chef, Gesundheitshandler zu finden . Und wir werden die Strömung bekommen. Also werde ich das duplizieren. Holen Sie sich Boss, aktuelle Gesundheit, aktuelle Gesundheit, speichern Sie das. Dies ist also nur eine Rückgabemethode von Integer. Nichts zu kompliziert. Holen Sie sich also ständig die aktuelle Gesundheit des Chefs. Und jetzt lassen Sie uns den Schieberegler zuweisen. Also mach das auf. Der Schieberegler und die Arbeit sind der Schieberegler. Dieser ist die Schieberegler, die all das speichern. Machen wir das ein bisschen größer, führe das Spiel aus. Jetzt sollten wir sehen, wie der Gesundheitsschieber die Feinde beide bewegt , damit du ihn erschießt. Da sind wir los. Wie Sie sehen können, wird seine Gesundheit kleiner und er wird wütend über die Hälfte unseres Spiels. Schließlich, wenn wir sie das letzte Mal erschießen, stirbt er. Aber wir haben immer noch diese gesundheitliche Rinde. Und nicht nur das, wir haben diesen kleinen Fehler hier drin, eigentlich kein kleiner Fehler, ein ständiger Fehler. Also werde ich es zusammenbrechen. Doppelklicken Sie hier rein und sehen Sie, was das Problem ist. Finde Objekte des Typs. Dies ist also eine Nullreferenz. Null-Referenz bedeutet, dass wir versuchen , einen Verweis auf etwas zu erhalten , das nicht existiert oder die Rückkehr nicht der Fall ist. Also hier drin haben wir den Chef-Gesundheits-Handler. Und wenn wir sterben, zerstören wir den Boss. Und wenn wir den Boss zerstören, zielt der Boss Health Handler William ab. Wir müssen also eine Lösung dafür finden, und das wird Ihre Herausforderung sein. Ihre Herausforderung besteht darin, die Health Bar zu entfernen und den Boss unbesiegbar zu machen. Vielleicht besteht Ihre Herausforderung nicht darin, den Fehler zu beheben. Wie auch immer, mal sehen, was wir hier haben. Chef stirbt Sie zunächst sicher, dass der Gesundheitsbalken entfernt wird, wenn der , und beenden Sie den Fehler. Sie müssen offensichtlich die Gesundheitsleiste entfernen und das Bild und das Bild entfernen. Das müssen wir also nicht mehr jedes Mal anrufen. Dann musst du sicherstellen, dass wir ihn unbesiegbar machen wollen, wenn der Bus in den wütenden Zustand fährt . Wenn er also wütend wird, wollen wir ihn nicht erschießen können. Dies ist zuallererst nicht fair gegenüber dem Chef, weil er uns nicht angreifen oder sich bewegen kann, wenn er wütend wird. Zweitens, denn in jedem einzelnen Spiel wenn ein Boss in die zweite Phase übergeht, kann man ihn nicht treffen. Das ist etwas Standard und alle Spiele. Also gebe ich dir einen Hinweis wie du den letzten Teil machen kannst. Sie müssen dem Status „Wut“ Verhalten hinzufügen. Und wie ich Ihnen sagte, müssen wir das Problem des Fehlers beheben. Während offensichtlich, wenn wir das halbe Bellen tatsächlich deaktivieren nicht mehr Anrufe nach den Spielern hielten die Chefs Health Handler, so haben wir den Pfeil nicht mehr. also mit diesen Informationen Halten Sie also mit diesen Informationen das Video jetzt an und erledigen Sie die Herausforderung. Also, okay, willkommen zurück. Das erste, was wir tun werden, ist, dass wir ins Update gehen und hier. Und wir werden prüfen, ob der Punktwert des Boss-Gesundheitsschiebereglers kleiner oder gleich 0 ist, was bedeutet, dass wir das gesamte Spielobjekt zerstören werden . Jetzt müssen wir das Spielobjekt nicht zerstören. Wir können das Spielobjekt möglicherweise auf „aktiv “, „false“ setzen oder es auf „inaktiv“ setzen. Aber ich werde es nur zerstören damit wir sicherstellen, dass wir nichts mehr haben. Also spar dir das auf. Und dann gehen wir in den Chef Health Handler. Und hier werden wir eine Variable erstellen. Und diese Variable wird ein öffentlicher Bool sein und ist unbesiegbar. Und am Anfang wird es auf „false“ gesetzt oder weißt du was? Machen wir es nicht öffentlich. Machen wir es zu einem Privaten. Und wir werden hier eine Methode erstellen , die öffentlich sein wird, int oder nein, Eigentlich, tut mir leid, nichtig. Stellen Sie ein. Der Boss. Sogar subtil. Und es wird einen Parameter aufnehmen, der ein boolescher Wert ist. Und es wird sein, ist Skelly oder normal , nicht das ist der Boss in einem bestimmten Symbol. Und dann werden wir hier drin sagen, dass unbesiegbar gleich ist, ist Boss unbesiegbar. Spar dir das auf. Und hier drin, bevor wir Schaden nehmen, wie Sie sehen können, haben wir den Kommentar, wenn wir wütend werden, das sollte nicht funktionieren. Also werden wir sagen, wenn es unbesiegbar ist, werden wir helfen, dann werden wir einfach zurückkehren. Also bedeutet „Rückkehr“. Wenn wir zurückkehren, so wie wir die Rückgabewerte haben und hier, sobald wir zur Rückkehr gekommen sind, stoppt diese gesamte Methode. Also alles unter dieser Codezeile. Hier drin wird alles, was wir schreiben nach der Rückkehr nicht registriert. Und genau das machen wir hier drin. Wenn wir also hier Schaden erleiden, prüfen wir, ob er unbesiegbar ist. Wir öffnen das hier. Entschuldigung. Wir gehen in die Bedingung ein, wir führen die Rückkehr aus und keine dieser Zeilen wird ausgeführt. Also geben wir im Grunde einen Wert zurück, und da dies eine Lücke ist, können wir alles zurückgeben. Wenn es eine Ganzzahl keine Lücke wäre, könnten wir einfach 0 zurückgeben. Also werde ich das entfernen. Ich werde das alles retten. Und wie werden wir das ist unbesiegbar eigentlich einstellen? Ich gehe hier wieder rein. Ich habe das laufen lassen. Und lass uns das raus. Zuallererst die Health Bar. Also Shruti, sollten die Shruti. Sicher gehen wir los. Und wenn er diese Animation beendet hat, wird er sterben. Und Sie können sehen, dass wir keinen Gesundheitsbalken mehr haben und keine Fehler mehr haben. Exzellent. Das nächste, was zu tun ist, ist, in den Animator zu gehen und in den wütenden Zustand zu kommen. Und warum wird das nicht kleiner? Okay, also werde am Ende wütend, wir werden ein Verhalten hinzufügen. Wir werden es den Boss nennen, unterstreichen, wütend werden. Neues Skript, erstellen Sie eine Anzeige. Und offensichtlich wird es in den Vermögenswerten hier drin geschaffen, der Boss wird wütend. Ich verschiebe es in den Skripte-Boss-Ordner für die Datei oder wie auch immer du es nennen willst. So war es, da sind wir los. Also werden beide wütend. Mach das auf. Wie wir sehen können, werden wir die letzten beiden nicht brauchen. Und diese werden die Kontrolle KU sein. Strg-Taste, Sie können KU steuern. Also hier drin, was sollen wir tun? Wo sollten wir sicherstellen, dass der Chef unbesiegbar ist oder ihn einrichten? Nun, ich glaube, wir sollten es zunächst wahr machen, wenn wir in den Staat eintreten. Also gehe ich auf die Animator-Komponente zu. Jetzt haben wir Zugang zum Chef Health Handler. Und hier drin werden wir die Unbesiegbarkeit des Chefs auf wahr setzen . Und wenn wir dann beenden, dupliziere ich diese Zeile und schiebe sie nach unten. Und wenn wir den Staat verlassen, können wir wieder getroffen werden. Wie Sie sehen können, haben wir genau hier den Setboss unbesiegbar geschaffen. Wir haben einen Parameter, den wir senden müssen. Wir greifen mit der Komponente des Boss Health Handlers darauf zu, die auch beim Animator anwesend ist. Wir haben also beide Komponenten auf demselben Spielobjekt. Deshalb können wir auf den Animator zugreifen, eine Komponente bekommen, die der halbe Handler ist , der den Chef für die Unbesiegbarkeit für wahr erklärt hat. Und hier drin, als wir sagten, ist unbesiegbar für was auch immer der Chef ist, unbesiegbar, was auch immer der Parameter ist. Wenn es stimmt, kehrt es zurück. Wenn es falsch ist, kehren wir nicht zurück. Der Boss erleidet Schaden. Das sparen wir. Wir gehen zurück in unser Spiel. Wer war es. Also hier oben führen wir das Spiel aus. Wir sollten den Bus einmal, zweimal. Und Sie können genau hier sehen, dass er, obwohl er wütend ist, nicht beschädigt wird. Also habe ich ihn drei- bis viermal erschossen. Er wird nicht beschädigt. Schließlich erschieße ich ihn, er stirbt. Und da sind wir los. Wir hätten keine Fehler außer diesem, was meiner Meinung nach etwas ist , das uns nichts anbelangt, etwas über das Panel. Wir haben diese gute Zeit. Also gehen wir raus, wir werden sicherstellen, dass wir alle unsere Dateien inszenieren und jetzt eine Gesundheitsleiste erstellen. Ich hoffe, es hat Ihnen gefallen, entschuldigen Sie mich für das lange Video, aber das passiert, wenn wir eine Benutzeroberfläche erstellen. Dies alles basiert auf Ihren Vorlieben, wie Ihr Spiel aussehen soll. Und wir sehen uns im nächsten Video. Und ich glaube das letzte Video, in dem wir den Boss nach einer gewissen Zeit tatsächlich drehen lassen werden . Wir sehen uns dann. 94. Die Fähigkeit zum Fotografieren hinzufügen: Willkommen zurück, meine Spieleentwickler. Ich weiß, dass Sie an diesem Punkt wahrscheinlich Michael sagen, jedes einzelne Video, von dem Sie sagen, dass dies das längste Video ist, aber dies wird das längste Video sein. Ich hoffe, du freust dich darüber oder nicht. Ich weiß es nicht, aber dieses Video wird viel Optimierungen erfordern. Ich habe ein paar Fehler gemacht und sie dann vor Ort vor dir repariert. Du weißt also immer, dass ich so gut wie möglich transparent bin, also verschwende ich deine Zeit nicht mehr. Wir fangen an. Okay, jetzt haben wir einen Gesundheitsbalken. Wir haben Gesundheit, wir haben hauptsächlich Angriffe, wir gehen, wir haben Staatsmaschine, wir haben alles für unseren Chef, aber wir müssen auch ein bisschen wütend und Klammer oder Schießen hinzufügen . Also lasst uns weitermachen und das machen. Das erste, was wir tun müssen, ist, dass wir tatsächlich Punkte schaffen müssen , aus denen unser Chef schießen wird. Und ich zoome auf den Boss. Und die Art und Weise, wie die Schießerei funktioniert, ist, dass wir acht Punkte um den Boss haben werden. Vier werden die regulären Schießereien sein, und acht werden für die wütenden Schießereien sein. Wenn er wütend wird, schießt er mehr. Das ist logisch. Lass uns weitermachen und das machen. Klicken Sie mit der rechten Maustaste hier hinein und erstellen Sie leere Schießpunkte. Und hier drin werde ich den ersten erstellen, der 0,1 sein wird. Und lasst uns weitermachen und es hier oben oder direkt hier rechts von ihm bewegen. Dupliziere diesen. Und offensichtlich wird das nicht sehr praktisch sein. Also nenne ich das. Also 0.1.2, ich werde es auf den Kopf stellen. 0.3, beweg es hier runter. Und 0.4, beweg es genau hier. Jetzt, wenn wir unser Schießen oder die Mooskugel erschaffen werden , wird es sich in Richtung der Kugeln bewegen, oder? Also müssen wir alle diese und später drehen, aber im Moment duplizieren wir einfach die vier. Setze es hier rein. Vielleicht fast um diesen Punkt herum. Und dann wieder hier drin, 678. Also los geht's. Jetzt haben wir acht Punkte um unseren Boss. Nun, das nächste, was wir tun müssen, um die Verbindungen hier herzustellen. Also vom Gehen, einem Übergang zum Schießen und jedem Übergang vom Schießen zum Gehen. Und wir werden hier einen Trigger hinzufügen, der das Shooting sein wird. Und dann werden wir hier oben das Gleiche machen. Machen Sie also Übergang, kann Übergang sein. Lasst uns keine Ausstiegszeit haben. Und ja, behalte die Übergangsdauer so wie sie war. keine Sorgen. Das ist hier auch keine Ausstiegszeit, Übergangsdauer, die Stunde. Also haben wir vergessen, hier auch eine Bedingung hinzuzufügen. Die Bedingung ist also, dass sie auslösen sollten. Und hier ist die Bedingung als der Oh, Shoot Trigger. Und wenn wir dann zurückgehen, glaube ich, dass wir keine Ausstiegszeit haben müssen. Und auch hier drin glaube ich, dass wir keine Ausstiegszeit haben werden, aber wir werden die gesamte Animation abspielen und dann zurückgehen wollen . Oder vielleicht werden wir sehen, dass wir sehen, was passiert, wenn wir den Gewinn schaffen, was wir brauchen werden. Der nächste offensichtliche Schritt besteht darin, die Buskugel zu erstellen. Also klicke ich mit der rechten Maustaste in den Boss-Ordner. Und hier drin werde ich den Boss erschaffen. Kugel. Aufzählungen trafen Enter. Warte, bis das Skript kompiliert wurde. Und doppelklicken und öffnen wir es. Und was werden wir hier drin tun während wir das Offensichtliche tun werden? Das erste ist also, wir offensichtlich ein Schwimmer für die Geschwindigkeit sein werden. Und dann werden wir tatsächlich einen privaten Vektor 2 oder Vektor 3 für die Kugelrichtung haben. Dann werden wir 14 zum Thalamusschaden haben. Dies sollte eine Ganzzahl sein. Okay, großartig. Jetzt werden wir am Anfang die Richtung der Kugel einstellen und es wird Blutrichtung gleich transformieren Punkt, oder? Also richtig heißt, wenn wir hier reinschauen, die rote Achse auf der Transformation, wenn wir nach oben gehen. Also habe ich das vielleicht zu schnell gemacht. Also die rote Achse der Transformation und der Weltraum. Also wieder in der Szene. Und beachte, dass dies die rote Achse ist. Zum Beispiel wird der zur Kugel nach rechts fliegen. Was wir also tun müssen, da wir es so drehen müssen , glaube ich. Also. Da sind wir los. Wir können sehen, dass es auf 90 Grad eingestellt wird. Also sagte der dritte bis 180 Grad der Punkt unten auf vielleicht 90 Grad? Nein, nein, nicht 90 Grad minus 90 Grad. Und wir haben diesen Punkt genau hier. Was sollen wir es einstellen? Mal sehen. Wenn Sie also kein guter Weg sind, ist das perfekt. Da sind wir los. Also 45, glaube ich. Ja, 45 ist gut für die Sechs. Das sollte minus 45 sein. Da sind wir los. Lass es uns ändern. Aber damit du herumspielen kannst, du kannst tun, was du willst und wie du willst. Wenn Sie möchten, können Sie alle Schusspositionen so einstellen , dass sie in eine Richtung liegen. Vielleicht gefällt das so. Ja, klar. Warum nicht? Also los geht's. Es sollte also ein 135 sein. Und warum ist es 135? Nun, weil ich 90 Grad hinzugefügt und dann eine 45 hinzugefügt habe. Das ist einhundertzehnhundert geht weiter. Jetzt haben wir einen perfekten Winkel und das wären 135. Ja, da sind wir los. Jetzt haben wir wirklich gute Tooling-Punkte von unserem Chef. Also werden wir das retten. Wir werden das kleiner machen. Und jetzt gehen wir zurück in unser Skript und sehen, was wir hier sonst noch tun müssen, ein Update. Ich werde weitermachen und die Position des Transformationspunkts erhalten und plus entspricht der Geschossrichtung mal der Geschwindigkeit. Und offensichtlich Time.Deltatime. Da sind wir los. Time.Deltatime stellt also sicher , dass wir, obwohl dies jedes einzelne Frame genannt wird, es mit time.Deltatime trennen. Als Nächstes werden wir prüfen, ob wir den Chef nicht in unserer Hierarchie haben. Wenn also die Boss-Controller-Punkt-Instanz eine Instanz , haben wir keine Instanz, also werden wir das meiste Objekt des Typs finden. Oder vielleicht sollten wir eine Instanz erstellen. Ich denke, es ist besser, oder wir bekommen einen Hinweis auf den Chef, was auch eine gute Idee ist. Aber weißt du was? Lass uns einfach den Boss und die Welt finden. So gut. Objekt des Typs, Boss-Controller. Und wenn er aktiv ist und Spielobjekt und aktiv ist, aktiv in der Hierarchie. Wenn er also nicht in der Hierarchie aktiv ist, wollen wir alle Kugeln zerstören , die bereits fliegen. Zerstöre Spielobjekte. Der Bolus wird also zerstört, sobald der Boss stirbt, wir wollen nicht, dass die Kugeln den Kunden behalten. Oder wenn du willst, können wir die Kugeln auf der Welt fliegen lassen. Es hängt von Ihren Vorlieben ab. Das nächste, was wir tun wollen, ist, dass wir damit umgehen wollen , wie die Kugeln mit der Welt interagieren werden. Und offensichtlich haben wir die Kugeln noch nicht geschaffen. Aber ich bin mir ziemlich sicher, dass du zu diesem Zeitpunkt schon das ganze Wissen kennst und hast. Also werde ich einen Unternehmer gründen, der in das und innerhalb dieses Entrepreneur Center eintritt . Ich werde, nun, ich wollte sagen, dass ich nach dem Spieler-Tag suchen wollte , aber wie wir wissen, werden wir bereits sicherstellen, dass die Kugeln nur mit einem Spieler kollidieren und sonst nichts. Kollisionspunkt bekommt also Komponente. Und wir werden nach dem Gesundheitshandler des Spielers suchen. Und wir werden den Spieler Schaden nehmen oder Schaden nehmen. Und bei diesem Schadensspieler werden wir einen Kugelschaden zentriert, der den Geschossschaden zentriert hat, den wir nicht hier haben . Wir können doppelklicken und sicherstellen , dass wir damit arbeiten. Und was sollen wir dann tun? Nun, ich glaube, wir sollten das Spielobjekt zerstören. Aber das Problem hier drin, das mir nicht gefällt , ist, dass wenn wir etwas anderes treffen, es nicht damit interagieren wird. Das Boot wird also für immer weiter fliegen. Also müssen wir noch einmal nach der Kollision suchen. Wenn also collision.com Tag gepaart ist und es die Ebene ist, dann werden wir das tun. Und wenn wir nur eine Codezeile unter der Bedingung haben , können wir vermeiden, die beiden scharfen Zeilen zu verwenden. Und warum habe ich mich erneut dafür entschieden, das Tag zu erstellen und es nicht einfach so zu behalten, wie es war, weil die Kugel davonfliegt. Wir wollten auf jeden Fall gegen eine Mauer schlagen, um zerstört zu werden, weil wir nicht wollen, dass die Kugel immer weiter in der Welt fliegt und viele Kugeln und die Hierarchie hat , die einfach Platz beanspruchen und den Leistung unserer Maschine. Also endlich, was sollten wir sonst noch tun? Ich glaube, das ist alles, und ich glaube, das ist alles. Also lasst uns unsere Kugel erschaffen. Wo sind unsere Kugeln im Prefab? Wir haben Kugeln, wir haben eine AMI-Kugeln oder nein, wir wollen die feindlichen Kugeln nicht replizieren. Lass uns hineingehen, weißt du, ich gehe. Pullets Spieler und noch Gewehr, Schusswaffe. Lass uns weitermachen und die Schrotflinte namens S1 duplizieren, die Bosskugel bei Enter. Und mal sehen, was wir hier verwenden sollen , um die Sprites zu sehen. Wir können eine davon benutzen und vielleicht den großen, riesigen roten benutzen. Ja, klar. Warum nicht? Lass uns das große riesige rote benutzen. Mal sehen, wie das auf der Welt aussieht. Also zurück im Boss-Prefab? Oder ist es lieber Bullets-Spieler? Bringen wir es nach draußen. Also hier drin haben wir die Bosskugel. Lasst es uns in die Szene setzen. Da sind wir los. Das ist es. Was sollten wir tun? Kugeln ist natürlich auf der Bullets-Ebene. Mal sehen was wir sonst noch haben? Was machen wir hier drin? Ich glaube, die Kugel ist nur ein bisschen kleiner. Skaliere auch eins auf dem X. Und anstatt weniger Veränderungen zu haben, vielleicht der Collider, wie? Weil der Collider nicht, es ist perfekt. Lass uns den Schaden der Spielerkugel sehen. Offensichtlich werden wir die Komponente entfernen und wir werden unseren eigenen hinzufügen, der Boss-Bullet-Controller ist. Da sind wir los. Jetzt haben wir den Boss Bullet Controller, den Schadensbetrag, den Angriffspunkt. Beachten Sie, dass dies eine Bosskontrolle ist oder nicht. Ich habe mich gefragt wie was, was ist los mit dieser Chefkugel? Bosskugeln. Da sind wir los. Jetzt haben wir also Geschwindigkeit, die tierisch fünf sein sollte, Geschossschaden werden sein, kann das retten. Und wenn wir ein neues Prefab erstellen, machen Sie sich keine Sorgen, dieses wird entfernt oder wir können die Änderungen einfach auf die Bosskugel anwenden. Also zurück in unsere Möglichkeit hier drin, wenn wir nach unten scrollen und diesen eigentlich den Chef auswählen, aber Sie können alles anwenden. Und jetzt arbeiten wir die Kugel regelmäßig. Also schätze ich, das ist eine gute Kugel für uns. Also lösche ich die Bosskugel. Jetzt haben wir es in unserer Hierarchie. Wir haben das Skript, wir haben den Collider, wir haben einen starren Körper, der wichtig ist, der all das rettet. Und mal sehen, was wir sonst noch tun müssen? Nun wird dazu führen, dass Sie eine Herausforderung ausstellen. Und deine Herausforderung besteht darin, den Boss zum Schießen zu bringen. Erstellen Sie also zunächst einen Hinweis auf die Schießpunkte und die wütenden Schießpunkte. Sie müssen also hier zwei Referenzen erstellen. Und das wird offensichtlich alles passieren. Und der Chef-Controller, dann musst du einen Verweis auf die Bosse Kugel bekommen. Offensichtlich müssen Sie eine Methode erstellen, die alle Punkte mit einer foreach-Schleife durchläuft alle Punkte mit und die Aufzählungszeichen instanziiert. Dann musst du eine andere Methode für das wütende Schießen erstellen . Und Sie müssen die Ereignisse verwenden, um die Methoden und Animationen aufzurufen , damit Informationen das Video jetzt pausieren, all dies muss erledigt werden und der Chef-Controller und die Herausforderung erledigen. Oh, okay, willkommen zurück. Also wo sind wir Chef, Boss Controller hier oben, wir werden weitermachen und ein serialisiertes Feld des Transformulars erstellen. Dies wird offensichtlich ein Array für die Schießpunkte sein. Dann werden wir ein serialisiertes Feld für die Transformation schaffen , auch die wütenden Schießpunkte. Und dann werden wir ein serialisiertes Feld für das Spielobjekt erstellen , welches die Bosskugel ist. Und ich hoffe, du hast die Herausforderung bewältigt. Ich hoffe, es war zu diesem Zeitpunkt nicht allzu schwer, Sie sollten sich mit allem, was wir tun, ziemlich gut auskennen. Es wird also nichts wirklich gewusst. Deshalb gehe ich einfach die Bewegung durch und mache alles sehr schnell, nicht erkläre. Ich bin mir ziemlich sicher, dass Sie die meisten Dinge, die wir hier gemacht haben, bereits wissen . Lass uns weitermachen. Was müssen wir sonst noch tun? Nun, wir müssen die Methode erstellen, die wir wollen. Hier drin, unter dem angreifenden Spieler, werde ich einen öffentlichen, ungültigen Schießspieler erstellen. Und hier drin erstelle ich eine für jede Schleife oder eine für jede Schleife, die den gesamten transformierten Punkt durchläuft. Und schießender Spieler. Was? Ich schieße Punkte. In Schießpunkten. Und hier drinnen instanziieren wir die Bosskugel auf die Transformation der Transformationspunkt-Transformationsdrehung. Wir müssen also sicherstellen, dass wir die gleiche Rotation haben wie mit dem eigentlichen Schießpunkt , der instanziiert. Dann müssen wir eine öffentliche Lücke schaffen. Wütende Schüsse. Lassen Sie mich das einfach kopieren und auch wütend hinzufügen. Es fügt immer die Wütenden hinzu, wütend. Und ich weiß, dass dieses Video lang ist. Ich wollte diese in zwei Videos aufteilen. Eine für den Basel mit 14, die regulären Dreharbeiten. Aber eigentlich dachte ich nur, dass es keinen Sinn hat, nur ein Postulat zu erstellen. Ein ganz einfaches, das haben wir schon gemacht. Also wollte ich zwei Videos gleichzeitig erstellen. So wütende Schießpunkte. Da sind wir los. Das sparen wir uns. Jetzt kann jeder oder Sie einen zusätzlichen Mechaniker hinzufügen und ich empfehle Ihnen, das zu tun. Es ist ziemlich einfach. Anstatt diese Schießpunkte und wütenden Schießpunkte zu haben, können Sie einfach einen riesigen oder einen großen, nur die wütenden Schießpunkte erstellen . Und wenn wir regelmäßig statt eines für jeden schießen, können Sie eine for-Schleife erstellen, nach zufälligen Punkten durchgehen und Kugeln von ihnen instanziieren. Dies wird vielleicht ein cooler Spielmechaniker sein. Ich weiß nicht, ob du das machen willst. Sei mein Gast und lang. Und das habe ich nicht getan, weil ich eigentlich die Richtung b haben will und diese vier, oder du kannst das tun, spielt keine Rolle. Dies ist dein Spiel bei deinen eigenen Dingen. Also scrolle ich im Lehrplan nach unten. Und wo haben wir es? Okay, also Schießpunkte, öffne das. Ich bin's. Sperren Sie einfach die Skalierung ab und wählen Sie die ersten vier. Und das sind die regulären Schießpunkte und dann sind alles andere die wütenden Schießpunkte. Das ist die Bosskugel. Und heb dir das auf. Und schließlich müssen wir zu den Animationen der Dreharbeiten gehen . Also schießen, wo sollen wir schießen? Mal sehen und vielleicht hier drin. An dieser Position fügen wir also eine Veranstaltung hinzu. Lass uns das einfach freischalten. Was wir machen, Spieler zu schießen. Dann werden wir kleiner, größer. Vielleicht hatten wir an dieser Stelle wieder ein Event sollte Spieler sein. Und dann gehen wir vielleicht ein letztes Mal zurück und hier schießen wir den Spieler. Also sollten wir dreimal spielen. Großartig. Also spar dir das auf. Jetzt, zurück in unserem Wutschießen, so wütendes Schießen, werden wir größer. Wir sollten hier noch mehr Schüsse machen. So wütender Schießspieler, werde größer, kleiner, größer. Warum werden wir nicht größer? Und in diesem Punkt weiß ich es nicht, aber offensichtlich haben wir hier einen kleinen Fehler gemacht, aber keine Sorge. Machen wir das zum eckigen Schießspieler größer, kleiner. Und ein anderes Ereignis. Angular Shooting Spieler größer, kleiner. Ich denke an dieser Stelle ist es gut. Keine Sorge um die Animation. Wir haben es nicht perfekt gemacht. Wütender Schießspieler. alles sparen wir. Jetzt haben wir alles eingerichtet. Das Letzte, was wir tun müssen, ist, dass wir tatsächlich in diese Schießerei gehen müssen. Und wie wollen wir diesen Mechaniker haben? Während ich denke, der beste Weg es zu tun. Wie sagen wir, dass die Chefs gehen, gehen, gehen, er kommt nicht zum Spieler. Der Spieler rennt ständig davon. Und nach einer gewissen Zeit fängt er einfach an, auf den Spieler zu schießen. Also werden wir genau das machen. Ich öffne den Boss Walk. Und hier drin werde ich eine Art Countdown oder eine Art Schockzähler erstellen . Und warum müssen wir einen Schusszähler erstellen? Nun, warum kein Mono-Verhalten? Nun, denn wenn Sie sich in einem Zustandsmaschinenverhalten befinden, haben Sie keine Co-Routine. Ich meinte, warum können wir nicht eine ganze Routine erstellen? Sie können einen Anruf erstellen, da dies kein Mono-Verhalten ist, wir können nur Gleichheit und Seite eines Mono-Verhaltens schaffen. Aus diesem Grund werde ich hier einen privaten Float-Shot-Zähler und ein serialisiertes Feld für das Fotoshooting erstellen . Ich hebe mir das auf. Und dann gehe ich zum On-State-Update. Und hier drin werde ich sagen Soll time als minus gleich, minus gleich der festen Delta-Zeit des Zeitpunkts. War das Problem hier drin. Auch. Minus gleich, nicht gleich minus, tut mir leid. Und dann werde ich hier sagen, ob die Show-Zeit kleiner oder gleich 0 ist, dann gehen wir in den Animatorauslöser und kopieren den Shoot-Trucker. Kopieren Sie dies sollte auslösen, legen Sie es hier rein, schließen Sie es ab, speichern Sie das alles. Ich glaube, wir brauchen einen Weg, um zurückzukehren. Also hier drin brauchen wir einen Weg, um zurückzukehren. Also fügen wir eine Ausstiegszeit hinzu. Und wir sorgen dafür, dass wir die gesamte Animation auf 97 Prozent abspielen . Mal sehen, wie das in der Vorschau aussieht. Und los geht's. Wir können sehen, dass wir spielen, wir sollten, wir sollten es geben und dann gehen wir wieder spazieren. Okay, ich denke, das ist gut genug. Und hier drin werden wir auch eine Ausstiegszeit bei 97 97 Prozent haben . Das hab ich. Ich denke, beim On-State Exit müssen wir das Shooting auch zurücksetzen. Also spar dir das auf. Und ich glaube, das war's. Ich glaube, das ist alles, was wir tun müssen. Also lass uns sehen. In The Walking hier drin, was ist die kurze Zeit? Vielleicht nach zwei Sekunden Gehzeit. Und wenn wir nach dieser Zeit zum wütenden Gehen gehen , vielleicht nach drei Sekunden Gehzeit. Das sind also nur willkürliche Zahlen. Ich habe nicht darüber nachgedacht, ob das gut ist oder nicht. Also werde ich das größer machen. Und wie Sie sehen können, stimmt etwas nicht. Zuallererst haben wir hier eine Kugel, die nicht gut ist. Also wo ist es, wo ist es? Während die Szenen, diese Kugel, die helfen wird, schließen wir Dui. Was macht diese Kugel eigentlich hier drin? Ich hab keine Ahnung. Warum kann ich nicht wählen, hey, willkommen zurück. Aus irgendeinem Grund kann ich also nicht finden, was das ist. Machen wir uns darüber keine Sorgen. Worüber wir uns Sorgen machen müssen, ist, die Kugelschicht in die gegnerische Kugel zu ändern . Spar dir das auf. Und jetzt lasst uns sehen, wie das aussieht. Wenn der Ball schießt können wir wirklich nicht finden, was das ist. Also läuft er herum, er fängt an zu schießen und es ist sehr schlimm. Okay, großartig. Offensichtlich haben wir also etwas, das nicht richtig funktioniert. Hey, willkommen zurück. Ein großer Fehler, den ich gemacht habe. Anstatt die Transformation dieser Position zu verwenden, hätte ich den Punkt nicht verwenden sollen, der genau hier ist. Und der Punkt, der genau hier ist. Tut mir leid. Das ist sehr schlimm, nicht, es sieht nicht gut aus. Aber da sind wir los. Jetzt haben wir alle Probleme behoben. Das sollte jetzt funktionieren. Also zurück in unserem Spiel sollten wir sehen, dass wir jetzt, wenn der Boss schießt, los geht's. 123. Aber aus irgendeinem Grund schießt die Kugel, die aufsteigt, nicht richtig. Was ist das Problem? Los geht's, wir werden sogar angeschossen. Versuchen wir zu sehen, was das Problem ist, wenn er aufschießt. Also nach oben gibt es ein Problem. Und so wie ich zum Beispiel nur erkannt habe, wie der letzte funktioniert hat, können wir Frame-für-Frame verwenden. Er wird größer 0. Beachten Sie, was passiert ist. Also lasst uns die Pause entfernen. Und mal sehen, was passiert, wenn er schießt. Sie können sehen, dass die Kugel herauskommt, was die Bosskugeln sind, sehen Sie, okay, also diese, diese kommt heraus. Und sobald es aus irgendeinem Grund herauskommt , verschwindet es einfach. Also was ist das Problem hier drin? Mal sehen, vielleicht liegt es an dem Collider. Vielleicht ist es das. Schauen wir uns also den Punkt an, offensichtlich dieser 0.2 und der Collider. Aber es sollte nicht wegen des Colliders liegen, denn offensichtlich interagiert die feindliche Kugel nicht mit dem Boss oder kommt es? Mir ist also aufgefallen, dass dies kein Problem verursacht, wenn ich den Punkt nach oben verschiebe . Mein Verdacht ist also, dass die Bosskugel, die sich auf dem feindlichen Knüppel befindet, mit diesem Kali-Boss interagiert , der auf der Ebene Standard ist. Was ich also tun werde, ist, dass ich eine Ebene für den Boss erstelle. also in den Ebenen hier drin Erstellen Sie also in den Ebenen hier drin eine Boss-Skely-Ebene. Und dann beim Boss es die feindlichen Kugeln. Also gehe ich in die Bearbeiten, Projekteinstellungen, Physics 2D, scrolle nach unten und stelle sicher, dass es nicht mit dem Chef interagiert. Totenkopf Bewegt sich, steigert Skelly, steigert schuppig. Gehen wir zurück zu Ebenen, bearbeiten Ebenen und steigern Sie den Skelly-Korb nicht. Muschelli interagiert also nicht mit beiden Skelly diese Arbeit. Wieder hier drin. Sagte der Boss Kelly. Ja, ändere alle Kinder. Das sparen wir uns. Wir gehen zurück und die Projekteinstellungen. Und der dritte ist x zum und der Busfahrplan interagiert nicht mit Boss Kelly und interagiert nicht mit dem Spieler. Aber wir können all das wirklich ehrlich bewegen, aber wir behalten sie einfach. Und jetzt sollten wir sehen, dass alle Kugeln, alle Punkte richtig schießen, auch wenn sich dieser Punkt im Box-Collider des Spielers, des Feindes, befindet. Also jetzt sollten wir diesen Kerl, wie du siehst, alle zwei Minuten bis Sekunden schießt oder was auch immer es ist. Also schauen wir hier hin. Wir schießen, wahr? Stimmt. Geh da rein. Und lasst uns versuchen, ihn zu erschießen und ihn wütend zu machen. Er ist also bei 50 Prozent Gesundheit. Es gibt also ein Problem mit der Animation. Das Problem liegt also darin, dass der Boss hier rein geht, es ist der Schusszähler. Und wenn der Schusszähler auf kleiner oder gleich 0 eingestellt wird, müssen wir den Schusszähler so zurücksetzen, dass der Schusszeit zu Zeit entspricht. Spar dir das auf. Und los geht's. Alles sollte einwandfrei funktionieren. Jetzt. Wir führen das Spiel dann wieder aus. Hoffentlich ist dies der letzte Fehler, den wir machen. Wir schießen, da geht's los. Wir haben die Schießanimation beendet. Wir laufen ein bisschen und dann fahren wir wieder zum Schießen. Und funktioniert es? Nein, ich glaube nicht, dass es richtig funktioniert. Etwas stimmt nicht. Okay. Willkommen zurück. Also war ich mir nicht sicher, was das Problem war. Es stellte sich heraus, dass der Schusszähler sehr seltsam war. Als wir also den Schusszähler hier zurücksetzten, war das Problem, dass er nur heruntergezählt wurde wenn wir tatsächlich in diesem Zustand waren. Wir zählen also nur nach unten, wenn wir auf dem Statusupdate des Cheflaufs sind . Die bessere Lösung besteht also darin, einfach den Shot Counter Reset zu bewegen , der nur den Schusszähler auf die Schusszeit einstellt. Nichts das On-State-Update, aber beim On-State-Exit. Jetzt wird der Schockzähler jedes Mal zurückgesetzt , wenn wir tatsächlich in einen anderen Zustand gehen. Also hier drin, wenn wir das Spiel laufen, wirst du sehen, dass der Boss jetzt aufgeht, er schießt, du wirst die Schusszählung sehen. Und hier drin gehst du. Fünf geht zurück auf 0. Also los geht's. Jetzt funktioniert alles gut. Jetzt machen wir ihn wütend. Mal sehen wir uns die Dreharbeiten an, wenn es funktioniert, wenn wir wütend sind. Ja, da sind wir los. Die Dreharbeiten so viel häufiger, 123. Und ich glaube, einer von ihnen fehlt. Wir wollten in der Animation mehrere Aufnahmen machen. Dies ist das längste Video und der gesamte Kurs, verspreche ich dir. So wütender Angriff. Aber haben wir Nein, ich meine, wütendes Schießen, 1, 2, 3, 4. Wir haben das wir uns leisten sollten. Wir haben den vierten nicht ausgegeben. Ich glaube, das liegt an der Ausstiegszeit. 97. Lass uns spielen, lass uns das Ganze spielen. Also, heb dir das auf, speichere das, führe das Spiel aus. Mal sehen, wie das aussieht. Und ich hätte das alles einfach außerhalb des Bildschirms machen können, aber ich wollte dir wirklich zeigen , wie alles funktioniert. Also hoffe ich, dass das gut ist. Wie oft wird es 2, 1, 2, 3, 4 sein , also vier, obwohl wir laufen, denke ich, dass das gut ist. Das ist nicht schlimm. Wir können das letzte Mal schießen, während wir laufen. Das ist eine gute Mechanik, sind Bosse nach 40 Minuten Aufnahme endlich fertig . So lange dauert es nach der Bearbeitung, vielleicht wird es ein bisschen weniger sein. Also werde ich alle Änderungen übernehmen, die wir vorgenommen haben. Ich sage endlich, ich habe den Boss gemacht. Schieße nach fast 100 Fehlern. Das ist nicht etwas, das du schreiben solltest. Das ist für mich, um mich daran zu erinnern, wie sehr ich in diesem Video tatsächlich Fehler gemacht habe. Aber auf jeden Fall hoffe ich, dass es dir gefällt. Ich hoffe, Sie schätzen die Transparenz und ich zeige Ihnen alles , was hinter den Kulissen passiert. Wenn Sie es noch nicht getan haben, ist dies der perfekte Zeitpunkt, um mir eine Rezension zu hinterlassen , und wir sehen uns im nächsten Video im letzten Abschnitt. Vielleicht weiß ich nicht, wo wir den tatsächlichen Levelfluss von einer Szene zur nächsten erstellen werden den tatsächlichen Levelfluss , jetzt wo wir alles an Ort und Stelle haben. Also sehe ich dich dann. 95. Bonus 16: Raumerstellung (Erweiterte C# Object – Die Räume einrichten: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video haben wir gerade ein paar neue Level für alle Generierung von Zufallsstufen erstellt . Zuallererst haben wir das Spikes-Level erstellt. Wenn die Waage dort ist, haben wir ein paar Skelette, das Geschäft, in dem nur ein Feind die neue Waffe bewacht, wo wir den Feind töten und eine neue Waffe aufheben, die Gesundheit mit Gesundheit zurück gibt uns ein feiges Niveau von 120,5. Jeder ist ein feiges Jahr. Und das Boss-Level, und das war's. Das ist alles, was du tun musst. Das ist alles, was wir getan haben. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Okay, willkommen in einem brandneuen Abschnitt in fortgeschrittenem C sharp. Im ersten Video geht es also darum, mehrere Räume zu erstellen. Wir haben also bereits Level 1, Level 2, Level 3, das scharfe Level und den Titelbildschirm mit dem Siegesbildschirm. Das nächste, was wir tun müssen, ist, dass wir noch ein paar Räume schaffen müssen . Ich mache das separat, weil ich deine Zeit nicht zu viel verschwenden möchte. Was ich also tun werde, ist Ihnen eine Herausforderung zu stellen, mehrere Räume zu erstellen. Zuallererst möchten wir mehrere Räume haben, die wir durchlaufen können. Es ähnelt der Art und Weise, wie wir das Hades-Spiel haben werden. Wir haben also mehrere Räume. Wir haben die Möglichkeit, in jedem einzelnen Raum zwei Türen zu durchqueren , nachdem wir alle Feinde getötet haben. Genau das wollen wir machen und unser Spiel auch. sind also einige der Zimmer, die Sie haben werden. Sie brauchen einen scharfen Raum, den Gesundheitsraum, in dem Sie einfach reinkommen und so viel abholen, wie Sie möchten. Der Spike Rom. Ein Raum, der voller Stacheln ist, gibt es keine Feinde. Du kannst Feinde haben, wenn du willst, aber es ist voller Stacheln. musst du durchmachen, ohne zu sterben. Offensichtlich ein Bossraum und drei weitere Räume in verschiedenen Formen. Insgesamt 1, 2, 3, 4 und 56, 7. Also fast sieben Räume zum Durchholen. Und es ist wichtig, diese zu haben, da wir mehrere Optionen an zwei verschiedenen Ausgangstüren haben werden und so weiter. Offensichtlich sind der Titelbildschirm und der Siegesbildschirm nicht Teil des Spiels. Das wird also noch etwas anderes übrig bleiben. Und du musst hinzufügen, vergewissern Sie sich, dass Sie hinzufügen. Und das wäre, und stellen Sie sicher, dass Sie die Regeln natürlich zum Build-Index hinzufügen . Und ich gebe dir einen kleinen Hinweis. Sie können einfach die Ebene duplizieren und ein paar Dinge ändern, damit Sie nicht wirklich den Prozess des Erstellens einer neuen Szene durchlaufen müssen , Raster hinzufügen all diese Dinge tun können und ein paar Dinge ändern, damit Sie nicht wirklich den Prozess des Erstellens einer neuen Szene durchlaufen müssen, Raster hinzufügen und all diese Dinge tun können wählen Sie einfach eine der Ebenen aus , duplizieren Sie, richten Sie alles ein, und bevor ich gehe, müssen wir uns um etwas kümmern. Und das ist, dass wir in der UI-Canvas die Gesundheit der Chefs immer präsent haben. Wir wollen nicht, dass das passiert. So können wir dies entweder zum Boss-Raum machen und dann duplizieren und daraus andere Ebenen erstellen. Und andere UI-Canvases werden den Boss nicht halten lassen. Oder wenn Sie möchten, dass das Klugste hier im UI-Manager ist, können wir einen Hinweis auf die Busgesundheit erhalten, und dann können wir ihn ein- und ausschalten, je nachdem, ob wir einen Chef und den Bereich finden, gegen den wir kämpfen. Und was all diese Informationen. Lass mich dich zurück zur Herausforderung bringen. Pausieren Sie das Video jetzt und erstellen Sie ein paar Räume für die kommenden Videos. Wir sehen uns in nur ein bisschen 0 Fall. Wie war das? Lass mich dir zeigen, was ich geschaffen habe. Also habe ich zuerst die Boss-Szene geschaffen, in der du einen Boss findest. Alles ist gleich. Ich habe die Türen behalten, sind die Portale. Ich habe aber die Portale hier im Raum getrennt als 12 Portale, um sich in der Hierarchie zu befinden. Ich habe sie in das Portalobjekt in die Räume gelegt. Eine andere Sache, die ich getan habe, ist im Admin, die zu schließen. Das hier unten im UI-Manager, genau hier. Im UI-Manager habe ich einen Verweis auf das Chef-Menü erhalten und dafür gesorgt , es entweder einzuschalten oder auszuschalten, wenn wir den Chef-Controller nicht finden können. Das ist also nur für T-Bar der Bälle. Was machen wir sonst noch, die feigen? Nicht das ist das Gewicht. Auch warum mein Fehler. Dieser sollte also das feige Ich sein, also haben wir hier alle diese Augen. Denken Sie daran, das sind diejenigen, die weglaufen und dieser wird der Gesundheitsraum sein . Falsch. Da sind wir los. Und dieser Gesundheitsraum hat einen Halbwächter und dieses Outback stellt 120 Gesundheit wieder her. Im Grunde stellt es einfach Ihre gesamte Gesundheit wieder her. Und Sie können genau hier feststellen, dass ich immer noch einen Feind habe, selbst im Geschäftsraum , der keinen Feind haben sollte. Aber das tut es. Ich lege es da rein, weil sich die Türen nicht öffnen, es sei denn, wir töten einen Feind. Und ich weiß, dass das ein bisschen umständlich ist. Vielleicht sollten wir noch ein paar weitere hinzufügen. Vielleicht sagen wir eine zusätzliche Codezeile , um sicherzustellen, dass wir die Feinde nicht immer töten müssen. Um die Türen zu öffnen. Wir können einfach die Türen für ein bekanntes öffnen, weißt du was? Ich wollte das nicht durchmachen, weil es ziemlich einfach, aber gleichzeitig zeitaufwändig ist. Also dachte ich einfach, lasst es uns einfach dabei behalten. Wir fügen einfach einen Feind hinzu, den wir versammelt haben, als wir durch die Räume gehen, und wir machen weiter. Dann habe ich den Stachelraum aus irgendeinem Grund geschaffen , es ist nicht der Stachelraum. Wir haben die Skelette. Woher kommen die Stacheln? Also die neuen Waffen. Also okay. Die neue Waffe befindet sich also aus irgendeinem Grund im Skelett mit den Stacheln . Ich weiß nicht warum. Lassen Sie mich Spikes WAS umbenennen , nur damit wir nicht den gleichen Namen haben. Also Stacheln und ich werden die Waffen einfach und in diesen Stacheln entfernen . Ja, heb dir diesen Raum und den Stacheln auf. Ich behalte diese einfach als das und diese. Was hat das? Oh warte, auch das sind die Stacheln, dieser als Skelette und dieser. Dieser hat also nichts. Ich lösche alle Feinde hier drin. Behalte einfach einen von ihnen, um ihn zu beschützen, sagen wir die Brust. Wenn ich in die Prefabs Pickups gehe, wo ist es? Level-Objekte. Okay, also los geht's. Das ist die Truhe. Und dann können wir, sobald wir zu diesem Feind kommen , die Truhe öffnen , die Waffe holen und dann da raus. Was machen wir jetzt sonst noch? Und diese Skelette, Skelette, Stacheln, Stacheln. Das sind die Kellys Ja. Benennen Sie diese Stelen um. Und dann ist dieser der neue Waffenraum. Neue Waffen. Nur neue Waffen. Drücken Sie Enter. Ja, da sind wir los. Wie Sie sehen können, haben wir ein paar Levels. Offensichtlich müssen wir auf das Wo ist es, die editierbaren Einstellungen und los geht's. Also neue Waffen, Stacheln. Lasst uns das Boss-Level, die Augen des Feiglings, das Gesundheitsniveau hinzufügen . Die neue Waffe ist schon da. Die Ladenebene, diese Rinnen und die Stacheln sind schon da. Wie Sie sehen können, haben wir jetzt, wie viele sind sie? Okay, also sechs Levels, 1234567. Also sieben Levels, ein Titelbildschirm und ein Siegesbildschirm. Und darauf werden wir in den nächsten Videos zugreifen und versuchen zu sehen, wie alles funktioniert. Ich hoffe, es hat Ihnen gefallen, Ihre Änderungen zu übernehmen und wir sehen uns im nächsten. 96. Enemy: Willkommen zurück, Meine Lieblingsspielentwickler. Wie Sie sehen können, haben wir in diesem Video etwas anderes. Wir haben Wellen, aber diese Wellen sind nicht nur reguläre Elemente oder reguläre Variablen. Sie haben die Freundesvariablen in sich. Und wir können eine weitere Welle und eine weitere Welle erzeugen. Und wie Sie sehen können, hat jeder von ihnen sein eigenes Element. Willkommen im Bereich Advanced C-Sharp. Verschwenden wir keine Zeit mehr und fangen wir an. Aber ich brauche deine volle Konzentration, deine volle Aufmerksamkeitsspanne und deinen Sturz. Patienten bei mir. Also lasst uns anfangen. Oh, okay, jetzt, da wir unsere Zufallsstufen haben, ist es an der Zeit, zufällige NME-Wellen zu erzeugen. Wir werden also nicht einfach die regulären Feinde hier drin haben. Ich habe sie gerade im vorherigen Video eingerichtet , damit wir wissen, was die allgemeine Idee in jedem Level ist und nur ein paar Unterschiede zwischen ihnen haben . Aber in diesem Video werden wir einen feindlichen Spawner erschaffen. Also lasst uns anfangen. Das erste, was wir tun werden, ist wir die Manager öffnen werden. Und wir haben keine Manager hier drin. Also werden wir zu einem von diesen gehen , der keinen Manager hat, und das ist es. Und was ich tun werde, ist, dass ich ins Prefab gehe. Wir haben hier einen Manager und ich füge nur den gesamten Manager-Ordner hinzu, damit wir Manager zu jeder Szene hinzufügen können , die wir benötigen. Also gehe ich in die Boss-Ebene, in der wir alle Manager hier haben. Ja, das tun wir. Die Feiglinge. Wir haben nicht die Manager oder Prefab Manager und die Manager hier drin. Da sind wir los. Jetzt haben wir das Spiellevel und deinen ganzen Manager. Und lass uns zurückgehen und sehen. Also retten die Feiglinge, ja, die Gesundheit. Haben wir Manager? Nein, tun wir nicht. Also gehen wir wieder zu den Prefabs Prefabs Managers. Und da sind wir los. Wir fügen die Manager zum Gesundheitsraum hinzu. Mal sehen, was wir sonst noch haben das neue Wir haben Manager top. Das tun wir nicht schon wieder. Finde also die Manager dabei. Und wenn du willst, kannst du diesen Teil einfach überspringen und direkt zu dem gehen, den du hier hast. Aber das ist nicht das Prefab, also werde ich das löschen. Ich füge das eigentliche Manager-Prefab das in einem vorherigen hätte tun sollen. Auch Szenen, was ist das für ein Shop? Diese Kelly sieht, kein Manager. Und die Manager. Und Szenen Spikes, retten Manager. Da sind wir los. Boss-Niveau. Manager, die wir wollen. Dies ist nicht der Manager, den Sie suchen. Also sehen Feiglinge? Ja, ja. Ja, ja, ja. Okay, großartig. Überall wo wir jetzt Manager haben , ist es an der Zeit, tatsächlich einen Spawner zu erschaffen. Und der beste Ort, an dem ich glaube, ist in diesen Kellys genau hier. in diesem Fall Gehen Sie in diesem Fall zum Level-Manager und lassen Sie uns fortfahren und fügen Sie hier eine Komponente hinzu oder nein, gehen wir in die Skripte ein. Und wo sollen wir den Wave Spawner hinzufügen? Und fügen wir es einfach in die Manager hinzu, wir werden ein neues C-Sharp-Skript erstellen, das der Wave-Spawner-Manager sein wird. Drücken Sie Enter, wir haben gerade den Namen-Manager hinzugefügt. Also haben wir wieder eine Entschuldigung für andere Top-Manager. Also werde ich weitermachen und es dem Levelmanager hinzufügen. Und hier drin öffne ich das Drehbuch. Was wollen wir hier drin machen? Wir wollen eine andere Klasse erstellen. Warum wollen wir eine andere Klasse erstellen? Nun, denn zuallererst ist das fortgeschrittene C-sharp. Zweitens wollen wir eine ganz andere Klasse für die Wellen schaffen, eine ganz andere Klasse für weil die Wellen benannt haben, dass die Wellen Feinde haben, die Wellen ein Gleichgewicht von Feinden haben, die Verzögerung zwischen jedem Mal, wenn wir hervorgebracht haben ein Feind und so weiter und so weiter. Also hier drin werde ich eine öffentliche Klasse schaffen. Und es wird Welle genannt. Und diese Welle wird ein paar Dinge haben. Zuallererst wird es einen öffentlichen String-Namen haben. Und offensichtlich wollen wir es nicht immer so öffentlich haben, aber in diesem Fall, nur damit wir ein bisschen Zeit sparen können, ohne all die zusätzlichen Dinge schaffen zu müssen. Wir werden sie öffentlich machen. Dann haben wir ein öffentliches Spielobjekt und eine Reihe von Feinden. Was für eine Reihe von Feinden und ich ist. Da sind wir los. Dann haben wir ein Publikum und die Anzahl der Feinde, die spawnen werden. Und schließlich haben wir eine Spawn-Verzögerung für den öffentlichen Float. Da sind wir los. Dies sind also alle Elemente, oder sagen wir der Teil der Welle, alle Variablen innerhalb der Welle. Wenn Sie diese Variable aufrufen möchten, weil es sich um eine Klasse handelt, ist das etwas ganz anderes. Aber das ist nicht das einzige, was wir tun müssen. Wir müssen auch darauf achten, dass dies hier oben ein serialisierbarer Systempunkt ist. Also speichern wir das. Und was bedeutet serialisierbar? Es bedeutet, dass Sie das sehen werden, wenn ich jetzt die Unity-Skripte öffne , wenn ich jetzt die Unity-Skripte . Okay, nichts ist passiert. Warum ist das so? Nun, weil wir auch noch eine Sache machen müssen. Und hier werden wir sagen, dass dies eine öffentliche Welle hat. Wie Sie jetzt sehen können, haben wir eine völlig neue Klasse, eine Reihe von Wellen. Also speichern wir das. Wenn wir jetzt wieder in Unity zurückkehren, werden wir sehen, dass wir die Möglichkeit haben, Wellen zu erzeugen. Und wenn ich hier nur eine Welle hinzufüge, wirst du sehen, dass ich verschiedene Elemente für diese Welle habe. Und ich kann ein Ziel haben, kann einen Betrag haben, kann die Spawnverzögerung und die Feinde haben, die ich will. Und wenn ich hier ein anderes Element hinzufüge, wirst du feststellen, dass ich wieder einen anderen Namen, verschiedene Feinde, unterschiedliche Beträge und unterschiedliche Verzögerungen habe. Wie Sie sehen können, wurde deshalb neu erstellt oder sichergestellt , dass dies ein serialisierbarer Systempunkt ist. Dies ermöglicht es uns, verschiedene Elemente davon zu erstellen und ermöglicht es uns, diese Arten von Variablen zu erstellen. Im Grunde haben wir also eine neue Variable erstellt , die verschiedene Variablen enthält. Also lasst uns jetzt weitermachen, da wir all das haben, ist das nächste, was wir tun müssen, offensichtlich weiterzumachen und Welle für Welle zu überprüfen. Das erste, was wir tun müssen, ist, dass wir hier ein privates Ende schaffen und die nächste Welle zählen werden. Und offensichtlich fangen wir bei 0 an. Die erste Welle wird also 0 sein. Und jedes Mal, wenn wir eine neue Welle mit einer neuen Anzahl von Feinden erzeugen , mit den neuen verschiedenen Arten von Feinden, werden wir zur nächsten Welle gehen, indem wir sie um eins erhöhen. Dann werden wir ein serialisiertes Feld schaffen, in dem wir die Zeit zwischen den Wellen verfolgen werden. Und lassen Sie es uns einfach auf fünf F als Standard setzen. Und dann werden wir auch die Wellenzahl im Auge behalten. Also Float Wave, ich sage Wave Count, ich meinte herunterzählen. Okay, heb dir das auf. Und jetzt, wenn wir anfangen, müssen wir den Wave-Countdown initialisieren , um die Zeit zwischen den Wellen zu sein. Und dann werden wir für später etwas tun und haben nachgedacht, aber jetzt wollen wir etwas auch als Extra haben. Und ich denke, dies ist der perfekte Ort, um etwas oder etwas zu schaffen , das wir bereits behandelt haben, was eine Aufzählung ist. Und warum wollen wir eine Enum erstellen? Da Wellen in drei verschiedenen Staaten sein werden, werden wir laichen. Hier spawnen wir also jeden einzelnen, ich kenne weder die Zeit noch die Verzögerung zwischen den Feinden. Zum Beispiel spawnen wir alle zwei Sekunden einen neuen Feind. Wir spawnen einen neuen Feind. Derzeit wollen wir bestimmte Dinge nicht mit unserem Wave Spawner Controller oder Manager machen. Ich meine, also müssen wir verschiedene Staaten schaffen. Was ich also tun werde, ist, dass ich eine Herausforderung stellen werde. Und Ihre Herausforderung besteht darin, eine Aufzählung für die verschiedenen Staaten zu schaffen , die wir haben werden. Wir haben also bereits Enums im Abholbereich behandelt. Erstellen Sie also zunächst ein E-Not für die verschiedenen Laichzustände, die das die verschiedenen Laichzustände, die das Laichen, Warten und Zählen haben werden. Und schließlich müssen Sie nur eine Variable dieses Typs erstellen , damit wir sie als Referenz verwenden können. Also pausiere das Video jetzt und mach jedes einzelne. Oh, okay, willkommen zurück. Wie ich dir schon sagte, in einem der Pickups, während der Abholabholung. Abholung von Abholung, ein Doppelayer? Nein. Gegenstand Dropper, Dope. Wo war es? Wo war es? Im oh, okay. So haben wir im Shop-Artikel, wie Sie sehen können, eine Aufzählung für die Wiederherstellung der Gesundheit, das Gesundheits-Upgrade und die Waffe erstellt . Und basierend auf jedem von diesen haben wir eine Switch-Anweisung. Wir werden fast genau das Gleiche tun. Also hier drin werde ich eine private, private Enum erstellen. Und das werden diese schlagenden Staaten sein. Und wir werden die Bombardierung, das Warten und das Zählen haben . Und dann erstellen wir einfach eine Variable dieses Typs, die ein privater Gründungsstaat und ein privater Bundesstaat sein wird . Los geht's, heb dir das auf. Und hier am Anfang, womit wollen wir anfangen? Nun, wir fangen mit dem Zählen an. Der Staat ist gleich der Punktzählung der Laichzustände. Also beginnen wir damit, herunterzuzählen und dann auch wir müssen sicherstellen, dass wir uns einstellen. Oh, also haben wir schon den Wave-Countdown gesagt. Wir wollen aktualisieren und anfangen, auf der Welle herunterzuzählen. Wenn der Wave-Countdown also kleiner oder gleich 0 ist, werden wir zunächst prüfen, ob der Zustand, in dem wir uns gerade befinden, anders ist als der Laichzustand, das Punktlaichen. Was wir dann tun werden, ist, dass wir anfangen zu laichen, während wir den Countdown sonst noch nicht beendet haben, dann werden wir den Countdown bekommen und für die Anmeldezeit entfernen, Delta-Zeit. Was passiert hier drin? Lassen Sie uns einfach eine kleine Zusammenfassung machen , denn das alles ist ziemlich neu. Zuallererst haben wir den Wave Spawner Manager, der hier an den Levelmanager angeschlossen ist. Okay. Warte, bis das jetzt jeden Tag kompiliert wird. Okay, Danke. Was haben wir dann? Wir haben eine Welle und jede einzelne Welle hat verschiedene Elemente daran gebunden. Was wir uns also entschieden haben, ist, eine völlig neue öffentliche Klasse zu schaffen , nur um sie zu repräsentieren. Wir hätten, wenn wir wollen, eine separate Klasse nur für diese erstellen können, in einem separaten Skript, nur für dieses Skript, und es ist nicht ein Mono-Verhalten, nur ein serialisierbarer Stem und System serialisierbar bedeutet, dass wir dies hier erstellen können. Und es ermöglicht uns, die verschiedenen Elemente genau hier zu ändern , wie immer wir wollen. So kann es uns die Möglichkeit geben, die Wertsachen viel einfacher zu ändern. Also haben wir die Wellen geschaffen, wir verfolgen die nächste Welle, die öffentlich sein könnte, wenn Sie nur sicherstellen möchten, dass wir alles angemessen sehen und öffentlich machen möchten. Wir haben die Zeit zwischen den Wellen geschaffen, die Wellen fallen. Das ist ziemlich einfach. Dann haben wir eine Aufzählung für die Laichstaaten erstellt , weil wir verschiedene Laichzustände haben. Zuallererst können wir entweder laichen, warten oder herunterzählen. Und dann erstellen wir eine, um alles zu verfolgen, was passiert, genau wie wir es im Shop-Artikel hatten. Wir werden später etwas anderes haben, sollte ich sagen, wir werden verschiedene Methoden ausführen und das Update basierend darauf, ob wir, in welchem Zustand wir uns befinden, verschiedene Elemente haben werden, verschiedene Dinge haben werden. Und dies ist das erste Beispiel dafür. Wenn wir runter zählen, wenn wir mit dem Abzählen fertig sind wenn wir mit dem Abzählen fertig und wir uns nicht in einem Laichzustand befinden, werden wir anfangen zu laichen. Wenn wir noch nicht mit dem Abzählen fertig sind, werden wir einfach die Zeit, Delta-Zeit, bis sie unter 0 ist, aus dem Countdown entfernen . Dann überprüfen wir unsere Antwort. Wenn nicht, beginnen wir im nächsten Video zu laichen, wo wir tatsächlich Feinde hervorbringen werden. Ich hoffe es gefällt dir. Ich weiß, dass das ein bisschen kompliziert ist, aber dafür hast du dich angemeldet. Du bist in Bonus eins zum C-Sharp Advanced Bereich gekommen. Ich hoffe es gefällt dir. Ich hoffe, du begehst deine Änderungen und wir sehen uns im nächsten Video. 97. Verschneite Arten von Feinde: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video haben wir tatsächlich angefangen, Feinde auf kluge Weise zu spawnen. Jetzt, wenn wir das Spiel starten, lass uns das vergrößern, damit du richtig sehen kannst, was passiert. Nachdem der Kandidat beendet ist, erscheint der erste Feind, der zweite Feind erscheint und sie sitzen einfach da und warten darauf, dass wir ihn töten. Sobald wir sie getötet haben, versuchen wir sie zu gehen. Okay. Das ist eigentlich, oh, okay, das war peinlich. Lass uns das Level neu starten. Warte darauf. Also haben wir uns Feinde so gut gemacht, dass wir sie nicht töten können. Okay, also lass es mich versuchen. Lassen Sie mich eine gewisse Distanz erreichen, damit wir es nicht mehr können. Sobald wir sie anrufen, können Sie sehen dass wir die Welle abgeschlossen haben. Und dann bringen wir den Feind zum Laichen, weil wir die Anzahl der Feinde gemacht haben und auch hier für diese Welle. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, Fall. Also lasst uns weitermachen und fangen tatsächlich an, Feinde zu besitzen. Das erste, was wir tun werden, ist offensichtlich hier eine Art Co-Routine zu schaffen oder wir können auch einen Zähler erstellen. Aber wir werden beim Coubertin bleiben und diese Umwerbung wird jedes Mal aufgerufen , wenn wir diese Spawnverzögerung haben. Dieses Kernteam wird also die Feinde hervorbringen. auch immer, lasst uns anfangen und wir werden sehen, wie alles funktioniert. Also werden wir hier einen Eye-Enumerator erstellen. Und es wird die Spawnwelle genannt. Und die Welle, die wir tatsächlich spawnen wollen. Also winke zu Spot. Wir haben also bereits die Welle, die wir überspannen wollen. Es wird seine eigenen Feinde haben, seinen Namen und die Anzahl der Feinde, die es hat. Also werden wir eine for-Schleife erstellen. In dieser for-Schleife beginnen wir mit einer Ganzzahl, die ich gleich 0 ist. Wir werden sicherstellen , dass wir niemals über das Gewicht gehen, um zu laichen, oder ist es die Welle zu spawnen, die Anzahl der Feinde? Und wir werden es auch jedes Mal um eins erhöhen . Also hier drin werden wir eine zufällige gegnerische Zahl erstellen. Und es wird der Zufallsbereich sein. Und dieser Bereich wird über 0 liegen. Und die Welle, um Feinde zu spawnen, Punktlänge. Also gehen wir los und erinnern uns an die Feinde, und hier ist eine Reihe von Spielobjekten. Also wollen wir einen zufälligen Feind da drin ausgeben. Also gehe ich hier rein, wo wir sagen werden , dass eine Art Methode zum Spawnen ist, weil wir es außerhalb des haben wollen , genau hier. Dies wird nur die Spawnwelle sein. Dies wird der feindliche Spawner hier drin sein. Und was wir tun werden und wie dieser Zähler funktionieren wird, und wie dieser Zähler funktionieren wird wenn wir neue zurückgeben werden , warten Sie vier Sekunden. Und es wird auf der Welle sein. Reagiere. Nicht verzögern, Punkt-Spawn-Verzögerung. Was passiert hier drin? Dies ist das erste Mal, dass ich glaube, dass wir die Rendite innerhalb einer for-Schleife in einem Enumerator oder einer Coroutine verwenden . Also gehen wir diese Schleife durch. Jedes Mal, wenn wir eine Zufallszahl wählen, haben wir eine Art Feind hervorgebracht und warten dann vier Sekunden. Und dann haben wir wieder einen Feind hervorgebracht, wir haben einen Feind hervorgebracht. So können wir die Rendite zurückgeben und dies mehrmals aufrufen, diese hervorgerufene Welle mehrmals. Und nachdem wir dies getan haben, werden wir auch die eigentliche Methode schaffen , die den Feind hervorbringt. Also spawne Feind. Und hier drin werden wir sagen, dass wir ihm das Spielobjekt und den Feind zum Spawnen schicken werden . Und hier drin werden wir Debug Dot Log sagen, nur um sicherzustellen, dass wir wissen, welcher Feind hervorgebracht wird und alles richtig funktioniert. Also laichen den Feind hervor. Und wir geben ihm den Feind zum Spawnen. Aber nenne. Da sind wir los. Und wir werden einfach instanziieren. Und dann hat sie den NMI gegessen. Zu klein. Und es wird so sein, Oops, entschuldigen Sie mich. Es wird also die gesamte Transformationspunkt-Position sein und wir transformieren die Zeilenstation. Was ist die Transformation? Von welcher Transformation sprechen wir? Da also der Wave-Spawner an den Level-Manager gebunden ist , dies die Position und die Rotation des Level-Manager-Spielobjekts in unserer Szene. Und später werden wir mehrere Punkte schaffen, an denen die Feinde laichen werden. So wird es also funktionieren. Wir werden eine Art Array haben. Wir werden uns später damit befassen, dass es sich nun darauf konzentriert, diese Feinde tatsächlich zu instanziieren. Spawne also Feind, die Welle, um Feinde an der Position der zufälligen gegnerischen Zahl zu spawnen , die wir gerade geschaffen haben. Also füge ich hier eine Eingabe hinzu. Was machen wir? Wir müssen auch die Coroutine nennen und hier, also bevor wir es vergessen, also Co-Routine. Spawnen, Spawnen, Feinde, winken. Ja, da sind wir los. Und auf welche Weise sollten wir laichen? Während wir hier drin sind, werden wir nur sagen, dass es die Welle ist, winkt die nächste Welle an der Position. Also wird es jetzt wahrscheinlich 0 sein , denn nächste Welle, während die nächste Welle hier bei 0 beginnt. Es wird also die erste Welle sein , die gerade zum Experimentieren dient, die sich auf das konzentriert, was das tut. Eine Co-Routine, die beginnt, wenn wir sicherstellen, dass wir den Countdown nicht laichen, ist weniger als 0, wir laichen nicht, wir sind bereit, mit dem Laichen zu beginnen. Dann beginnen wir die Beschichtung hier drin. Wir haben die Schleife wird die Anzahl der Feinde auf der Welle durchlaufen , die wir erhalten. Als Coroutine erstellen wir eine Zufallszahl. Wir spawnen einen zufälligen Feind, der nur den Debug hat um uns mitzuteilen, welcher Feind hervorgebracht wird , wird dies wahrscheinlich später entfernen. Und dann instanziieren wir den eigentlichen Feind des Managers. Und was passiert dann? Wir geben Rückkehr zurück, warten vier Sekunden und spawnen dann in anderen Feinden. Bevor diese Schleife also wieder aufgerufen wird, müssen wir die für uns angegebene Spawnverzögerung abwägen . Also werde ich das alles retten. Ich gehe zurück und Einheit. Und mal sehen, was wir hier als Levelmanager haben. Warte, bis das etwas kompiliert. Okay, also gehen wir zum Level Manager des Managers und was haben wir hier drin? Ich habe herumgespielt, vielleicht habe ich das im Video nicht gemacht. Also haben wir diese Welle genau hier. Es ist die Skelettwelle. Die Feinde, die wir hier haben, sind der Skelettfeind und der feige fliegende Hoch. Die Anzahl der Feinde, die wir wollen, ist und reagieren wird zwei Sekunden betragen. Ich hebe das auf. Wo ist der Level Manager und unsere Welt? Es ist nicht auf den 000. Setzen wir es wieder auf 0, also liegt es direkt vor unserem Spieler. Und lasst uns das Spiel laufen und sehen, wie es aussieht. Also jetzt 12 sollten wir den Wave-Countdown sehen. Da gehen wir hin und whoa, das sind zu viele Feinde. Mal sehen, was wir hier falsch gemacht haben. Also speichern wir das. Was hier passiert, wir überprüfen, dass der Countdown weniger als 0 ist. Sind wir nicht im Laichzustand? Nun, mal sehen. Wir fangen mit dem Zählen an, also sind wir es nicht. Offensichtlich müssen wir unsere Bundesstaaten hier drin ändern. Bevor wir also tatsächlich die Schleife erstellen oder die Schleife starten, werden wir sagen, dass wir uns in einem Zustand befinden , der den Laichstaaten entspricht, aber laichend ist . Und wenn wir mit dem Laichen fertig sind, werden wir in einen Zustand übergehen, der die Gewichtung ist. Wir warten also darauf, dass die Feinde spawnt werden. Jetzt fangen wir an, bevor wir tatsächlich die Schleife durchlaufen, sagten wir den Staat. Jetzt wird das nicht jedes Mal aufgerufen und wir werden nicht so viele Feinde haben. Testen wir das noch einmal. Führe das Spiel aus. Wir können den Countdown hier sehen. Ich habe es öffentlich gemacht. Da sind wir los. Also 0, wir kriegen den Feind und er fängt an zu schießen. Dann kriegen wir einen weiteren Feind, und dann gaben wir ihnen einen weiteren Feind, und er wird alle zwei Sekunden gerufen. Sieh dir diese kleinen Küken genau hier an. Dies ist ein wirklich netter cooler Spielmechaniker, wie Sie sehen können, alle zwei Sekunden 1212, und los geht's. Wie Sie sehen können, werden Feinde jede Sekunde aufgerufen. Aber jetzt fragen Sie sich vielleicht, warum haben wir so viele Feinde, obwohl wir sagten, dass die Anzahl der Feinde nur auch sein sollte. Nun. Es liegt daran, dass wir den Wave-Countdown nicht wirklich zurücksetzen lassen. Wieder etwas, mit dem wir uns später beschäftigen werden. Aber lasst uns zuerst darüber nachdenken, wann werden wir die Welle tatsächlich zurücksetzen und wann winkt eine tatsächliche Welle? Und so können wir entweder eine Zeit zwischen Welle schaffen. Sagen wir also die erste Welle und die zweite Welle, es gibt eine Verzögerung zwischen ihnen. Oder wir können einen wirklich netten Mechaniker haben und unserer Ebene oder der Person, die unser Spiel spielt, die Chance geben unserer Ebene oder der Person, die unser Spiel spielt , alle Feinde in dieser Welle zu töten , bevor die nächste Welle kommt. Das werden wir also tun. Und um das zu tun, werden wir eine Art Methode entwickeln , die verfolgen wird, ob ein Feind gestorben ist oder nicht. Also lasst uns wieder hier runter gehen. Und nach dem Spawnfeind werden wir einen privaten schaffen. Es wird einen Booleschen Wert geben, und es wird die Feinde oder das Leben sein. Und das wird wahr zurückkehren, wenn alle Feinde am Leben sind oder nein. Oh ja, wenn alle Feinde am Leben und falsch sind, ob einer von ihnen oder keiner von ihnen am Leben ist. Also hier drin, was ich sagen werde, werde ich eine If-Bedingung schaffen. Und ich werde das endgültige Objekt des Typs haben. Und Objekte des Typs finden tatsächlich keine Objekte, finden Objekte vom Typ. Und der gegnerische Controller, ich suche nach der Punktlänge des gegnerischen Controllers. Und es wird gleich 0 sein. Und wenn ja, dann werden wir falsch zurückgeben. So falsch, das bedeutet, dass alle Feinde gestorben sind. Und wenn wir das durchmachen und nicht falsch zurückgeben, werden wir wahr zurückkehren. Das bedeutet, dass die Feinde noch am Leben sind. Jetzt haben wir also eine Welle oder um sicherzustellen, ob unsere Feinde alle erschöpft sind, und wir werden alle erschöpft sind, und wir werden sie hier irgendwie als Bedingung nutzen können. Aber es gibt ein kleines Problem, das mich stört. Die Suche nach Objekten des Typs auf dem gegnerischen Controller ist eigentlich eine sehr umständliche, sagen wir, Operation am System. Es benötigt jedes Mal eine Menge Ressourcen , um alle Objekte auf dem gegnerischen Controller zu durchlaufen , was manchmal nicht sehr notwendig ist. Was wollen wir also tun, ist, dass wir eine Art Timer haben wollen , wenn die Feinde lebendig Checker sind. Wir überprüfen also nicht jeden einzelnen Frame, ob alle Feinde tot sind. Stattdessen lassen wir dies alle paar Sekunden überprüfen. Also werde ich es Ihnen als Herausforderung ausstellen, und Ihre Herausforderung besteht darin, die Überprüfung zu verzögern. Zunächst müssen Sie also eine Variable für die Zeit zwischen der Suche nach Feinden erstellen . bei der booleschen Methode sicher, dass wir nicht alle Feinde betrachten, außer wenn die Zeit vorbei ist. Achte darauf, wo wir diesen Zähler zurücksetzen sollten. Das wird also sehr wichtig sein. also das Halten Sie also das Video jetzt an und machen Sie jeden Shannon. Okay, willkommen zurück. Also scrolle ich hier rein. Und ich erstelle einen privaten Float. Die Zeit zwischen feindlicher Suche, zwischen feindlicher Suche. Und sagen wir, es ist ein F. Also 1 Sekunde. Jede Sekunde prüfen wir nach allen Feinden der Schulden. Und dann werde ich hier sagen, dass die Zeit zwischen der Suche um die Zeit verkürzt wird.Deltatime, jedes einzelne Frame, und dies wird jedes einzelne Frame genannt. Und dann werde ich hier unten nachsehen, bevor wir tatsächlich nach allen Objekten suchen. Wenn die Zeit zwischen der Suche kleiner oder gleich 0 ist , werden wir suchen. Da sind wir los. Und wann setzen wir das tatsächlich zurück? Sobald die Zeit zwischen Suche kleiner oder gleich 0 ist, prüfen wir zunächst, ob alle Feinde gestorben sind. Und wir können dieses Mal auch zwischen den Suchanfragen zurücksetzen. Und ich setze es auf 1.5, weil ich nicht glaube , dass dies etwas ist , das Sie im Inspektor ändern möchten, die Zeit zwischen feindlichen Suchen, das kann ziemlich Standard sein. Aber wenn Sie denken, dass Sie diese Variable möglicherweise ändern müssen, funktioniert diese Variante offensichtlich nicht. Du musst hier hochgehen, eine separate Variable erstellen, eine separate Variable erstellen wenn du das getan hast, herzlichen Glückwunsch, das ist der bessere Schritt oder die bessere Denkweise, je besser das Spieldesign vielleicht ist. Aber für mich glaube ich, dass dies etwas sehr Konstantes sein wird, etwas, das sich nicht ändern wird. Ich glaube nicht, dass wir jemals die Zeit zwischen feindlichen Suchvorgängen ändern müssen. Wird das fertig sein? Lass uns wieder hier rein gehen. Und wir müssen sicherstellen, dass wir, wo ist es hier drin und aktualisieren. Wir werden überprüfen, ob der Zustand dem Punkt der Laichzustände entspricht, die warten. Das bedeutet also, dass wir ständig Feinde hervorbringen und wir warten. Also prüfen wir, nachdem wir diese for-Schleife offensichtlich beendet haben, prüfen wir, ob der Zustand wartet. Wenn es dann hier drin ist, werden wir prüfen, ob die Feinde am Leben sind. Und beachten Sie, dass wir dieses Ausrufezeichen hinzugefügt haben, was genau das Gegenteil bedeutet. Wenn also alle Feinde Lloyd haben, wird das Debug-Punktprotokoll speichern, winken. Abgeschlossen. Spar dir das auf. Und sonst, wenn nicht , werden wir einfach zurückkehren. Und warum machen wir das? Warum sagen wir „Rückkehr“? Wir sagten, dass zurückgegeben bedeutet, dass wir nichts anderes innerhalb der Methode tun , insbesondere im Update. Warum? Denn sobald die Welle abgeschlossen ist, wollen wir nicht wieder in die Welle zurückkehren, können jetzt prüfen, ob wir nicht laichen, was wir nicht sein werden, weil wir offensichtlich sind und das Warten und die Aufnahme wieder starten und fang wieder an, die Feinde zu erschaffen Sobald die Welle abgeschlossen ist, möchten wir verhindern, dass das gesamte Update funktioniert. Also werde ich das speichern. Ich gehe zurück in meinen Gewinn. Und jetzt sollten wir das sehen, wenn wir das Spiel laufen. Also bekommen wir, nach fünf Sekunden Countdown, den Feind zählen. Nach zwei Sekunden können wir den Feind noch einmal zählen. Und los geht's. Sie können sehen, dass wir alles gestoppt haben, damit wir nicht mehr Feinde bekommen, die wir müssen. Also werde ich versuchen, die umzubringen. Also haben wir beide. Und wie Sie sehen können, ist die Welle wieder abgeschlossen und dann beginnen die Feinde wieder zu laichen. Okay, großartig. Wenn das aus dem Weg ist, stellen Sie sicher, dass Sie Ihre Änderungen übernehmen. Ich hoffe es gefällt dir und ich sehe dich im nächsten Video, in dem wir Punkte für mehrere Wellen spawnen und alle vervollständigen, alle Feinde töten und den ganzen Weg abschließen, den ganzen Weg abschließen, und vielleicht eine wirklich nette Botschaft haben. Wir sehen uns dann. 98. Fertigstellung der Wellen: Willkommen zurück, Meine Lieblingsspielentwickler. In diesem Video werden wir die Welle tatsächlich vervollständigen und neue Wellen starten. Sobald wir alle fertig sind, haben wir die Möglichkeit, die Türen zu öffnen. Öffne sie noch nicht, aber wir werden es tun. Leider, denn das könnte viel Spaß machen. Ich werde es nicht im Intro demonstrieren, aber schauen Sie sich das Video an. Sie werden sehen, dass es tatsächlich funktioniert. Wir haben dafür gesorgt, dass es so ist. Wir sorgen immer dafür, dass es so ist. Okay. Also denke ich, dass wir uns an einem guten Punkt befinden. Wie Sie sehen können, haben Sie versucht, Feinde nach dem Zufallsprinzip zu laichen. Die Zeit ist vorbei. Lass mich okay. Das Rückgrat an derselben Position, die wir sie nennen, sollten wir im Inspektor sehen, dass wir alle Wellen vollendet haben, was bedeutet, dass wir die Türen öffnen werden. Verschwenden wir also keine Zeit mehr und fangen wir an. Oh, okay. Was passiert gerade? Zuallererst habe ich vergessen, alle meine Akten zu inszenieren. Ich nenne es eine instanziierte, verschiedene Arten von Feinden. Dies war das vorherige Video, aber konzentrieren wir uns jetzt auf das, was in der Rendite passiert. Sie erinnern sich also, dass wir im letzten tatsächlich angefangen haben, Wellen zu vollenden, aber nicht so sehr Weiß , denn obwohl wir eine Welle beendet haben, haben Sie das vielleicht bemerkt Dann wieder, und es bedeutet Start laichen. Warum ist das so? Nun, das liegt daran, dass der Wave-Countdown offensichtlich immer noch weniger als 0 ist. Wir gehen wieder zum Laichen zurück. Und nun, offensichtlich, tut uns leid, wir werden nicht wieder zum Laichen zurückkehren, also fangen wir immer wieder mit Co-Routine an. Was brauchen wir also? Müssen wir eigentlich zuerst eine neue Welle beginnen? Und zweitens müssen wir all das zurücksetzen und sicherstellen , dass wir am Ende alle Wellen stoppen. Wir haben alle Wellen beendet. Wir können die Tür öffnen und so weiter. Mann. Nicht nur das , wir wollen auch in diesem Video mehrere Punkte schaffen aus denen die Feinde spawnen werden. Also haben wir alle Hände voll zu tun. Verschwenden wir keine Zeit mehr. Was sollen wir hier drin machen? Zunächst scrolle ich nach unten und erstelle eine neue Lücke, Start New Wave. Und was ist passiert? Und hier drin werde ich sagen, dass wir, sobald wir eine neue Welle beginnen wollen , den Staat auf die Laichstaaten setzen werden , die zählen. Hier drin zählen wir also für die nächste Welle und der Wellen-Countdown wird der Zeit zwischen den Wellen entsprechen. Leute, kein Feind durchsucht die Zeit zwischen Wellen. Und dann werden wir hier prüfen, ob die nächste Welle plus 1 der Länge der Wellen entspricht. Das bedeutet also, dass wir auf dem letzten Weg sind, dass die nächste Welle die letzte ist. Dann sagen wir das Debug-Punktprotokoll. Und hier drin sagen wir, dass wir alle Wellen vollendet haben. Und ich habe gerade etwas gesagt, an das ich glaube, stimmt das nicht hier drin? Zuallererst müssen wir zwei Gleiche hinzufügen, gleich, um zu vergleichen, wenn wir ein Gleiches hinzufügen, was bedeutet, dass wir zwei Gleiche zuweisen , wie beim Vergleich. Und ich sagte hier drin, dass die nächste Welle die letzte ist. Nein, als ich nächste Woche sagte, plus 1 entspricht Welle dieser Länge, bedeutet das, dass die nächste Welle genau hier ohne das Plus eins als letzter Index ist. nächste Welle plus 1 ist also die Größe des gesamten Arrays, nämlich die Wellenpunktlänge. Das bedeutet also, dass wir uns derzeit auf dem letzten befinden, was bedeutet, dass das Debug-Punktprotokoll besagt, dass wir alle Wellen abgeschlossen haben. Und wir fügen hier einfach einen Kommentar hinzu. Wir können die Türen öffnen, Türen öffnen, Belohnungen bekommen usw. Okay, und wenn wir fertig sind, also wenn wir nicht auf der letzten Welle sind, was werden wir tun? Nun, wir werden sagen, dass die nächste Welle plus plus, also plus, also haben wir die nächste Woche um eins erhöht. Jetzt müssen wir nur noch tun, wenn wir nach den Feinden suchen und aktualisieren und die Welle abgeschlossen ist, werden wir mit einem neuen Verzicht beginnen. Also glaube ich, dass das alles ist, was wir tun müssen. Also gehe ich hier drin wieder in mein Spiel und sage es jetzt jeden Tag, bitte. Lassen Sie uns also im Level-Manager sicherstellen, dass wir keine Probleme haben. Ich ändere das in die, wo sind die Feinde? Machen wir es kleiner oder sind die feindlichen Prefabs, Feind? Okay, also haben wir das Erdöl, lasst uns sicherstellen, dass die erste Welle nur ein Skelettfeind hat. Und wir werden hier eine zweite Welle erzeugen, die ist, nennen wir es einfach High Wave, weil wir die fliegenden Augen haben und beides haben werden. Davon sind die Feigen. Wir werden also wissen, wann wir in der nächsten Welle sind. Also werde ich das alles retten. Ich werde hier einchecken, okay, Zeit zwischen den Wellen. Lass uns das Spiel laufen und sehen, wie das aussieht. Also werde ich das Spiel laufen und wir sollten nur Skelette sehen. Skeleton, los geht's. Skeleton, los geht's. Wenn wir sie jetzt töten, sollten wir erst nach den fünf Sekunden fliegende Krähen sehen. Los geht's, The Flying Crow, du kannst es hinter diesen beiden sehen, und sie haben mich getötet, aber alles scheint einwandfrei zu funktionieren. Wie Sie sehen können, setzen wir die Zeit zurück. Wenn wir nach unten scrollen. Wenn du nicht ganz verstanden hast, was passiert, lass es mich einfach einmal wiederholen. Sobald wir also eine neue Welle beginnen, zählen wir runter, bis wir zur nächsten Welle kommen. Dann wird der Wave-Countdown auf die Zeit zwischen den Wellen zurückgesetzt . Also ein Update. Und hier werden wir Time.Deltatime jedes einzelne Frame entfernen, was bedeutet, dass wir die neue Welle starten. Dann prüfen wir, sind wir auf der letzten Welle? Wenn wir es sind, bedeutet das, dass wir alle Wellen vollendet haben und die Tür öffnen können. Leider haben uns unsere Feinde getötet , bevor wir dazu Gelegenheit hatten. Aber bevor wir das tatsächlich testen und sicherstellen, dass es genau hier funktioniert. wir zunächst mehrere Punkte, Erzeugen wir zunächst mehrere Punkte, aus denen die Feinde spawnen können. Denn wie Sie sehen können, mögen es uns nicht wirklich alle Feinde zusammen und 1 zu zerdrücken und sie klein zu haben. Wir wollen eine Art von Vielfalt haben. Dafür werde ich also eine Herausforderung stellen, um Spawn-Punkte für Feinde zu schaffen. Zuallererst müssen Sie ein Array erstellen, um Anleihen zu spawnen. Also diese Spawn-Punkte, dies sollte vom Typ sein dieses Array transformieren. Dann müssen Sie die Punkte in Einheit erstellen und sie dem Inspektor hinzufügen, offensichtlich im Level-Manager. Als wir schließlich einen Feind hervorgebracht haben, wählen Sie zufällige Spawn-Punkte und legen Sie sie dorthin. Also werde ich dir sagen, dass du das Video pausieren weil mein Punk aus irgendeinem Grund nicht nur richtig funktioniert. Also sehe ich dich in ein bisschen. Hey, willkommen zurück. Wie bist du damit zurecht gekommen? Wenn ich dann hier nach oben scrolle und ein serialisiertes Transformationsfeld erstelle , das zu einem Array der Spawn-Punkte wird. Spar dir das auf. Und dann scrolle ich nach unten zum, mal sehen, was wir hier drin haben. Oh, also wo reagieren die Feinde genau hier, wir können den Debug einfach entfernen. Er hat es nicht mal einmal benutzt. Also hier drin, was sollen wir tun? Nun, wir werden zunächst eine Transformation von offensichtlich einer Variablen des Typs erstellen, eine Transformation von offensichtlich einer Variablen des Typs erstellen die die Transformation auf dem Spielobjekt für diesen Machtpunkt transformieren. Und hoffentlich wird dies das letzte Video sein in dem ich das Wort Spawn, Spawn, was auch immer es ist, sagen muss. Also zwischen diesen Punkten und hier drin werde ich einen zufälligen Bereich zwischen 0 und den Spawnpunkten über die Länge sagen . Wir wählen also einen zufälligen Spawnpunkt. Und hier drin, anstatt die Transformation des Spielobjekts zu verwenden, verwenden wir den Spawnpunkt , den wir erhalten haben. Also glaube ich, dass es ziemlich einfach ist, wenn du nicht verstehst, was hier passiert. Wir haben offensichtlich die Spawnpunkte geschaffen, dass wir in nur ein bisschen eine neue Einheit hinzufügen werden. Wenn wir dann vorher einen Feind instanziieren, setzen wir ihn sofort auf das Level-Manager-Spielobjekt. Wir sagten, dass wir das nicht tun wollen. Was wir stattdessen tun, ist, dass wir den Transformationsbox-Bombenpunkt verwenden. Wir erstellen ein zufälliges mit dem Array, das wir dort oben haben, indem wir einen zufälligen Punktbereich von 0 bis zu diesem Punkt verwenden, Punktlänge. Und dann setzen wir den Feind, instanziieren sie und antworten auf Punktdokumentation. Das sparen wir uns. Wir gehen zurück in Unity. Ich werde diesen ganzen Bond-Punkt unter dem Level-Manager erstellen , da er alle laichenden Quellpunkte behandelt. Und ich erstelle einen leeren Spawn-Punkt, 1, 2, 3. Also werde ich drei Spawn-Punkte haben. Lassen Sie uns die Szene ein bisschen größer machen. Und hier drin, Mal sehen, der erste wird hier sein, der zweite wird hier sein, und der dritte wird hier sein. Speichern Sie das alles also wieder im Levelmanager. Mal sehen, was wir hier haben, die Spawnpunkte. Lasst uns, ups, sperren wir das ab. Lass uns ziehen, Entschuldigung. Ziehen wir die Spawn-Punkte genau hierher. Wir sagen, nun, dass wir das Spiel laufen. Und jetzt sollten wir sehen, wie wir suchen, also 321, Los geht's. Also haben wir hier einen hervorgebracht. Nach zwei Sekunden ist einer da oben. Also werde ich versuchen, sie alle zu töten. Und lass uns die zweite Welle sehen. Diese Welle kommt runter. Dann bekommen wir einen Feind, der hier oben ist, einen zweiten Feind, der hier unten ist. Und dann werde ich versuchen, sie mit und dem Blick auf die Szene zu töten , damit ich sie aus großer Entfernung erwischen kann. Also stirbt die Strömung, der Feind. Und jetzt haben wir einen Countdown. Wir können genau hier sehen, dass alle Wellen abgeschlossen sind. Wenn wir doppelklicken, wo ist es? Es ist genau hier, wo wir offensichtlich die Türen öffnen werden. Und das nächste Video und das Erstellen von Portalen , die uns in eine andere Dimension bringen werden. Eigentlich ist es nur eine andere Ebene. Aber wie auch immer, du verstehst den Punkt. Stoppen wir das Spiel. Aber hör auf Einheit. Stellen Sie sicher, dass Sie unsere Änderungen übernehmen. Und ich nenne das das, das, jetzt vollenden wir tatsächlich Waves. Wir fangen an, diese Änderungen zu übernehmen. Und wir sehen uns im nächsten. Und wenn es Ihnen Spaß macht, liegt dies über dem Ende des Kurses. Stellen Sie sicher, dass Sie eine Bewertung hinterlassen, um viel zu helfen. Und ich werde sehen, dass du dich interessierst. 99. Auswahl eines Raums: Willkommen zurück meine Spieleentwickler zu einem brandneuen langen Video. Wir werden keine Zeit verschwenden. Und dieses Video, was wir tun, ist, wenn wir die Feinde töten, das ist nicht sehr aufregend. Ich sage dir einfach, wenn wir die Feinde töten, wählen wir zwei Zufallszahlen aus. Das war's. Das ist alles was wir tun. Im nächsten Video wirst du sehen warum, aber es ist ein ziemlich kompliziertes Konzept bei dem wir eine neue Art von Schleife lernen. Wir haben die Wahrheitstabellen gelernt. Es ist es also sehr, sehr wert. Das verschwendet also keine Zeit mehr und lasst uns anfangen. Oh, Fall. Jetzt vollenden wir die Wellen. Es ist Zeit, das Zimmer zu verlassen und zum nächsten zu gehen. Wie werden wir das machen? Nehmen wir uns einfach einen kurzen Moment Zeit, um darüber zu sprechen. Wir gehen in die Zimmer, die Türen. Und wie Sie sehen können, haben wir zwei Türen mit zwei Portalen hinter sich. Und das ist etwas, das in jeder einzelnen Ebene gleich sein wird . Ich wollte nicht zu viel hinzufügen, nur um alles weniger kompliziert und verständlich zu halten . Was wir hier haben, sind die beiden Portale und die beiden Türen. Was passiert also, wenn wir alle Wellen oder alle Feinde in der letzten Welle töten , winken , werden diese Türen die Fähigkeit haben, sich zu öffnen. Aber wie Sie im Spiel Hades gesehen haben, haben wir immer zwei Möglichkeiten. Wir haben also zwei Portale, die wir durch 14 gehen können, sagen wir das scharfe, das andere in eine andere feindliche Arena. Und das wollen wir auch tun. Wir wollen die Möglichkeit haben, zu einer dieser beiden zu gehen? Also müssen wir diese beiden Portale vorher und diese beiden Türen auch vorher einrichten . Später werden wir vielleicht einen Namen erstellen, der erscheint, sobald wir neben der Tür sind. Wenn wir es öffnen, wissen wir, wohin wir gehen. Aber im Moment konzentrieren wir uns einfach darauf, The tatsächlich zu ändern . Wenn wir auf das Portal klicken und dieses freischalten, können Sie sehen, dass wir die Stufe 2 oder das zu ladende Level haben . Was wir also tun werden, ist, dass wir versuchen, diese zu ändern, sobald wir die Feinde töten. Also lasst uns anfangen. Ich gehe zurück in unseren Code und das erste, was ich tun werde , ist, dass ich hier drin in die Stufe des Exits gehe. Und anstatt eine Zeichenfolge zu verwenden, verwenden wir eine Ganzzahl. Also eine ganze Zahl. Warum arbeiten wir mit Ganzzahlen? Nun, weil wir hier im Szenenmanager mehrere Methoden verwenden werden , die nur einen ganzzahligen Parameter verwenden können , mit dem wir arbeiten können. Deshalb ändern wir es in Gefahr. Später wirst du sehen, warum das alles passiert. Ich werde sicherstellen, dass dies kommentiert wird , und wir werden später wiederkommen und es ändern. Aber im Moment, weil die Ladestufe eine ganze Zahl annimmt oder Sie wissen was, lassen Sie es uns behalten. Und lasst es uns behalten. Und lass uns zum Levelmanager gehen. Und in der nächsten Ebene anstelle einer Zeichenfolge werden wir anstelle einer Zeichenfolge eine ganze Zahl verwenden. Die nächste Ebene ist also eine Ganzzahl, und die Ladeszene kann tatsächlich eine Ganzzahl als Parameter verwenden. Also funktioniert vorerst alles gut. Das nächste, was wir tun müssen, ist, dass wir die beiden Türen oder die zweistufigen Ausgänge einstellen müssen . Und weil wir schon alles eingerichtet haben und wir wissen, dass es immer zwei Türen geben wird. Um es einfach zu machen, erstelle ich eine öffentliche Ebene und eine Ebene , um eine zu unterstreichen. Und dann kopiere ich das und mache es zum Unterstrich zwei. Das ist also für die zweite Ebene. Und dann werde ich auch einen Ausgang auf öffentlicher Ebene erstellen. Und dies wird der Unterstrich des Levels Exit und der Level Exit unterstrich zwei. Jetzt haben wir die zweistufige Exit-Strategie und lassen Sie uns eine Levelauswahl erstellen. Also scrolle ich nach unten, aber nicht zu viel, vielleicht genau hier. Und ich werde sagen, dass ich einen öffentlichen Void-Level-Picker habe . Und hier drin werden wir ein paar Dinge beschäftigen. Was wir also tun wollen, ist, dass wir ein Level auswählen wollen. Aber das ist nicht so einfach, wie Sie vielleicht denken, denn wir sind derzeit auf Skelett-Ebene. Das Kellys. Okay. Nehmen wir an, wir haben die Möglichkeit, zum Beispiel zum Shop zu gehen . Einer von ihnen wird der Shop sein. Wir werden versuchen, ein zufälliges Level zu wählen. Wir haben also die Möglichkeit, an der ersten Tür nach oben zu gehen, aber an der zweiten Tür haben wir die Möglichkeit, zum Schädel zu gehen , aber wir waren schon in der Skelly. Was wir also beachten müssen, ist, dass jedes Mal, wenn wir die Möglichkeit haben möchten, eine andere Ebene zu wählen, es anders sein muss als das aktuelle Niveau, auf dem wir uns befinden. Und nicht nur das, wir müssen auch das Level haben. An der linken Tür anders als die Ebene an der rechten Tür. Im Wesentlichen brauchen wir drei Dinge, die wir im Auge behalten müssen. Das Niveau, auf dem wir uns gerade befinden. Das Level, auf das geht, wenn wir durch die erste Tür gehen und das Level wird gehen, wenn wir durch die zweite Tür gehen. Wie werden wir das machen? Wie werden wir das umsetzen? Dinge finden, während wir noch auf dem gleichen Niveau sind? Hier werden wir etwas verwenden, das eine While-Schleife genannt wird. Lassen Sie mich Ihnen sagen, was eine While-Schleife ist und Sie werden sehen wie wichtig es in dieser Situation ist. Zuallererst ist es ähnlich wie for-Schleifen bei führt mehrmals einen Codeblock aus. Anstatt die Anzahl der Male vor Hand zu bestimmen, warten wir, bis eine bestimmte Bedingung erfüllt ist. Das ist also perfekt für unseren Fall hier, weil wir nicht wissen, wie oft wir nach einem Level suchen müssen , aber wir wissen, dass wir weiterhin nach dem Level suchen werden , auf das wir setzen möchten Die erste Tür ist anders als das aktuelle Niveau. Und wir werden auch weiter schauen, während die zweite Ebene an der zweiten Tür anders ist als die erste, die bereits und anders ist als das Niveau, auf dem wir uns gerade befinden. Lassen Sie mich Sie also einfach durch die Struktur der for-Schleife führen. Du siehst genau hier, wir haben die Weile. Wir öffnen die Klammern, wir haben einen Zustand versetzt. Es ist genau das Gleiche wie die if-Aussage. Und wenn es stimmt, dann werden wir etwas tun, das ausgeführt wird, und gehen dann zurück zur Bedingung, Bedingungsänderung. Wenn nicht, gehen wir zurück. Stellen Sie also sicher, dass Sie bei der Verwendung von While-Loops Vorsichtsmaßnahmen treffen , da diese viele Probleme verursachen können. Sie können in einer Endlosschleife landen, die Bedingung nicht ändert und Ihre Unity abstürzt. Vertrau mir, es passiert und passiert mir die ganze Zeit, wenn ich While Loops verwende. Stellen Sie also sicher, dass Sie das Problem kennen. Stellen Sie sicher, dass Sie die Bedingung immer ändern und immer die While-Schleife verlassen. Wie auch immer, mit dem gesagt, gehen wir zurück zu Unity. Und hier meine ich Visual Studio. Und was machen wir hier drin? Wir werden sagen, dass die Stufe, um zu eins zu gehen , gleich dem Szenenmanager ist, Punkt, aktiv wird, Punktindex gesehen. Dann werden wir eine zufällige Zufallszahl erstellen , die einem zufälligen Punktbereich von 0 oder tatsächlich von einer entspricht. Was benutzen wir einen? Nun, weil wir wissen, dass die Szene auf Index 0 nicht etwas ist, auf das wir gerne gehen würden. Lass mich dir zeigen, was ich meine. Wenn ich zurück in die Datei gehe, BuildSettings, das erste als Titelbildschirm, die neuen Waffenstacheln und alles ist verfügbar, bis auf die 0 , die und offensichtlich der letzte. Also hier drin, das Zufall fangen wir bei einem an. Von eins bis zum Szenenmanager zählt die Szene in den Build-Einstellungen. Und Sie können genau hier sehen, das ist die Anzahl der Szenen und die Build-Einstellungen. Und wir werden es um eins reduzieren, weil wir offensichtlich nicht den letzten da drin haben wollen. Jetzt, da wir eine zufällige Anzahl unserer Szenen haben, werde ich einfach diese Zufallszahl drucken. Also drucken Sie und sagen wir mal den Raum für die Zufallszahl, Zufallszahl ist und erste Runde. Und dann werden wir hier drin das Level einstellen, um eins zu gehen, um gleich dem Schrei zu sein. Okay, was passiert hier drin? Zunächst sagen wir, dass der zu fahrende Level zwar gleich dem aktuellen Build-Index ist, wir werden die While-Schleife eingeben, wobei die gewählte Zufallszahl dem Level zugewiesen wird, wenn es noch dieselbe ist, und dann überprüfe den Zustand hier drin. Wenn es immer noch dasselbe ist, erstellen wir erneut eine weitere Zufallszahl und weisen sie dem Level zu, an dem Sie gehen möchten. Und wir werden das weiter machen. Während der Level zu gehen 1 dem Szenenmanager oder dem Build-Index der Szene entspricht dem Szenenmanager oder dem Build-Index , die gerade aktiv ist. Ist dies nicht der Fall, sobald diese Bedingung nicht mehr erfüllt ist, werden wir weiter über die Dinge eingehen. Bevor wir fortfahren. Offensichtlich müssen wir etwas tun, das das Level so eingestellt ist dass es dem Szenenmanager entspricht. Die kopieren Sie einfach diese. Also senden wir es nur am Anfang als diesen, nur damit wir in die Schleife eintreten und dann weitermachen können. Also lasst uns das aufheben. Gehen wir zurück in unseren Gewinn o und wir tatsächlich. Wir haben das noch nicht. Um das zu nennen, wo sollen wir es nennen? Ich glaube, das ist Teil Ihrer Herausforderung. Nun, ich denke, es wird Teil deiner Herausforderung sein. Leider können wir es nicht testen. Aber oder weißt du was, lass es uns testen. Wenn ich also dahin gehe, denkst du, wenn du willst, kannst du es zu einer Herausforderung machen. Aber leider habe ich es dir schon gezeigt. Also hier drin, als wir den Debug sagten, sind alle Wellen vollständig. Lassen Sie uns das einfach behalten, entfernen Sie das Gemeinsame, denn jetzt können wir tatsächlich auf den Level-Manager zugreifen. Und ich glaube, es ist eine Instanz. Und wir werden auf die Levelauswahl zugreifen. Und jetzt können wir tatsächlich ein Level wählen und wir sollten auch sicherstellen, dass die Wellen vollständig sind. Und wir müssen auch sicherstellen, dass die Wellen vollständig sind. Wie werden wir das machen? Das hätten wir vorher tun sollen , aber keine Sorge. Wir werden hier eine private Variable erstellen und die Wellen werden abgeschlossen. Und wir werden es am Anfang als falsch festlegen. Also privat, oh, tut mir leid, boolesche Wellen sind abgeschlossen. Und wo setzen wir es auf wahr? Hier unten nachdem alle Wellen abgeschlossen sind. Also Wellen vollständig sind gleich wahr. Und wo wirkt sich das auf alles aus? Nun, hier oben, wenn wir jedes Mal schauen, wo wir laichen. Also werde ich das mit der Registerkarte einrücken. Und ich werde sagen, ob die Wellen noch nicht vollständig sind , also, oder? Die vollständigen Wellen sind noch nicht abgeschlossen. Wenn dieser also immer noch falsch ist , sollte es nicht falsch sein, bis wir genau hier wahr werden. dies so bleibt, glaube ich, dass das funktionieren wird, aber weißt du was, ich werde die beiden scharfen Zeilen hinzufügen und sicherstellen, dass alles richtig eingerichtet ist. Jetzt, sobald wir alle Wellen zerstört oder beendet haben, ist Waves abgeschlossen. Wir zählen nicht mehr nach unten und wir wählen ein Level. Also versuchen wir zu sehen, wie das in unserem Spiel aussieht. Also rennen wir. Und ich glaube, wir sollten das entfernen , um es schneller zu machen. Also werde ich die Feinde ein paar Mal erschießen. Warte auf die zweite Welle, die die feigen Find-Augen sind. Ich schieße die feigen fliegenden Augen ab. Und los geht's. Und wir haben noch einen hier. Sobald wir es getötet haben, haben wir die Zufallszahl drei. Und lasst uns die Konsole öffnen und das Spiel anhalten. Wenn wir also in die Konsole schauen, haben wir die Zufallszahl ist drei. Offensichtlich funktioniert das zum ersten Mal. Mal sehen, was der Build-Index 40er, Kellys sind, seine zwei. Also drei ist das Boss-Level. Also haben wir uns für ein anderes Level entschieden. Exzellent. Ich möchte wirklich, dass Sie sehen dass die Zufallszahl mehrmals ausgewählt wird, aber keine Sorge, wir werden viele Möglichkeiten für diese Dinge haben . Ich werde diesen hier drin und den Debug hier entfernen , weil wir bereits wissen, dass alles einwandfrei funktioniert. Aber es gibt offensichtlich immer noch die zweite Ebene, die wir setzen wollen. Also werde ich es dir als Herausforderung ausstellen. Und deine Herausforderung besteht darin, das Level zu setzen, zu dem du gehen willst, um es zu beabsichtigen. Nachdem wir also die erste Ebene eingestellt haben, um zu gehen , müssen wir die zweite einstellen. Und die zweite sollte anders sein als die erste Ebene. Und die erste Ebene, auf die wir gehen müssen und die, auf der wir uns gerade befinden. Sie müssen also sicherstellen, dass Sie es initialisieren. Und ich gebe Ihnen einen Hinweis, weil wir sicherstellen möchten, dass es sich von dem ersten unterscheidet und sich von dem unterscheidet, auf dem wir uns gerade befinden. Sie müssen die OP für die While-Bedingung verwenden , um zu stoppen. Und ich habe dir das Meer noch nicht gezeigt, also zeige ich es dir gleich hier. Wenn du willst, kannst du vielleicht, ich weiß es nicht, einen Screenshot machen oder vielleicht zurückgehen und die ganzen Schritte der Herausforderung sehen. Ich zeige dir jetzt die Wahrheitstabelle und die Wahrheitstabelle. Fangen wir also mit dem Ende an. Also das Ende eine Wahrheitstabelle. Wie funktioniert es? Wenn wir, wie ich gerade sagte, mehrere Bedingungen haben, müssen wir sicherstellen, dass es sich von dem aktuellen Niveau unterscheidet und dem ersten unterscheidet, das wir festgelegt haben. Es muss also eine While-Schleife sein, die überprüft das All verwendet wird, während Level zwei, die wir setzen werden, gleich Liebe ist und gehen wollen oder Stufe zwei, um zu gehen, dann müssen wir es ändern. Es muss anders sein als beides. Lassen Sie mich Ihnen zeigen, wie die Wahre, die Wahrheitstabelle funktioniert. Wenn Sie zwei wahr haben, bekommen wir ein Wahr. Wenn wir ein Falsch und ein Wahr haben, bekommen wir ein falsches. Wenn wir ein Falsch und ein Falsch haben, bekommen wir ein falsch, wir haben ein wahres und ein falsches, wir bekommen ein Falsch. Aber wenn es um das ODER geht, werden Sie sehen, dass wenn wir eine falsche und eine wahre haben, dann. Die Antwort ist wahr, aber wenn beide falsch sind , ist die Antwort falsch. Mit diesen Informationen weiß ich, dass es jetzt etwas verwirrend ist, wenn wir tatsächlich die Lösung für die Herausforderung haben, ich werde Ihnen alles erklären, obwohl dieses Video sehr lang wird, aber darüber machen Sie sich keine Sorgen. Pausiere das Video jetzt und mach die Herausforderung. Okay, willkommen zurück. Wie bist du damit zurecht gekommen? Im Level Manager weiß ich, dass dies eine der schwierigeren Herausforderungen ist, aber wir sind in der Advanced Challenge. Also hier drin werde ich sagen, dass das Wild und Level 2, oops, das Level, zu dem man gehen soll, dem Level entspricht, um eins zu gehen. Oder wie ist die, oder es sind diese beiden Spalten, oder die Ebene, zu der Sie gehen müssen, ist gleich dem Punktindex des Szenenmanagers. Also der aktuelle. Dann werden wir hier drin machen und genau das Gleiche tun. Kopiere das, ups. Füge es hier ein. Und die Zufallszahl 1, ups, tut mir leid. Jetzt Zufallszahl 1 und Zufallszahl zwei. Und das Level, zu dem Sie gehen müssen, ist gleich zufällig 2. Und Indien, wir werden sparen, dass das Level, zu dem Sie gehen müssen, Punktinstanz des Szenenmanagers entspricht. Oder wir können sagen, dass dieses Level auf das Niveau geht , um eins zu gehen. Aber weißt du was, ich möchte nicht riskieren , dass es nur die Dinge sicher hält. Aber, uchs, fügen Sie es hier ein, speichern Sie sich das, was gerade passiert. Es gibt also ein Problem, da wir den Level-Ausgang nicht verwenden können Wir müssen den Level festlegen, um das zu speichern. Was passiert hier drin? Wir haben den Level festgelegt, zu dem gehen soll, genau wie der Szenenmanager oder der Index der aktuellen Szene zu sein. Und hier drin prüfen wir, was hier drin ist , wie gesagt, wenn wir wieder in unsere Wahrheitstabelle des Off gehen, lasst es uns hier behalten und sehen, wie alles aussieht. Also beginnen wir damit, als Level zu überprüfen, um auf gleich zwei zu gehen, Level um eins zu gehen. Und derzeit unterscheidet sich das Level, auf das man gehen soll, oder solide Ebene, um eins zu gehen , als der aktuelle Szenenmanager. Dieser Zustand ist also falsch, was gut ist. Das bedeutet, dass wir nicht in die While-Schleife eintreten werden. Aber wir überprüfen dann Level, um zu gehen, ist es gleich dem aktuellen Build-Index? Das ist es. Dann haben wir eine wahre Bedingung, die genau hier ist, und eine falsche Bedingung, die genau hier ist. Wenn wir also in die Wahrheitstabelle schauen, haben wir eine wahre Bedingung mit einer falschen Bedingung, das bedeutet, dass die ganze Reihe von Bedingungen wahr ist. Das heißt, wir gehen dann zurück in die While-Schleife, und genau das wollen wir. Wenn wir 11 davon wahr haben, möchten wir zurückgehen und eine weitere Zufallszahl erstellen und die Zufallszahl erneut festlegen. Und das werden wir so lange tun, bis diese Bedingung falsch ist. Und diese Bedingung ist falsch, weil nur zwei Bedingungen, die falsch sind, eine totale Falsche machen. Also wieder hier drin, wenn das Level auf anderes als das Level geht, um eins zu gehen, und es ist anders als das aktuelle. Erst wenn beide falsch sind, ist die gesamte Bedingung falsch und wir fahren fort. Also lasst uns wieder hier rein gehen. Wir werden diese ausdrucken und das Spiel ausführen und dich wissen lassen, lass uns 11 Manager entfernen, der einen der gruseligen Typen entfernt hat . Und lasst uns das auch entfernen und das Spiel ausführen , weil wir das ziemlich schnell demonstrieren wollen. Der Feind wird also nur ein bisschen erscheinen , so dass wir tatsächlich nur ein Skelett für Skelette haben , sobald wir sie getötet haben, sollten wir das sehen. Da sind wir los. Also rufen wir sie an, gehen zur Konsole, pausieren das Video, pausieren das Spiel. Ich meine, und du kannst sehen, dass wir sie leiten. Nummer 1 ist 3, die Zufallszahl 2 ist 4. Sie sind beide unterschiedlich. Wir haben Level ausgewählt, stellen Sie sicher, dass Sie Ihre Änderungen übernehmen, und wir sehen uns im nächsten. 100. Gehe auf die nächste Stufe: Willkommen zurück, meine Spieleentwickler. In diesem Video machen wir nicht viel, aber wir verstehen etwas oder eine Reihe von Methoden und Dissektionen von Strings, die sehr kompliziert, aber für unseren Fall äußerst notwendig sind, um weiterzumachen. Verschwenden wir also keine Zeit mehr und fangen wir an. Dies ist eines der technischeren Videos, glaube ich, und die gesamte Serie des gesamten Kurses. Also brauche ich deine volle Konzentration. O k. Jetzt haben wir also die Wellen vollendet. Wir haben die Niveaus oder die potenziellen Niveaus, auf die wir gehen wollen , irgendwie eingerichtet werden. Jetzt ist es an der Zeit, es auf die nächste Stufe zu bringen und es zu bringen, die nächste Ebene zu nehmen und tatsächlich die Namen der Levels anzuzeigen , auf die wir hier an den Türen gehen können. Was ich tun werde, ist dass ich zur Tür gehe, ich klicke hier mit der rechten Maustaste und erstelle eine Benutzeroberfläche für diese Tür. Wo ist der UI-Canvas? Los geht's, die Leinwand. Und wenn ich das öffne, wird dies die Textanzeige Canvas sein. Und wenn ich auf diese Leinwand gehe und du siehst , was die Tür hat, okay, also großartig. Und auf der Leinwand hier werde ich den Weltraum auswählen. Und ich doppelklicke, um die ganze Leinwand zu sehen. Wir werden es auf 0,001 auf das x und auf das y reduzieren . Und ich werde die Position auf 0, 0 zurücksetzen. Wenn wir jetzt doppelklicken, ist es sehr klein. Also müssen wir diesen ohne 0 und dieses ohne 0 machen . Und oder füge vielleicht eine 0 hinzu, aber mach diesen A2. Oh, eine Fünf. Ja, scheint gut zu sein. Und diese 15, vielleicht sollten wir das größer machen. Machen wir eine Acht und diese. Und es auch, ja, also denke ich, es ist ziemlich gut, ziemlich solide. Hier werden wir also die Texte hinzufügen , die wir anzeigen möchten. Und was wird dieses TextView anzeigen? Es wird das Level angezeigt, zu dem Sie gehen können , sobald Sie diese bestimmte Tür öffnen. Also werde ich die Änderungen übernehmen. Und wenn ich die Änderungen auf eine niedrigere anwende, werden Sie feststellen, dass die Tür jetzt auch eine eigene Leinwand hat und alle anderen nachfolgenden Türen auch diese Campus haben sollten. Also arbeite ich hier weiter. Ich klicke mit der rechten Maustaste auf die Benutzeroberfläche und füge einen Text hinzu Mesh Pro. Also ein Text Mesh Pro, das ist der Ebenenname. Drücken Sie Enter und machen Sie es ein bisschen größer. Lass es uns hier aufstellen oder weißt du was? Lassen Sie uns den Levelnamen unter und das Duplikat dieses setzen und ihn hier hinzufügen. Und das wird uns einfach lesen, um die Tür zu öffnen. Und lasst uns das Alles ändern. Nun, alles, was wir immer machen, automatische Größe, Max, Level, Farbe, und aus irgendeinem Grund kann ich es nicht sehen. Warum kann ich es nicht sehen? Sollte nicht der Ebenenname sein, sollte dies die offene Texteingabe sein. Was ist das Problem? Wenn ich es hier hineinziehe, aber es wird nicht angezeigt und hier. Und wenn ich die Canvas-Sortierebene öffne, setze auf den Player, also los geht's. Also habe ich die Sortierebene so eingestellt, dass sie auf der Ebene und weil ich die Front hier drin habe, werde ich es einfach machen, um alles ein bisschen besser zu machen. Okay? Also ändere ich die Sortierebene der eigentlichen Leinwand hier du siehst, dass ich sie an den Spieler verkaufe. Und ich sage von Anfang an, wir neue Ebenen setzen müssen. Das hab ich nicht gemacht. Vielleicht hast du es getan. Das ist besser. Du kommst schneller voran als ich. Drücken Sie also E, um die Tür zu öffnen. Und hier drin wird dies die Textebene sein, der Ebenenname. Und lasst uns das auch ändern. Verkaufe es auf fette Größe, max. Und okay, großartig, also speichern wir das. Wir gehen zur Tür und wir werden die Änderungen übernehmen. Und los geht's. Jetzt können Sie sehen, dass dieser auch einen eigenen Ebenennamen hat , und drücken Sie die E-Taste, um die Tür zu öffnen. Was werden wir jetzt eigentlich tun? Wir wollen den Levelnamen bekommen, der eine Zeichenfolge und dieses Schild sein sollte genau hier. Aber wie du dich erinnerst. Die Ebene des Ausgangs, wo ist es ein Ausgang? Wir ändern dies in eine Ganzzahl. Wie werden wir das eigentlich hier machen und anfangen? Ich schaffe den Anfang. Und jetzt musst du dich sehr konzentrieren, aber mach dir keine Sorgen, alles wird langsam aber sicher erklärt. Also erstelle ich zunächst eine String-Variable , die der Szenenpfad sein wird. Und dieser Weg wird dem gesehenen Dienstprogramm gleich sein. Als Dienstprogramm gesehen, aber offensichtlich können wir es nicht benutzen. Also füge ich hier die Geschäftsleitung hinzu. Und jetzt sollten wir Zugriff auf das Szene-Dienstprogramm haben. Und dann aus demselben Dienstprogramm werde ich gesehen, Pfad genau hier durch den Build-Index sehen kann. Jetzt kann ich das hier hinzufügen und ich kann das Level sagen, das geladen werden soll. Spar dir das auf. Was wird uns das geben? Ich werde einfach weitermachen und das hier drin ausdrucken. Also sage ich, drucke den Szenenpfad aus. Und lasst uns einfach den Pfad verkettet sehen. Spar dir das auf. Und bevor ich weitermache, gibt es etwas, das wir wahrscheinlich hätten tun sollen, und das ist tatsächlich die Verwendung des Levels Exit One und Level Exit auf zwei, die dem Level zugewiesen werden sollen. Also Levelmanager und wo sind die Level-Exits? Wellen? Wir haben Spawns 0, also sind sie nicht hier drin. Und ich wähle die Portale aus. Also hat Portal dieses. Welches hat also das erste Portal? Dieses und das zweite Portal wird das zweite im Level Manager sein. Also los geht's, wir sparen das. Jetzt haben wir Zugriff auf beide Portale. Und jetzt können wir wieder reingehen, nach unten rutschen und den Levelmanager. Und nachdem wir die Stufe des Exits, einen Punkt auf dem Level Exit, können wir es entweder sofort zuweisen, diese öffentlich nennen oder wir können hier eine kleine Methode erstellen, wir sagen , dass es sich um eine Öffentlichkeit handelt ungültig. Und wir sorgen dafür, dass das Level geladen werden soll. Und das wird die Belastung der Stufe zwei sein. Oder lasst uns einfach das Level schaffen. Also kürze es ab. Und hier drin werden wir nur sagen, dass der Level auf niedriges Niveau geloopt ist. Speichern Sie das wieder im Level-Manager, der die Ebene auf geladen hat. Und es wird die Stufe 1 sein. Und dann setzen wir hier Punktwert der Stufe x2 auf niedriges Niveau, um auf zwei zu gehen. Exzellent. Jetzt sollten wir dieses Level laden müssen , außer genau hier. Und ich zeige dir einfach, was wir auf dem Bildschirm sehen werden. Wenn wir das Spiel ausführen, sollten wir genau hier in der Konsole sehen , lass uns das pausieren. Und die Konsole werden wir den Szenenpfad-Asset-Szenen im Stil des Bildschirms sehen . Offensichtlich ist dies der Pfad, den wir senden, und dies ist das aktuelle Level, das geladen werden soll. Und wie hoch ist das aktuelle Niveau, auf dem wir uns befinden? Es wird derzeit auf 0 festgelegt. Also 0, wenn wir in den Einstellungen hier drin schauen, können Sie sehen, dass 0 der Titelbildschirm ist, damit Sie sehen können, wie der Szenenpfad angezeigt wurde. Unser Ziel ist es also, alles zu entfernen und einfach den Titelbildschirm zu behalten und ihn direkt hier unter dem Türnamen angezeigt zu lassen. Das werden wir also tun. Wenn ich wieder reingehe, entfernen wir den Druck. Und jetzt ist das der gruselige Teil. Ich werde sagen, dass die Ganzzahl der letzte Schrägstrich ist und gleich dem Szenenpfadpunkt des letzten Index von ist. Und benutze diesen Schrägstrich. Eigentlich liegt es zwischen einem einzigen Zitat. Was passiert hier drin? Lass uns nochmal drucken und oder wissen was. Lass uns weitermachen und du wirst leicht verstehen, was das bedeutet. Also String-Name und es wird gleich dem gleichen Pfad-Substring letzten Schrägstrich und plus 1, 0 plus 1. Und lasst uns versuchen, den Namen auszudrucken und zu sehen, was wir bekommen. Sie können also die letzte Indexteilzeichenfolge sehen, und dann werden wir diese erneut ausführen , damit wir sehen können, was passiert. Also führen wir das Spiel und wir können sehen, dass wir gerade den Titelbildschirm haben. Was ist hier los? Sprechen wir zuerst über die Teilzeichenfolge. Lass mich dir einfach zeigen, was das ist. Okay, hier drin können Sie die String-Punkt-Substring-Methode und -Definition sehen die String-Punkt-Substring-Methode und -Definition und eine Teilzeichenfolge von dieser Instanz abrufen. Und Sie können sehen, dass wir einen int 32 verwenden können, ruft eine Teilzeichenfolge ab, die offensichtlich eine Zeichenfolge darstellt. Dann haben wir einen Teilstring. Teilstring beginnt an einer bestimmten Zeichenposition und setzt sich bis zum Ende dieser Zeichenfolge fort. Das passiert also hier drin. Wir bekommen den letzten Index bei dem wir diesen Schrägstrich haben. Und dann verwenden wir eine Teilzeichenfolge davon. Denken Sie also daran, wie zuvor das angezeigt werden würde. Ich werde den Szenenpfad hier noch einmal ausdrucken den Szenenpfad hier , damit Sie deutlich sehen können , wie das alles funktioniert. Nun, ich nehme mir die Zeit, alles zu erklären , weil das ein bisschen verwirrend ist. Auf der Konsole gehen wir also Assets, Szenen und den letzten Index, in dem wir diesen Schrägstrich und dann einen Titelbildschirm haben . Wir haben den letzten Index , der hier die ganze Zahl ist. Und dann ist der Name eine Teilzeichenfolge, die beim letzten Schrägstrich plus eins beginnt. Also fangen wir sofort nach dem Besuch gleich hier nach dem letzten Schrägstrich an. Jetzt besteht der letzte Schritt darin, auch den Punkt zu entfernen. Also mache ich das. Und hier drin werde ich sagen, dass int dot gleich dem Namen Punkt letzter Index von ist. Und dann benutze ich den kleinen Punkt. Und dann werde ich endlich ausdrucken. Und wahrscheinlich solltest du das jetzt machen , wo du weißt, wie alles gemacht wird. Nennen Sie Punkt-Teilstring. Und wo ist es zwischen 0 und dem Punkt. Und das ist auch eine andere Form der Teilzeichenfolge. Sie können es genau hier sehen, einen Teilstring und 32 und 32. Wenn wir also zwei Parameter angeben, ruft es eine Teilzeichenfolge von dieser Instanz ab, die an einer bestimmten Zeichenposition beginnt und eine bestimmte Länge hat. Ich gehe hier wieder rein. Ich werde das alles speichern und ich werde das Spiel ausführen. Und jetzt führen sie das Spiel aus. Und Sie werden in der Konsole sehen, dass wir zuerst den ganzen Weg hatten, dann haben wir ihn reduziert. Und schließlich haben wir Zugriff auf den Titelbildschirm. Wie Sie sehen können, ist das sehr mächtig und ich gebe ein bisschen kompliziert zu, aber das ist die einzige Möglichkeit, es tatsächlich für den einzigen Weg zu tun , von dem ich weiß, dass es vielleicht einen anderen Weg gibt, aber für jetzt ist es Zeit für eine Herausforderung. Und Ihre Herausforderung besteht darin, den Text in einem neuen Skript festzulegen , damit der Text erscheint und verschwindet, wenn sich der Player in einem bestimmten Bereich neben der Tür befindet, ein neues Skript abrufen und es an das UI-Objekt anhängen. Natürlich müssen Sie ein neues Skript erstellen, das den UI-Elementen oder der UI-Canvas hinzugefügt wurde , oder vielleicht sogar die Tür, wenn Sie möchten, sofort zur Tür hinzugefügt, verwenden Sie den Unternehmer Enter und Beenden ähnlich wie bei den Ladenartikeln, verwenden Sie die E-Taste, um die Türen zu öffnen und sicherzustellen , dass wir die Leinwand nicht sehen können, wenn wir das Spiel starten. Also diese Informationen, pausieren Sie das Video jetzt und machen Sie VJ alleine. Okay, willkommen zurück. Dieses Video wird also zu lang. Wir sind schon über 15 Minuten dran, und ich möchte das nicht zu einem riesigen Video machen, also werde ich es jetzt schneiden. Ich hoffe, du hast die Herausforderung bewältigt. Im nächsten Video werden wir mit allem weitermachen. Ich hoffe es gefällt dir. Wir sehen uns im nächsten. Änderungen nicht zum ersten Mal Ihre Änderungen nicht zum ersten Mal, denn wir werden viele Dinge tun und das nächste. Wir sehen uns dann. 101. Nächste Stufe Der richtige Weg: Willkommen zurück, meine Spieleentwickler. Sieh mal, was wir gerade geschaffen haben. Wir führen das Spiel aus. Wir werden einen der Feinde hier sehen. Und wenn wir ihn töten, gehen wir durch Türen. Und Sie können sehen, dass wir das Boss-Level haben und den Gesundheitsraum haben. Wenn ich also die Tür öffne, bin ich hier zum Kreis gelaufen. Da sind wir los. Ich gehe in den Gesundheitsraum. Ich kann eine Gesundheit aufheben und einen Feind töten, wenn er stirbt. Ich habe etwas anderes hier drin. Wir müssen natürlich alles auf jeder einzelnen Ebene ändern. Aber wie Sie sehen können, funktioniert jetzt alles. Verschwenden wir also keine Zeit mehr und fangen wir an. Okay. Also hast du gedacht, dass ich dich verlassen habe, aber ich habe es nicht getan. Ich hoffe, Sie haben die Herausforderung gemacht, das tatsächliche Erscheinen aus dem Namen zu schaffen . Also lasst uns weitermachen und genau das machen. Zuallererst gehe ich in die Tür und hier, und ich werde einen weiteren Box Collider hinzufügen, der der Box Collider 2D sein wird , der ein Auslöser sein wird und ich werde es ein wenig machen ein bisschen größer. Also werde ich es ja groß machen. Also ist es gleich um die Tür. Und ich werde fortfahren und die Änderungen anwenden, Änderungen. Jetzt sollten wir hier einen Box Collider sehen, der auch ein Auslöser ist. Beide sind Auslöser. Und jetzt gehe ich zur Tür oder gehe tatsächlich in die Drehbücher hier drin. Mach das ein bisschen größer , weil wir kaum etwas sehen können. Und wo sollen wir welche hinzufügen? Lass uns weitermachen und einen neuen Ordner für die Tür erstellen. Und dann öffne es und erstelle ein neues Skript, das ich den Namen Angst nennen werde . Drücken Sie Enter, um dies zu kompilieren. Heute. Jetzt doppelklicken wir hier hinein, öffnen das Skript und fangen an, ein paar Dinge zu tippen. Das erste, was wir tun werden, ist ein serialisiertes Feld zu erstellen, das Text Mesh Pro sein wird, also mit TMP Pro. Also hier drin speichern wir den Text. Mesh Bro GUDDAT GUI ist die Benutzeroberfläche des Ebenennamens. Und dann erstellen wir ein serialisiertes Feld des Spielobjekts, das ist der Ebenenname Canvas. Und dann erstellen wir ein serialisiertes Feld , das das Spielobjekt enthält, das die Tür zum Öffnen ist. Also behalten wir die Tür zum Öffnen im Auge. Und warum verfolgen wir die Türen offen obwohl ich sie sofort an die Tür füge, kann ich sagen transformieren Punkt SAT ACT oder SAT nicht aktiv. Das ist es, was wir zur Tür müssen. Aber vielleicht könnten wir es an einem anderen Ort hinzufügen , also wollte ich es hier behalten. Was machen wir also? Lassen Sie uns diesen, den letzten, öffentlich machen und Sie werden wissen warum und nehmen Sie einfach die offene Türzone. Dadurch wird sichergestellt, dass wir nur öffnen können , wenn wir in der Zone sind. Wenn wir das Spiel starten, werde ich sagen, dass der Levelname Canvas-Punkte als falsch aktiv sind , weil ich es nie sichtbar sehen möchte. Ich werde hier eine Methode erstellen , die eine öffentliche Leere ist. Legen Sie den Ebenennamen fest , der eine String-Variable aufnimmt, die wir den Ebenennamen nennen. Und hier drin werden wir nur sagen, dass der Levelname dot txt, Dateiname, UI. Da sind wir los. Der Text entspricht dem Ebenennamen, den wir gesendet haben. Dann ein Update. Was werden wir tun? Wir werden sagen, wenn der Eingabepunkt die Taste mit einem Schlüsselcode-Punkt E herunterbekommt mit einem Schlüsselcode-Punkt E herunterbekommt und wir sind, und die offene Zone, Zen. Zen, wir gehen Sue. Okay. Eine offene Tür, die Tür zum Öffnen, Punkt-Punkt, aktiv zu falsch. Spar dir das auf. Jetzt ist das nächste, was wir tun, der auf Trigger Enter zu D und der bewaffnete Auslöser zum Zuckerausgang nach D. Und ich werde prüfen der Parameter tatsächlich für die Kollision ist. Wenn die Kollision das Tag vergleicht, obwohl wir höchstwahrscheinlich sagen werden , dass dies nur mit dem Spieler interagieren kann. Aber ich möchte nur für alle Fälle meine Vorsichtsmaßnahmen treffen, nur für den Fall. Also hier drin ist eigentlich die Tür. Hat die Tür eine Schicht drauf? Das glaube ich nicht. Es gibt keine Ebene, also denken wir an den Spieler. Damit kann also nur der Spieler interagieren. Und was wir tun werden, ist, den Levelnamen Canvas-Punkt aktiv auf „true“ zu setzen. Und eine offene Zone ist gleich zu versuchen. Und wenn wir das beenden, kopiere ich das, füge es in ein neues Set ein, aktiv, falsch, und wir beneiden die offene Zone nicht mehr. Also glaube ich, dass das alles ist. Ich habe es ein bisschen schnell gemacht, also habe ich vielleicht irgendwo einen Fehler gemacht. Vielleicht sollten wir das tun. Oh, es gibt noch eine Sache, die ich tun möchte. Wenn wir aus irgendeinem Grund sagen wir, der Spieler öffnet die Tür und geht dann zurück und möchte die zweite Tür öffnen. Ich möchte diese Tür wieder schließen. Wann immer er die Zone verlässt, werde ich sagen, dass die Tür zum Öffnen, Tür zum Öffnen der Gedanken, Traurig, aktiv wahr ist. Also spar dir das auf. Also vielleicht, oder vielleicht kommt der Spieler tatsächlich durch die Tür und kann dann nicht zurückkehren , wenn er außerhalb des Gebiets ist. Dies bedeutet also, dass Sie eine Entscheidung treffen müssen, bevor Sie es durchmachen. Da das alles aus dem Weg ist, glaube ich, dass es ziemlich einfach ist. Es gibt überhaupt nichts, was kompliziert sein könnte. Ich gehe in die Ebene des Ausgangs. Und anstatt all das zu haben und anzufangen, ich rechten Maustaste auf schnelle Aktionen und Refactoring. Und ich extrahiere die Methode. Und ich sage, dass dies der Druckname ist. Bewerben Sie sich Und ich werde von Anfang an entfernen, wir brauchen es nicht mehr wirklich. Und auch hier drin werde ich sagen, dass es eine Ganzzahl gibt , die mit dem Level-Index gesendet wird. Warum mache ich das? Weil du es nur ein bisschen sehen wirst. Das zu ladende Level wäre also gleich dem Level und den gesendeten Texten. Was wir jetzt tun können, ist zurück und der Levelmanager hier drin anstelle von Sonntagslevel zu laden, was auf der Ebene des Ausgangs ist, können wir sofort den Raumnamen drucken und ich kann diese Methode entfernen. Also drucken Exit, exit, diese Öffentlichkeit weiß, dass es privat ist. Also werde ich das hier drin öffentlich sagen. Und den Namen des Raums drucken. Miete einen Zimmernamen, heb dir das auf. Wie Sie sehen können, ist dies ein bisschen besser, etwas schneller im Umgang mit Dingen. Lasst uns das alles retten. Wir können den Druck tatsächlich entfernen, und stattdessen müssen wir ihn an den Namen senden , der hier angezeigt wird. Und lasst uns zuerst sehen wo wir den Namen hinzufügen werden, der erscheinen soll. Lasst uns das aufheben. Und mal sehen, wir werden es an den Türen hinzufügen. Wir fügen es zu zwei oder eins hinzu. Und lasst uns die Änderungen anwenden. Also jetzt unter einem werden wir alles sehen , was es absperrt und hier ein paar Elemente hinzufügen. Also die Ebene, der Name, Gewicht, das ist der angezeigte Text, das ist der gesamte Canvas. Dann haben wir den Ebenennamen als Text Mesh Pro und die Tür zum Öffnen, was der aktuelle ist. Und warum habe ich das in der offenen Zone veröffentlicht? Ich weiß es immer noch nicht. Gehen wir zum Namen erscheinen und entfernen so die Klasse, machen Sie sie privat. Ich weiß nicht einmal, warum ich mich entschieden habe, öffentlich zu machen. Vielleicht nur um sicherzustellen, dass alles funktioniert. Vielleicht, vielleicht sowieso, und wenn ich die Änderungen anwende, können wir das an der Tür sehen. Wenn ich nach unten scrolle und wir alle diese Optionen haben und sie tatsächlich an der Tür 1 befestigt ist und die Textanzeige auch an der Tür befestigt ist, was sehr schlecht ist. Und alles wird dabei sein. Also müssen wir hier alles von Hand machen. Also auf der Leinwand, auf der Ebene Name und es wird oh, nein, nein, nein, nein, nein, nein. Das liegt daran, dass wir diese Sperre haben. Wenn ich auf die eigentliche Tür klicke, werden wir sehen, dass ich davon so verwirrt war weil ich weiß, dass Sie, wenn Sie die Änderungen an der Tür anwenden, sehen können, dass nur die Tür angebracht ist, aber die Tür 2, Sie können sehen, dass der Text genau hier ist und der Ebenenname derjenige ist, der genau hier ist, was wir wollen. Das ist also die erstaunliche Arbeit der Prefabs. Und ich war dort eine Sekunde lang wirklich verwirrt weil ich diese Sperre geschlossen hatte und auf die Tür geklickt habe. Es war das Gleiche. Wie auch immer, darüber machen Sie sich keine Sorgen. Jetzt, da das aus dem Weg ist, werden wir das retten. Und jetzt müssen wir irgendwie senden, oder ist es die Ebene des Exits, die wir brauchen, um diesen Namen Substring an den Namen zu senden erscheint. Also werde ich sagen, dass wir hier das serialisierte Feld des Spielobjekts haben . Die Tür. Und hier drin lässt sich der Name erscheinen, welchen wir wo haben wir ihn? Okay, also Untervermietungsname. Da sind wir los. Also entferne ich diese beiden Teile. Und dann sagen Sie, dass die 0 Tür, die Komponente „Get“, die der Name ist, der eingestellte Ebenenname erscheint. Wir schließen das und jetzt werden wir alles arbeiten lassen. Okay, also hier im Portal eins, habe ich die Tür eins zugewiesen. Aus irgendeinem Grund haben wir Dinge etwas seltsam. Vielleicht können wir das Portal genau hier bewegen, und das Portal genau hier, kann ich einfach sagen, aber so wird Portal eins die Tür als Tür haben. So werden Port 1 und die Tür 1 und das normale Portal die normale Tür haben. alles sparen wir. Und jetzt gibt es noch eine Sache, die wir berücksichtigen müssen. Und das ist etwas, worüber ich die ganze Zeit nachgedacht habe , während ich das kreiere. Und das ist, wir öffnen tatsächlich sofort die Tür. Ich weiß nicht, ob dir das aufgefallen ist. Warum ist das so? Nun, denn wenn wir hineingehen wo ist es? Eine der Komponenten hier drin, das ist der Raum, der Raummanager, den Sie hier sehen können. Wenn wir auf den Raummanager doppelklicken, werden Sie sehen, dass wir im Update sehen, wenn die gegnerische Zählung gleich 0 ist, dann werden wir alle Türen festlegen, um es zu handeln. Und das Problem hier ist, dass die Feinde immer 0 fehlen, sodass die Tür sofort geöffnet wird. Was ich hier drin machen werde, ist einfach zu prüfen, ob Goldman-Feinde geöffnet werden. Ist das nein, nicht das. Ich werde das einfach entfernen und wir können diese Mechanik und das Spiel tatsächlich hinzufügen. Und vielleicht im Wave Spawner wenn wir die Feinde instanziieren. Wenn wir also die Feinde hervorgebracht haben, können wir sie zu Kindern des Zimmers machen. Wo sind die Feinde hier. Wir können sie zu Kindern dieser Feinde machen. Dann können wir den Raummanager beenden. Anstatt nur die Feinde zu kriegen, überprüfen Sie die Überlappungen, Collider, tut mir leid, hier rein und fangen Sie an. Wir können alle paar Sekunden mit einem Update fertig werden. Stellen Sie dann sicher, dass wir die Tür nicht öffnen oder nicht danach suchen , bis wir alle Feinde töten. Das ist alles möglich. Aber aus Gründen der Einfachheit einfach in den gehe ich einfach in den Raummanager und kommentiere das einfach ab, speichere das wieder in unserem Spiel, führe das Spiel aus. Und wir sollten jetzt sehen, dass die Türen alle geschlossen sind. Der Levelname genau hier und der Levelname oder IT, das möchten wir beheben. Wir wollen nicht sehen können, was das Level ist oder auf dem es angezeigt wird. Du siehst genau hier, dass es zerstört wird. Ich werde den Feind erschießen und wir werden sehen, sobald er getötet wurde. Wenn er also stirbt, jetzt wenn ich es bekomme, sieht man, dass wir jetzt den Levelboss haben und wir den Laden haben. Ich kann das aufmachen, wenn ich gehe. Sie können sehen, dass es aus irgendeinem Grund nicht geschlossen wird. Wenn ich gleich hier gehe, öffne ich das und dann geh weg. Es schließt nicht. Das ist etwas, das wir reparieren werden, aber das war jedenfalls das Boss-Level. Mal sehen, ob wir zum Boss-Level gehen. Da sind wir los. Wie Sie sehen können, gehen wir eindeutig zum Chef. Liebe. Wie cool ist das? Jetzt wo der Boss da ist, wo ich hin werde, los geht's. Also stirbt der Boss. Wir werden warten, bis sich das öffnet. Und offensichtlich müssen wir hier ein paar Dinge ändern. Zunächst erscheinen der Levelname, der Cool im Jahr und die Stufe des Exits im Cool im Jahr und die Stufe des Exits im Namen im Start-Canvas, wir setzen die gesamte Leinwand auf false. Aber wenn wir dann eintreten, setzen wir die Leinwand auf „true“ und wir werden all das vielleicht im nächsten Video beheben. Aber die Mechaniker funktionieren, die Levels funktionieren und wir sehen uns im nächsten. Stellen Sie sicher, dass Sie alle Ihre Änderungen übernehmen. 102. Singleton-Muster: 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. 103. Endgültige Tweaking: Willkommen zurück Meine Lieblingsspielentwickler zum letzten Video und in diesem werden wir all diese kleinen Details in Bezug auf das UI-Display beheben , die sich auf den Bitcoin beziehen, der von Level zu Level kommt und alles das andere lustige Zeug. Verschwenden wir also keine Zeit mehr und lasst uns anfangen. Oh, okay, jetzt müssen wir das Problem beheben , dass unsere Feinde den Spieler nicht finden. Wir möchten auch sicherstellen, dass wir den Game-Manager als Singleton-Muster haben , da wir natürlich unsere Bitcoins von Level zu Level auf dem Laufenden halten wollen . Dafür werde ich eine Herausforderung stellen, und deine Herausforderung besteht darin, den Spieler zu finden und ihn zu finden. also zunächst sicher, dass die Feinde weiterhin nach dem Spieler suchen, bis wir sie gefunden haben. Dies muss also eine Weile Schleife innerhalb des Updates und des gegnerischen Controllers sein innerhalb des Updates und des . Das ist ein kleiner Er. Wir wollen unsere Bitcoins von Szene zu Szene halten. Machen Sie den Spielmanager also zu einem Singleton-Muster, genau wie wir es mit der Ebene getan haben. Stellen Sie sicher, dass Sie dasselbe für den Spielmanager tun. Erscheint es in der Hierarchie und der Bewohner zerstört? Denken Sie also daran, als wir den App-Layer Aidan zerstören ließen, erschien er in der Hierarchie unter einer bestimmten Registerkarte, die aufDestroy getan hat. Wird der Spielmanager auch erscheinen? Testen Sie es also, weil wir sicherstellen müssen, dass der Spielmanager kein Kind der Manager ist. Der einzige Weg, um sicherzustellen, dass er nicht zerstört wird, besteht darin, sicherzustellen , dass er kein Kind der ganzen Manager-Spielobjekte ist , die diese Informationen so gut haben. Pausiere das Video jetzt und mach es alleine. Oh, okay, willkommen zurück. Als erstes gehen wir also in den feindlichen Controller. Scrollen wir hier nach oben, um zu aktualisieren und zu einem Update. Ich werde überprüfen, dass der Spieler, den man jagen soll, zwar gleich Null ist, den Spieler dazu bringen werden, dipolar zu jagen oder zu setzen, um Objekte des Typs zu finden. Objekt fünf, tut mir leid. Und es wird der Spieler-Controller sein. Und es wird V-Punkt-Transformation sein , weil deklariert zu jagen, wie wir uns erinnern, ist ein Transport. Also greifen wir auf die Transformation zu, nachdem wir das Objekt verfeinert haben, das den Spieler-Controller auf sich hat. Das sollte also funktionieren, aber solange wir hier sind, gehen wir zum Wo ist der Spielmanager? Scrolle die Instanz nach oben. Und hier drin finde ich den Spieler-Controller. Und es spielt jetzt, okay, also Spieler-Controller, es ist genau hier. Ich kopiere genau denselben Code und füge ihn hier ein und entferne diese Instanz. Spar dir das auf. Jetzt haben wir also ein Singleton-Muster. Wir prüfen, ob es eine Instanz gibt, wir zerstören sie. Wenn die Instanz anders ist als null, haben wir zerstört und eine neue Instanz festgelegt. alles sparen wir. Gehen wir zurück in unser Spiel und schauen wir uns an, was wir hier drin tun müssen. Das erste, was wir tun müssen, ist, dass wir den Spielmanager hier öffnen müssen, und wir müssen den Spielmanager hier entfernen. Nein, es wird mir nicht erlauben, dass wir im Prefab sehen , ob ich bereits die Gain-Manager habe. Also Manager, der Spielmanager. Also öffne ich die Manager und entferne den Spielmanager. Dadurch wird der Spielmanager aus allen anderen Szenen entfernt. Und ich sorge dafür, dass ich nur den Spielmanager hier drin habe. Also keine anderen Manager, einer, tut mir leid. Wir brauchen den Spielmanager nur in der Szene. Jetzt haben wir den Spielmanager, wir haben 0 aber Münzen. Lasst uns das alles retten. Mach das nur ein bisschen größer. Lass es uns nochmal laufen lassen. Und mal sehen, was passiert. Also heben wir die Waffe auf, werden ein bisschen Münzen, wir werden einmal getroffen. Gehen wir zum nächsten Level. Mal sehen, wir gehen zum nächsten Level. Und los geht's, Wir sind auf der neuen Ebene und wir können sehen, dass wir aus irgendeinem Grund die Feinde haben, die folgen? Nein, sie folgen nicht. Irgendwas stimmt nicht. Und wie Sie sehen können, wurden die Bitcoins und die Gesundheit offensichtlich nicht aktualisiert. Und das liegt daran, dass wenn wir uns den Spieler anschauen, wenn wir den Spielmanager nicht zerstören, die Bitcoins auch nicht waren. Wenn wir uns also den Spieler ansehen, werden Sie feststellen, dass seine Gesundheit 490 beträgt, aber er wird nicht direkt hierher geschickt. Warum? Da wir nur aktualisieren, lassen Sie mich sehen, und den Gesundheitsmanager der Spieler, aktualisieren wir die Spielergesundheit erst wir getroffen werden und nicht, wenn wir tatsächlich anfangen. Also müssen wir das auch beheben. Aber bevor wir das tun, gibt es etwas, das mit der MS nicht ganz richtig ist. Also werde ich das Spiel hier pausieren und mal sehen, was das Problem ist. Sie können also sehen, dass jeder unserer Feinde uns nicht finden kann. Also doppelklicke ich. Und das Problem liegt bei dem Spieler Chase genau hier. Mal sehen, was wir dagegen tun werden. Oh, okay, also habe ich ein paar Dinge durchgemacht und endlich die Lösung gefunden. Das Problem hier drin war also, und es ist sehr einfach, wir müssen diese während des ganzen Loops hier oben verschieben . Und vielleicht möchten wir dies in eine Art Methode extrahieren. Also rufe ich diese Methode auf, um Spieler zu finden oder sicherzustellen, dass wir den Spieler haben. Warum schieben wir es hier hoch? Nun, denn wenn wir versuchen, die Bewegung in Richtung zu rufen , speichern Sie das. Was ist also das ganze Problem im ganzen Problem und das Ganze, was dies verursacht, ist, wenn wir auf ein neues Level gehen, bevor die Ebene, die nicht zerstört wird, auf die nächste Stufe kommt. Die Feinde haben bereits ein Ziel, das der vorherige Spieler war. Sobald wir ihn also zerstört haben, können wir ihn nicht mehr finden. Wenn wir das also versuchen, sagen wir, wir wollten sie auf dem neuen Level haben, wir haben alle Spieler gleich hier am Anfang gesetzt und dann zerstören wir ihn. Und dann versuchen wir, den Spieler zu jagen oder uns auf den Spieler zu bewegen, und von dort kam der Fehler. Genau hier versuchen wir den Spieler zu jagen. Und sobald es hier einen Fehler gibt, funktioniert nichts darunter. Das Update stoppt, alles hört auf. Deshalb müssen wir den suchende Spieler haben. Als erstes machen wir ein Update, bevor wir fortfahren, während wir vielleicht nur die if-Aussage hier brauchen , glaube ich, aber lasst es uns auch behalten, nur für den Fall, dass es ein bisschen fünf dauert. das also aus dem Weg ist, wir das sehen, wenn wir jetzt das Spiel ausführen sollten wir das sehen, wenn wir jetzt das Spiel ausführen, wenn wir zum nächsten Level gehen. Los geht's, wir haben keine Fehler. Wir öffnen das und los geht's. Die feigen Feinde rennen davon und sie schießen darauf. Was also aus dem Weg ist, als Nächstes müssen wir natürlich die Player-Benutzeroberfläche aktualisieren. Also gehe ich in den UI-Manager. Wir beenden das Spiel. Ja, das haben wir. Zurück im UI-Manager. Hier erstelle ich eine Methode, die die öffentliche Void-Update-Layer-Benutzeroberfläche sein wird . Und wir werden hier ein paar Dinge machen. Das erste, was wir tun werden, ist, dass wir einen Gesundheitshandler für Spieler erstellen. Tiefe Schicht Gesundheit gefärbt, und es wird gleich null sein. Und du wirst sehen warum in nur ein bisschen, denn wir werden eine While-Schleife erstellen, die auf die Gesundheit des Spielers überprüft. Und obwohl es null ist, werden wir weiterhin danach suchen die Spielergesundheit gleich ist, um Objekte des Typs zu finden. Und es wird der Layer-Health-Handler sein. Und sobald wir das gefunden haben, können wir die While-Schleife verlassen. Und dann werden wir hier drin weitermachen und zuerst den Maximalwert des Health-Schiebereglers erhalten. Und es wird gleich dem Lebenspunkt des Spielers sein , der den maximalen Wert erhält. Offensichtlich müssen wir also eine Art Möglichkeit schaffen, auf das Maximum des Spieler-Gesundheitshandlers zuzugreifen. Was haben wir jedes Jahr, Okay, also sind sie serialisiertes Feld. Lassen Sie uns weitermachen und ein Publikum schaffen und maximale Gesundheit der Ebene erhalten. Und wir werden einfach V-Max zurückgeben. Habe es nicht getan. Wir haben schon einen von denen. Nein, tun wir nicht. Lasst uns weitermachen und die gute Schicht schaffen, aktuelle Gesundheit auch, solange wir hier sind. Also die aktuelle Gesundheit und was brauchen wir sonst noch von hier? Wir könnten das brauchen, Nein, ich denke, das ist alles, was wir brauchen. Jetzt können wir also maximale Gesundheit bekommen. Und dann müssen wir den Wert des Integritätsschiebereglers so einstellen , dass er dem Layer-Integritätspunkt entspricht , der den aktuellen Zustand erhält. Spar dir das auf. Was müssen wir sonst noch tun? Wir müssen auch einen Weg finden, unseren Text zu aktualisieren. Also sage ich das, wie hieß es? Der Gesundheitstext, hieß er Health-Tech-Schritt? Los geht's und es ist auch öffentlich. Großartig. Scrollen Sie also hier runter. Der gebeugte Punkttext für Gesundheit und Gesundheit entspricht also dem aktuellen Lebenspunkt des Spielers. Die aktuelle Gesundheit. Und es ist plus der Schrägstrich. Und war die maximale Gesundheit. Also Spieler Gesundheit Punkt GetMax selbst. Da sind wir los. Also ist alles bereit, aber ich werde hier etwas machen. Und das stimmt, ein Debug-Punkt-Protokoll. Und ich möchte nur die gleichen Handlungen im Auge behalten Gesundheit. Und lass mich das einfach holen. Und das wird in nur ein bisschen Sinn ergeben. Ich verärgert das hier drin. Und du wirst sehen warum in nur ein bisschen. Also werde ich das alles retten. Ich gehe zurück nach Unity. Ich führe das Spiel aus. Ich werde Wohnung wählen, die die Bitcoins wird. Werden Sie getroffen. Bitte hol es dir. Okay, also los geht's. Geh durch die Welt, gehe durch das Portal, gehe zum nächsten Level, und du kannst sehen, dass es hier 100 sind, obwohl wenn ich auf die Ebene drücke, es für 90 ist. Was denkst du ist das Problem? Ich gebe dir nur ein paar Sekunden, um darüber nachzudenken. Das Problem war und ich sage dir, was das Problem ist. Zuallererst müssen wir die Spielergesundheit aktualisieren. Aktualisieren Sie also den Layer-Health oder die Player-Benutzeroberfläche. Jetzt lasst uns weitermachen und es testen. Vielleicht hast du es im Debugger gesehen. Mir ist gerade aufgefallen, dass wir sie nicht einmal Methoden genannt haben. Also los gehst du. Debug funktioniert, ich bekomme es. Geh durch den Larven, geh durch das Portal. Und was ist die Gesundheit? Die maximale Gesundheit beträgt also 50 und der aktuelle Gesundheitszustand ist 0. Was denkst du ist das Problem? Nun, das Problem ist wie wir im vorherigen Video gesagt haben, wir hatten bereits einen Spieler in der Szene und dieser Spieler wurde zerstört. Sobald wir diese Hausleiste und die Steuer setzen wollen, werden sie basierend auf dem alten Spieler festgelegt. Um den neuen Spieler zu setzen, was denken Sie, dass wir tun sollten? Zwar gibt es viele Lösungen für dieses Problem, aber ich fand, dass es am besten ist dies einfach von einer öffentlichen Stimme in eine öffentliche Kunst und einen Zähler umzuwandeln . Und dann werden wir Rendite zurückgeben. Neu. Warte vier Sekunden. Und lass uns einfach 0.1 warten und es wird die Zeit sein, in der wir ein Ohnmachtsbild haben , das wir ausgeschaltet haben, nur um den Testprozess zu beschleunigen. Was also passieren wird, ist, dass wir 0,1 Sekunden warten und während dieser Zeit wird der ältere Spieler zerstört, der neue Spieler wird gefunden und wir werden sofort unser Update erhalten. Also hier drin beginne ich anstelle des Update-Players eine Co-Routine, die die Aktualisierungsschicht sein wird, die Sie haben. Ich speichere das wieder in unser Spiel. Wir führen das Spiel aus. Wir haben es kapiert. Wir gehen raus, wir machen das durch und los geht's. Wir können sehen, dass unsere Gesundheit aktualisiert wurde und sie sehr nahtlos ist. Also los geht's, Wir können sehen, dass alles einwandfrei funktioniert. Und zuallererst haben wir auch die Bitcoins, also müssen wir das auch hier beheben. Und was wir auch tun wollen, ist, dass wir sicherstellen wollen , dass wir in der richtigen Position hervorgebracht haben. Antworten Sie also derzeit direkt neben dem Portal, was nicht hilfreich ist. Unser Ziel ist es , zu diesem Portal zu gelangen und nicht nur dort zu spawnen. Also werde ich zuerst hier drin sehen, was wir tun müssen. Wir müssen also den Bitcoin-Text haben, die BTC-Effekte. Da sind wir los. So BTC-Text, der Text ist gleich find oder nein, wir haben den Spielmanager, die on-Instanz. Geht, aber fortlaufend. Wir gehen, ich glaube, dieser gibt die Bitcoins zurück , die das alle als Bitcoin kennen. Wenn ich also zum Spielmanager gehe, hol dir den aktuellen Bitcoin, damit ich aktuellen Bitcoin bekomme, speichere das. Und das sollte funktionieren, außer dass es nicht daran liegt, dass Sie den Typ und zwei Strings implizit konvertieren können . Also die beiden Strings, das konvertiert alles Playstring, speichere das. Testen wir das ein bisschen aus dem Spiel. Und jetzt holen wir eine Münze und gehen zum nächsten Level. Okay, jetzt sollten wir sehen, dass wir zehn hier drin haben, los geht's. Es braucht Zeit, aber es wird nicht auffallen, besonders wenn wir das Schicksalsbild haben, aber jetzt müssen wir den Spieler an einem bestimmten Punkt spawnen. Also gehe ich in den Level Manager und mache das beim Level Manager. Und ich scrolle hier nach unten. Und ich erstelle eine neue Methode. Also hier unten werden wir eine neue Methode erstellen , die eine öffentliche Leere ist und ihre Spot-Ebene und der Punkt- und Eingabe-Player in Punkt Wir werden die Punktinstanz des Player-Controllers bekommen, Punkt nicht instanziieren, Punkt tanz, spiele einen Bullet-Controller. Okay, also Layer-Controller-Instanz. Und wir werden die Punkttransformationsposition verwenden die Punkttransformationsposition und sie wird einer Art Spawnpunkt entsprechen , der Position. Und jetzt kopiere ich das und erstelle hier oben ein serialisiertes Feld. Von der Transformation und es wird der Spawnpunkt sein. Scrolle nach unten und sieh, wie das aussieht. Ja, da sind wir los. Was hier passiert ist, dass wir den Spieler von Anfang an auf den Punkt bringen. Wo fängt es an? Hier drin werden wir den Ebenenpunkt setzen. alles sparen wir. Und was hier passiert ist, sobald der Level-Manager startet, denken Sie daran, dass es kein Tonnenzerstörer ist, es ist kein einziger Kampf auf der Punktinstanz-Punktposition des Spieler-Controllers Punktinstanz-Punktposition es ist kein einziger Kampf auf der Punktinstanz-Punktposition des Spieler-Controllers sofort an Ort und Stelle. Also zurück hier drin haben wir diese Handflächenpunkte bereits. Wir sind Spawn-Punkte 1. Also werde ich hier ein neues erstellen und es wird Layer auf Spawn sein. Und wo ist es und die Szene. Mal sehen, und es wird ungefähr hier sein. Wenn wir auf eine andere Ebene gehen, können wir dies tatsächlich außer Kraft setzen. Also im Manager überschreiben Sie und Sie können wählen, was Sie überschreiben möchten? Denken Sie daran, dass wir die Spawn-Punkte nicht überschreiben möchten , da für jede einzelne Ebene es für jede einzelne Ebene einen anderen Spawnpunkt geben wird. Also werde ich den Levelmanager des Prefab Managers überschreiben , vielleicht auch Overwrite Prefer-Manager anwenden. Da sind wir los. Und hier spawnt der Spieler Punkte. Lassen Sie uns weitermachen und das Prefab auch auf den ganzen Vorzug anwenden. Okay, großartig. Stellen Sie also sicher, dass Sie sich nicht bewerben. Alles, spar dir das alles auf. Und jetzt führe ich das Spiel aus. Ich gehe auf ein neues Level. Und das sollten wir. Nein, haben wir nicht. Das liegt daran, weil wir oh, okay. Okay. Okay. Das Problem ist also hier und 11 Manager, was ist das Problem hier drin? Wenn wir zu ihnen scrollen, spawnen wir Point und den Level-Manager. Was scheint das Problem zu sein? Außerdem los geht's, es ist hier drin. Wir müssen es einstellen. Und jetzt müssen wir zu den Level-Managern gehen und die Änderungen anwenden. Wenn wir jetzt rennen, sollten wir sehen, ob wir zum nächsten Level gehen. Nein, es funktioniert immer noch nicht. Also was ist das Problem? Die Variable wurde nicht zugewiesen. Also denke ich, dass hier etwas nicht schnell festgelegt ist. Wenden Sie sich also an Prefab Level Manager. Und was ist sonst noch das Problem? Also denke ich, dass auf der anderen Ebene der Spawnpunkt nicht richtig eingestellt wird. Also versuche ich die Änderungen zu übernehmen. Vielleicht wird es dieses Mal funktionieren. Nein, das tut es immer noch nicht, denn wenn wir zum Levelmanager des Managers gehen, Spawn-Punkt des Spielers auf dem Level-Manager, ist es nicht einmal eingestellt. Was denkst du also von einem Problem hier drin ist, dass wir einen Fehler gemacht haben weil alles hier drin zurückgesetzt wurde. Sie können also genau hier sehen, dass diese nicht eingestellt werden. Also werde ich mich vorerst alles bewerben. Das ist nicht die beste Idee, aber machen wir uns darüber vorerst keine Sorgen. Ich gehe zum nächsten Level und stelle sicher, dass wir endlich den richtigen Punkt spawnen. Aber im Moment werden wir auch Laichen haben. Und hier, wie Sie sehen können, aber das wollen wir nicht, weil jedes Level seine eigenen Feinde hat, seine eigenen Ebenen hat, Entschuldigung, Wellen und so weiter und so weiter und so weiter. Aber wie Sie sehen können, funktioniert alles. Das einzige Problem in unserem Spiel ist die Tatsache, dass wenn wir zur Tür gehen, dies das erste Mal auftaucht und wenn wir es öffnen, wenn wir weggehen, es nicht geht. Ich meine, die Worte erscheinen nicht wieder und die Tür schließt sich nicht wieder. Warum? Denn in dem Raum , den du geschaffen hast und das war ein Fehler von mir. Wir schalten die Tür aus. Also schalten wir die Tür aus, aber die Textanzeige befindet sich immer an der Tür. Also überlasse ich Ihnen das als letzte Herausforderung. Tun Sie außerhalb des Reiches der Partituren. Alles, was Sie tun müssen, ist diesen angezeigten Text von der Tür zu entfernen und ihn direkt hier auf das Portal zu legen und ihn dann genau hierher zu verschieben. Die Leinwand muss also an die Tür geklopft werden, sie muss sich auf dem Portal befinden und Sie müssen die Tür basierend auf dem Text ein- und ausschalten, es wird ein paar Änderungen am Code geben. Aber ich denke, zu diesem Zeitpunkt bist du ein so guter Spieleentwickler auf einem so hohen Niveau geworden mit all den langen, langen Videos, die ich dir beigebracht habe. Ich hoffe, dir hat dieses Video gefallen. Ich hoffe, dir hat der ganze Kurs gefallen. Ich hoffe, du hast viel gelernt. Ich hoffe, Ihnen gefällt die Reise und den Prozess. Und ich hoffe, du warst nicht zu wütend, als ich Fehler gemacht habe. Ich hoffe, Ihnen gefällt die Transparenz, die ich Ihnen zeige. Und wenn Sie mir natürlich noch nicht eine Rezension hinterlassen, stellen Sie sicher, dass Sie sich der Zwietracht anschließen und ich sehe Sie vielleicht nicht im nächsten Video, denn dieses ist das letzte. Vielleicht werden wir eines Tages in Zukunft in Kontakt bleiben. keine Sorgen. Vielen Dank fürs Zuschauen. Auf Wiedersehen.