So erstellst du ein 2D-Clicker-Spiel – Unreal Engine 5 Blueprints | Pixel Helmet | Skillshare

Playback-Geschwindigkeit


1.0x


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

So erstellst du ein 2D-Clicker-Spiel – Unreal Engine 5 Blueprints

teacher avatar Pixel Helmet, Game Developer & Publisher

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.

      1.01 Einführung

      1:31

    • 2.

      1.02 Unreal Engine 5 herunterladen

      1:27

    • 3.

      1.03 Ein neues Projekt erstellen

      3:19

    • 4.

      1.04 Unreal Engine 5 Übersicht

      21:34

    • 5.

      2.01 Spieleinführung

      3:56

    • 6.

      2.02 Ein neues Level erstellen

      2:02

    • 7.

      2.03 Die Umwelt-Assets importieren

      3:30

    • 8.

      2.04 Ein Kachel-Set erstellen

      4:01

    • 9.

      2.05 Eine Kachel-Karte erstellen

      5:08

    • 10.

      2.06 Eine temporäre Kachel-Karte entwerfen

      6:07

    • 11.

      2.07 Die Kachel-Karte im Level platzieren

      1:36

    • 12.

      2.08 Volumen nach dem Prozess

      11:13

    • 13.

      2.09 Passen Sie die Projekteinstellungen an

      4:32

    • 14.

      3.01 Spielmodus und Spieler-Controller

      8:11

    • 15.

      3.02 Die Player-Kamera hinzufügen

      8:24

    • 16.

      3.03 Die feindlichen Sprites extrahieren

      7:35

    • 17.

      3.04 Flipbooks erstellen

      6:30

    • 18.

      3.05 Eltern vs. Kind Blueprint-Kurs

      7:05

    • 19.

      3.06 Das Feind-Klassen-Setup abschließen

      9:09

    • 20.

      3.07 Die Player-Kamera als Standard-Anwendung

      3:04

    • 21.

      4.01 Den Feind-Spawn-Punkt erstellen

      2:52

    • 22.

      4.02 Spawn Schauspieler des Kurses

      9:21

    • 23.

      4.03 Blueprint-Kommunikation – Casting

      3:25

    • 24.

      4.04 Blueprint-Kommunikation - Schnittstellen

      9:47

    • 25.

      4.05 Die Spawn-Punkt-Werte erhalten

      8:49

    • 26.

      4.06 Einführung in Strukturen

      2:59

    • 27.

      4.07 Level-Info & Feind-Info-Strukturen

      5:28

    • 28.

      4.08 Erstellen des Feind-Typ-Enum

      3:21

    • 29.

      4.09 Einführung in Datentabellen

      2:46

    • 30.

      4.10 Level-Info & Feind-Info-Datentabellen

      10:43

    • 31.

      4.11 Einführung in Bibliotheken

      3:02

    • 32.

      4.12 Erstellen der Bibliothek-Funktionen

      7:38

    • 33.

      4.13 Die Feindnamen hinzufügen

      3:16

    • 34.

      4.14 Den Feind spawnen

      4:35

    • 35.

      5.01 Entwerfen der Enemy Name-Benutzeroberfläche

      7:05

    • 36.

      5.02 Eine benutzerdefinierte Schriftart hinzufügen

      5:04

    • 37.

      5.03 Die Feind-Name-Benutzeroberfläche hinzufügen

      2:21

    • 38.

      5.04 Die Enemy Info Benutzeroberfläche programmieren

      9:43

    • 39.

      5.05 Dem Feind Schaden zufügen

      7:39

    • 40.

      5.06 Die Gesundheit berechnen

      3:45

    • 41.

      5.07 Den Gesundheitsbalken entwerfen

      5:46

    • 42.

      5.08 Hinzufügen der Gesundheitsleiste

      1:41

    • 43.

      5.09 Die Gesundheitsleiste aktualisieren

      8:11

    • 44.

      5.10 Enemy Hit Flipbook

      4:17

    • 45.

      5.11 Feinder Tod

      4:56

    • 46.

      5.12 Das Level erhöhen

      4:38

    • 47.

      5.13 Die Feind-Todes-Animationen reparieren

      7:43

    • 48.

      5.14 Klick-Treffer-VFX

      8:46

    • 49.

      5.15 Die Floating-Text-Benutzeroberfläche entwerfen

      2:46

    • 50.

      5.16 Schwebende Text-Animation

      3:48

    • 51.

      5.17 Den schwebenden Text generieren

      6:35

    • 52.

      5.18 Die schwebende Textanzeige aktualisieren

      6:08

    • 53.

      5.19 Die schwebende Text-Animation spielen

      4:56

    • 54.

      6.01 Die Timer-Benutzeroberfläche entwerfen

      4:37

    • 55.

      6.02 Anzeigen der Haupt-UI

      8:27

    • 56.

      6.03 Den Runden-Timer einstellen

      8:01

    • 57.

      6.04 Den Haupt-UI-Timer aktualisieren

      3:43

    • 58.

      6.05 Gesundheit am Timer-Ende wiederherstellen

      6:16

    • 59.

      6.06 Timer auf den feindlichen Tod zurücksetzen

      2:16

    • 60.

      7.01 Entwerfen der Währungs-Benutzeroberfläche

      7:27

    • 61.

      7.02 Währungs-UI-Animation

      1:24

    • 62.

      7.03 Menge an Münzen Variabel

      4:10

    • 63.

      7.04 Füge Münzen auf Feinde fallen

      1:57

    • 64.

      7.05 Aktualisiere die Münzen-Anzeige

      4:32

    • 65.

      8.01 Die Shop-Scroll-Box hinzufügen

      2:05

    • 66.

      8.02 Die Shop-Item-Karte entwerfen

      18:35

    • 67.

      8.03 Artikelinformationen Struktur und Datentabelle

      13:13

    • 68.

      8.04 Erstelle die Shop-Item-Karten

      5:32

    • 69.

      8.05 Die Shop-Item-Karten anzeigen

      4:31

    • 70.

      8.06 Jeder Item-Karte die richtigen Informationen geben

      2:32

    • 71.

      8.07 Die richtigen Objektkarten-Informationen anzeigen

      6:04

    • 72.

      8.08 Die Kauf-Textfarbe ändern

      8:21

    • 73.

      8.09 Überprüfen, ob der Spieler genug Münzen hat

      4:43

    • 74.

      8.10 Den Artikel kaufen

      3:58

    • 75.

      8.11 Die Menge der gekauften Artikel aktualisieren

      8:15

    • 76.

      8.12 Artikel-Spawn-Punkte erstellen

      3:03

    • 77.

      8.13 Den gekauften Gegenstand generieren

      6:06

    • 78.

      8.14 Spawn-Logik

      12:31

    • 79.

      8.15 Spawn-Logik - Fortgeschrittene

      9:07

    • 80.

      8.16 Spawn-Logik - Fortgeschrittene

      17:35

    • 81.

      8.17 Artikelkostenstruktur und Datentabelle

      7:37

    • 82.

      8.18 Hole dir Artikel-Kostenfunktion

      6:57

    • 83.

      8.19 Artikelkosten steigen

      6:25

    • 84.

      8.20 Das Item-Tooltip-Widget entwerfen

      6:16

    • 85.

      8.21 Die Tooltip-Informationen aktualisieren

      6:25

    • 86.

      8.22 Das Tooltip-Widget anzeigen

      8:21

    • 87.

      9.01 Schäden automatisch ausführen

      8:19

    • 88.

      9.02 Den Gesamt-DPS berechnen

      5:06

    • 89.

      9.03 Den richtigen Schaden anwenden

      4:55

    • 90.

      9.04 Den Hit-Effekt beheben

      5:55

    • 91.

      10.01 Entwerfen der Level-Anzeige

      3:25

    • 92.

      10.02 Die Level-Karte entwerfen

      3:19

    • 93.

      10.03 Das Niveau einstellen

      1:36

    • 94.

      10.04 Das neue Level freischalten

      4:28

    • 95.

      10.05 Einstellen des aktuellen Niveaus

      3:51

    • 96.

      10.06 Automatisches Feind-Spawn verhindern

      7:31

    • 97.

      10.07 Schädel-Symbole zu Bossen hinzufügen

      8:07

    • 98.

      10.08 Symbole zu Shop-Karten hinzufügen

      5:11

    • 99.

      11.01 Den Mauszeiger zum Shop hinzufügen

      7:27

    • 100.

      11.02 Den Mauszeiger-Startpunkt hinzufügen

      2:56

    • 101.

      11.03 Den Schadens-Text richtig anzeigen

      5:50

    • 102.

      11.04 Den Mauszeiger-Schaden aktualisieren

      4:42

    • 103.

      11.05 Das Mauszeiger-Widget entwerfen

      7:27

    • 104.

      11.06 Die Mausklick-Eingabe hinzufügen

      7:09

    • 105.

      12.01 Entwerfen der endgültigen Karte

      6:02

    • 106.

      12.02 Die Sound-Cues vorbereiten

      7:25

    • 107.

      12.03 SFX zur Benutzeroberfläche hinzufügen

      7:31

    • 108.

      12.04 SFX zum Feind hinzufügen

      5:01

    • 109.

      12.05 Musik hinzufügen

      0:49

    • 110.

      13.01 Entwerfen der Ascension-Benutzeroberfläche

      4:10

    • 111.

      13.02 Das Ascension-Popup entwerfen

      2:42

    • 112.

      13.03 Das Ascension-Popup öffnen

      4:07

    • 113.

      13.04 Das Neustart-Spiele-Event festlegen

      7:47

    • 114.

      13.05 Aufstieg am Ende des Spiels anzeigen

      14:26

    • 115.

      13.06 Erzeugen der Aufstieg-Struktur

      4:19

    • 116.

      13.07 Den Aufstieg-Multiplikator hinzufügen

      10:00

    • 117.

      13.08 Den Aufstieg-Multiplikator anzeigen

      6:46

    • 118.

      14.01 Das Projekt reinigen

      7:25

    • 119.

      14.02 Das Spiel verpacken

      13:12

  • --
  • 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.

101

Teilnehmer:innen

--

Projekte

Über diesen Kurs

So machst du ein Clicker-Spiel – Starte deine 2D-Reise.

Dieser Unreal Engine-Kurs bringt dir bei, wie du ein Clicker-Spiel in Unreal Engine 5 (UE5) von Grund auf erstellen kannst, ähnlich den berühmten Spielen Clicker Heroes und Cookie Clicker. Du lernst die Grundlagen der 2D-Spiele-Entwicklung in UE5 sowie fortgeschrittene Themen wie Spielmechaniken und UI-Design.

Für diesen Kurs brauchst du keine Vorkenntnisse in der Spieleentwicklung; wir gehen ihn Schritt für Schritt durch. Egal, ob du ein Anfänger oder ein erfahrener Unreal Engine-Entwickler bist, dieser Kurs hat etwas für alle, die lernen möchten, wie man ein Clicker-Spiel in UE5 erstellt.

Das Hauptziel dieses Kurses besteht darin, dich bei der Erstellung von Unreal 2D-Spielen zu unterstützen. Es ermöglicht dir, Geld zu verdienen und als unabhängiger Spiele-Entwickler von zu Hause aus zu arbeiten. Tatsächlich bin ich seit einigen Jahren Vollzeit-UE5-Spiele-Entwickler, die Spiele entwickle, Kurse entwirfe und verkaufe Spiel-Assets über den Unreal Engine-Marktplatz.

Starte deine 2D-Spielentwicklungsreise noch heute, indem du lernst, wie du ein Clicker-Spiel erstellen kannst!

Erstelle Spiele ohne Programmieren.

Unreal Engine Blueprint ist die leistungsstarke Unreal Engine-Skriptsprache, die in UE5 verwendet wird. Damit kannst du dein Spiel von Anfang bis Ende erstellen, ohne eine einzige Code-Zeile zu schreiben. Das bedeutet, dass du dein Spiel leicht erstellen kannst, auch wenn du ein Anfänger, Künstler oder Designer ohne Programmiererfahrung bist.

Dieser Kurs erfordert keine Programmier- oder Unreal Engine-Erfahrung. Wir werden die Grundlagen der Unreal Engine Blaupause durchgehen und langsam zur Entwicklung komplexerer Spielmechaniken vorankommen. Du lernst, wie du Spiele von Anfang bis Ende entwickelst.

Du kannst als Anfänger in diesen Kurs einsteigen, wenn du Schritt für Schritt lernst, wie du ein Clicker-Spiel von Grund auf erstellen kannst.

Kann die Unreal Engine 2D-Spiele erstellen?

UE5 ist sehr bekannt für seine beeindruckenden 3D-Grafiken. Es mag jedoch einige überraschen, dass das Erstellen von 2D-Spielen in der Unreal Engine auch möglich ist. Als Person, die zahlreiche 2D-Spiele mit Unreal Engine erstellt hat, genieße ich es und kann es nur wärmstens empfehlen.

Hier sind die Vorteile der Entwicklung von 2D-Spielen in Unreal Engine 5:

  1. Du kannst die Unreal Engine Blaupause verwenden, um 2D-Spiele zu programmieren, die du auch für 3D-Spiele verwendest. Das bedeutet, dass du keine neue Sprache lernen musst, wenn du von 3D-Spiele-Entwicklung zur 2D-Version wechselst.
  2. Du kannst deinem 2D-Spiel einen einzigartigen 3D-Look geben, indem du 3D-Beleuchtung und Gott-Strahlen integrierst.
  3. Du kannst ein 2D-Spiel in einer 3D-Umgebung erstellen.
  4. Ein 2D-Level zu erstellen und Assets und Charaktere hinzuzufügen ist einfach und kann in wenigen Minuten durchgeführt werden.
  5. Du musst beim Wechsel zwischen 2D-und 3D-Spielen nichts Neues lernen, weil du die gleichen Engine-Tools verwendest.

Während du lernst, wie du ein Clicker-Spiel erstellst, wirst du sehen, wie lustig und einfach es ist, Unreal 2D-Spiele zu erstellen. Angenommen, du interessierst dich mehr für den Unreal Engine 5-Multiplayer. In diesem Fall kannst du dir meinen Multiplayer-Kurs ansehen, wie du ein Jump-Spiel erstellst.

Lerne alle Aspekte von 2D in UE5 kennen, nicht nur Clicker-Spiele.

Dieser Kurs bringt dir bei, wie du die Unreal Engine für 2D-Spiele im Allgemeinen einsetzen kannst, obwohl der Schwerpunkt auf der Erstellung eines Klickspiels liegt. Während des Kurses lernst du, wie du mit verschiedenen 2D-Assets wie Sprites, Flipbooks (animierte 2D-Assets), Charaktere und 2D-Umgebungen arbeiten kannst.

Bei der Arbeit mit UE5 ist es wichtiger, sich auf die Tools zu konzentrieren, die während der Spieleentwicklung verwendet werden, als sich speziell darauf zu konzentrieren, wie man ein Clicker-Spiel erstellt. Wenn du die Tools in diesem Kurs lernst, kannst du jedes 2D-Spiel mit UE5 erstellen.

Lerne alles, was du über 2D- und Clicker-Spiele wissen musst.

Während du lernst, wie du ein Clicker-Spiel erstellst, behandelt der Kurs verschiedene Aspekte der Entwicklung von 2D-Spielen in Unreal Engine 5. In diesem Kurs lernst du:

  • Wie du mit den Unreal 2D-Funktionen ein Videospiel von Grund auf entwickelst.
  • So erstellst du Kachel-Sets und Kachel-Karten, um deinen 2D-Level zu gestalten.
  • So erstellst du Sprites und Flipbooks für statische und animierte 2D-Assets.
  • Lerne, wie du mit dem Mauszeiger Feinde spawnen, beschädigen und töten kannst
  • Du erstellst eine Auto-Klick-Mechanik, um automatisch Schaden zu verursachen
  • Du lernst, wie du schwebende Kampftexte erstellst, wenn du Schaden anrichtest
  • Lerne, wie du einen Item-Shop mit spawnbaren Gegenständen erstellst.
  • Lerne, wie du das Spiel wiederspielbar (Aufstieg) erweitern kannst
  • Du lernst, wie du mehrere Level zum Spiel hinzufügen kannst, zwischen denen du wechseln kannst.

Du lernst auch andere Aspekte der 2D-Spiele-Entwicklung kennen, wie das Hinzufügen von 2D-Benutzeroberflächen, visuellen Effekten und Soundeffekten. Wenn du diesen Kurs absolvierst, kannst du sicher dein eigenes Videospiel entwerfen.

Mach diesen Kurs und lasse dich zertifizieren.

Wenn du den Kurs abschließt, wie du ein Clicker-Spiel erstellen kannst, erhältst du eine Unreal Engine-Zertifizierung. Du kannst es verwenden, um dein Portfolio als unabhängiger Spiele-Entwickler zu stärken oder es bei der Bewerbung für Spiele-Entwicklungsjobs verwenden. Die Unreal Engine-Zertifizierung kann heruntergeladen und lokal gespeichert werden und ist auf unbestimmte Zeit gültig.

Was qualifiziert mich dazu, dich zu unterrichten?

Ich bin ein erfahrener Spieleentwickler mit neun Jahren Erfahrung. Um meine Arbeit zusammenzufassen, ohne dich zu langweilen:

  • Ich habe ein Steam-Spiel veröffentlicht, das ich von Anfang bis Ende mit einem Team von 8 Mitarbeitern geleitet habe.
  • Ich habe 11 Spieleentwicklungskurse mit 40.000 Teilnehmern und einer durchschnittlichen Bewertung von 4,8+ von 5 Sternen erstellt.
  • Ich entwickle Farmtale 2 derzeit von Anfang bis Ende Solo.
  • Ich arbeite auch als Freelancer an verschiedenen Spieleprojekten und habe mich auf Programmierung, Beleuchtung, Spiele-Optimierung und mehr spezialisiert.

Ich habe eine große Leidenschaft für die Spiele-Entwicklung und habe sie zu meinem Vollzeitjob gemacht. Ich würde dir gerne alles über Unreal Engine 5 mit guten Spiele-Entwicklungspraktiken beibringen und dich mit den neuesten Informationen auf dem Laufenden halten.

Wenn du lernen möchtest, wie du ein Spiel auf Steam veröffentlichst, schau dir den Kurs an, den ich zu diesem Thema veröffentlicht habe.

Tritt unserer unterstützenden Community bei.

Die Unreal Engine-Spieleentwicklung kann manchmal eine frustrierende Erfahrung sein. Zum Beispiel musst du vielleicht irgendwo nach einem nicht markierten Kästchen suchen, mit dem du dich stundenlang verloren fühlst. Alternativ benötigst du vielleicht moralische Unterstützung und Ideen von anderen Spiele-Entwicklern wie dir. Deshalb bieten wir rund um die Uhr Live-Support an, indem wir in einem der Kurse im Q/A-Abschnitt schreiben. Wir sind immer hier, um dir zu helfen, wenn du es brauchst.

Lass uns ohne Verzögerung mit "So machst du ein Clicker-Spiel" beginnen. Ich freue mich, dich in der ersten Einheit zu sehen. Also, lass uns starten und jubeln auf eine spannende Lernreise!

Triff deine:n Kursleiter:in

Teacher Profile Image

Pixel Helmet

Game Developer & Publisher

Kursleiter:in

Pixel Helmet is a video game developer and publisher based in Denmark. We have recently released our first game Farmtale on the Steam platform.

We decided to get on Skillshare to create high-quality courses and share our knowledge with the game development community. Learning can be tedious at times and we aim to create a fun learning experience.

We offer to create courses within Modeling, Texturing, Unreal Engine, Blueprints, C++, Game Design, and much more. If you need any help during a course, please let us know through Skillshare or connect with us on Discord, Twitter, or LinkedIn.

Vollständiges Profil ansehen

Level: All Levels

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. 1.01 Einführung: In diesem Kurs lernen wir , wie Sie mithilfe von Bauplänen in Honorable Engine 5 in das Idle Clicker-Spiel gelangen, indem Sie ein Spiel nachbauen, das Clicker Heroes und Cookie Clicker A ähnelt . Dieser Kurs enthält alles, was Dieser Kurs enthält alles, was Sie wissen müssen, um mit der Entwicklung von Two-D-Idle-Clicker-Spielen in Honorable Engine Five zu beginnen Entwicklung von Two-D-Idle-Clicker-Spielen , einschließlich Wie fügt man statische und animierte Two-D-Assets hinzu. Wie man mit dem Mauszeiger Schaden verursacht und Feinde tötet So erstellen Sie einen Item-Shop mit spawnbaren Gegenständen. So erstellen Sie eine automatische Klick-Mechanik, die automatisch Schaden verursacht, wenn Sie Artikel im Item-Shop kaufen So fügst du dem Spiel mehrere Level hinzu, zwischen denen du wechseln kannst Wie man schwebenden Kampftext anzeigt, wie man zwei DUI und eine Welt-Spawn-Benutzeroberfläche erstellt Wie man UI-Tooltips erstellt. Und schließlich, wie man die Aufstiegsmechanik für den Wiederspielwert hinzufügt , damit ihr während des Spiels mehr Schaden verursacht , wenn ihr aufsteigt Ich stelle Ihnen auch das fertige Projekt zur Verfügung, damit Sie es nach Belieben begutachten können, während Sie Belieben Am Ende dieses Kurses werden Sie in der Lage sein, mit Real Engine Five selbstbewusst Ihr eigenes 2-D-Clicker-Spiel von Grund auf neu zu erstellen Ihr eigenes 2-D-Clicker-Spiel Real Engine Five selbstbewusst Ihr eigenes 2-D-Clicker-Spiel von Grund auf neu Ich hoffe, Sie nehmen heute an diesem Kurs teil. Und denken Sie daran, dass ich während des gesamten Kurses immer für Sie da bin und hoffe, Sie bald zu sehen. 2. 1.02 Unreal Engine 5 herunterladen: Um Unreal Engine five zu installieren, musst du zuerst zu Epic Games.com gehen Gehen Sie also dorthin und Sie finden oben rechts einen blauen Download-Button Fahren Sie fort und drücken Sie auf den Download-Button. Und hier bekommst du das Installationsprogramm für den Epic Games Launcher. Also mach weiter und führe das Installationsprogramm aus. Und sobald Sie den Epic Games Slauncher installiert haben , melden Sie sich an Also gebe ich einfach meine E-Mail-Adresse und mein Passwort ein und melde mich beim Launcher an Sobald Sie sich im Launcher angemeldet haben, wird er so aussehen. Also mach weiter und drücke auf die Registerkarte Unreal Engine. Und innerhalb dieser Registerkarte Sie sich wahrscheinlich im neuen Bereich Fahren Sie fort und klicken Sie auf Bibliothek. Und in der Bibliothek können Sie alle aktuellen Engine-Versionen sehen , die Sie derzeit haben. Aber wenn Sie neu hier sind, haben Sie wahrscheinlich nichts hier, und Sie sehen möglicherweise ein graues Feld in dem Sie die echte Engine herunterladen können. Und wenn du es nicht siehst, kannst du immer auf das Plus hier oben klicken, und es wird dir dieses graue Feld angezeigt und du kannst auf die Zahl klicken , um auszuwählen , welche Version der Unreal Engine du installieren möchtest Jetzt werde ich die neueste Version Unreal Engine 5.3 verwenden. Aber wenn Sie sich diesen Kurs in Zukunft ansehen, wenn Sie 5.4 oder 5.35 oder was auch immer haben, können Sie diesem Kurs trotzdem folgen Es gibt keine große Veränderung. Lassen Sie uns also weitermachen und mit Unreal Engine 5.3 beginnen. Ich werde weitermachen und das Update durchführen und die Engine starten 3. 1.03 Ein neues Projekt erstellen: Wenn Sie Unreal Engine starten, öffnet sich dieses Fenster für Sie, in dem Sie Ihre letzten Projekte sehen können, und Sie können auch einige andere Tabs sehen Diese Registerkarte ist leer, wenn du noch keine Projekte hattest, aber du kannst sie hier öffnen, wenn du an einem Projekt arbeitest . Im Moment möchten wir ein Spiel machen Also gehe ich zum Tab Spiele. Aber wie Sie in Unreal Engine sehen können, geht es nicht nur um Spiele Sie können zum Beispiel auch Automobilarchitektur usw. Gehen wir vorerst zum Tab Spiele. Und auf der Registerkarte „Spiel“ siehst du viele Vorlagen , mit denen du beginnen kannst. Wenn Sie beispielsweise einen Ego-Shooter erstellen möchten, können Sie die Vorlage für die erste Person auswählen. Wenn Sie beispielsweise ein Top-Down-Spiel wie Diablo erstellen möchten , können Sie mit dieser Vorlage beginnen Ich möchte jedoch mit einem leeren Projekt beginnen. Wie Sie wissen, wenn Sie meine vorherigen Kurse besucht haben, weil ich Ihnen alles von Grund auf beibringen möchte. Jetzt können all diese Vorlagen aus einem leeren Projekt erstellt werden. Und sie sind nicht schwer zu erstellen, wenn Sie wissen, was Sie tun. Wir beginnen gerne mit einem leeren Projekt und bauen alles selbst Ich fange nicht wirklich gerne mit der Vorlage an. Lassen Sie uns mit einem leeren Projekt beginnen und Ihnen hier auf der rechten Seite alles beibringen Ihnen hier auf der rechten Seite alles Wählen Sie Blueprint als Programmiersprache für die Zielplattform aus. Es ist Desktop Im Moment können wir uns ein anderes Mal immer auf das Handy konzentrieren. In diesem Kurs geht es jedoch um den Desktop. Ich werde wahrscheinlich in Zukunft einen Kurs über Mobilgeräte machen. Aber selbst wenn Sie Desktop wählen, können Sie es immer noch für Mobilgeräte erstellen Später können Sie es sowohl für PC als auch für Mobilgeräte erstellen. Lassen Sie uns die voreingestellte Qualität als Maximum für den Dateninhalt auswählen . Wenn Sie das angekreuzt haben, machen Sie einfach weiter und kreuzen Sie es an, damit wir nichts haben Auch hier möchte ich mit einem leeren Projekt beginnen , ohne dass hier unten etwas steht. Sie können auswählen, wo Sie das Projekt speichern möchten und dann können Sie dem Projekt den Namen geben. Jetzt nenne ich das Gin Clicker. Und du kannst es immer nennen , wie du willst, es ist nicht wirklich wichtig Und fahren Sie fort und klicken Sie auf Erstellen. Sobald Sie mit der echten Engine Five gestartet sind, wird es so aussehen. Jetzt nehme ich mit einer Auflösung von vier K auf und habe einen Vier-K-Monitor. Die Benutzeroberfläche sieht für Sie vielleicht etwas klein aus, wenn ich dieses Video für den gesamten Kurs aufnehme . Ich werde meine Benutzeroberfläche tatsächlich hochskalieren , damit Sie sehen können, was ich mache Wenn Sie wissen möchten, wie ich das auch machen kann, können Sie auf Tools klicken und zu Debug gehen Gehen Sie hier zu Widget Reflector. Ich werde nur den Umfang meiner Benutzeroberfläche erhöhen. Vielleicht nicht 21.3, vielleicht ist das einer. Ich denke, ich werde es bei 1.3 belassen und ich kann es in den späteren Lektionen jederzeit ändern , wenn ich denke, dass es zu groß oder zu klein Lassen wir es tatsächlich bei 1,25 belassen und ich werde es schließen. Okay, in der nächsten Lektion werden wir einen kurzen Überblick über Unreal Engine Five geben, damit wir uns damit vertraut machen können, bevor wir unser Spiel entwickeln Wenn du meine vorherigen Kurse bereits besucht hast und Unreal Engine Five bereits kennst, kannst du die nächste Lektion überspringen Aber lass uns zur nächsten Lektion übergehen und loslegen. 4. 1.04 Unreal Engine 5 Überblick: Ordnung, bevor wir unser Spiel starten, werden wir uns einen kurzen Überblick über Unreal Engine Five Wenn Sie die Engine schon einmal benutzt haben und meine vorherigen Kurse besucht haben, fahren Sie einfach fort und überspringen Sie diese Lektion mit der nächsten Jetzt befindet sich hier in der Mitte der Engine das Viewport. Im Viewport befindet sich die Welt. Das ist dein Spiel, das du visuell sehen kannst. Wie Sie hier sehen können, haben wir Landschaften und so weiter. Wenn Sie jedoch mit der rechten Maustaste in das Darstellungsfenster klicken, können Sie sehen, dass Sie Ihre Ansicht steuern können , indem Sie die rechte Maustaste gedrückt halten Wenn Sie nun die rechte Maustaste gedrückt halten und ebenfalls auf klicken, können Sie sehen, dass Sie sich bewegen können, wenn Sie die rechte Maustaste gedrückt halten und auf W klicken, können Sie sich bewegen Jetzt können Sie sehen, dass ich mich sehr langsam bewege, weil dies eine große Welt ist. Wenn du dich schneller bewegen willst, klicke einfach hier oben auf die Kamerageschwindigkeit, ich werde die Geschwindigkeit auf etwa 16 erhöhen. Stattdessen, wenn ich die rechte Maustaste gedrückt halte und auf W klicke. Jetzt kannst du sehen, dass ich mich in meiner Welt viel schneller bewegen kann, wie du hier sehen kannst. Okay, du kannst auch auf D klicken, um nach rechts zu gehen, auf A klicken, um nach links zu gehen, und auf klicken, um zurück zu gehen. Aber denken Sie daran, dass Sie die rechte Maustaste gedrückt halten und dann auf W, D und A klicken müssen die rechte Maustaste gedrückt halten und dann auf W, D und A klicken So navigiere ich eigentlich , normalerweise in der Honual-Engine. Ich halte einfach die rechte Maustaste gedrückt und ich weiß, Ich halte einfach die rechte Maustaste gedrückt und ich ich reise in der Welt herum und sehe, was ich bei der Entwicklung des Spiels mache Und wenn du rein- und rauszoomen möchtest, kannst du das Bild natürlich mit dem Mausrad vergrößern, einfach so Und Sie können auch mit Ihrem Mausrad herauszoomen. Und du kannst einfach in der Welt herumfliegen und versuchen, dich mit der Bewegung vertraut zu machen. Wenn Sie es gewohnt sind, Ego-Shooter usw. zu spielen, ist das für Sie selbstverständlich Wenn Sie das noch nicht gespielt haben, versuchen Sie einfach, herumzulaufen und zu sehen, ob Sie es verstehen können Ordnung, wir haben ein paar Buttons hier oben im Viewport, wir können auf diese klicken Und hier kannst du zum Beispiel deine FPS-Frames pro Sekunde anzeigen Und wenn Sie darauf klicken, können Sie sehen, dass es hier rechts erscheint. Jetzt ist es nicht wirklich wichtig, Moment können Sie das Sichtfeld ändern und so weiter. Aber das Gute an Unreal Engine ist, dass Sie nicht wissen müssen, was jede einzelne Taste bewirkt Ich weiß nicht, vielleicht die Hälfte der Tasten, weil ich keine Filmsequenzen mache Normalerweise mache ich keine Filmsequenzen. Zum Beispiel Automobile, ich entwerfe keine Autos. Es gibt ein paar Knöpfe, die du eigentlich nicht brauchst, wenn du dein Spiel entwickelst. Versuche, dich nicht an alles zu erinnern, sondern versuche dich nur an das zu erinnern was gerade wirklich notwendig ist. Was hier gerade wirklich notwendig ist, ist die Spielansicht. In der Spielansicht versteckst du die Symbole innerhalb des Levels. Wenn ich also zum Beispiel auf Con G klicke, ist das die Spielansicht. Siehst du, ich verstecke diese orangefarbene Auswahl. Wenn ich jetzt erneut auf meiner Tastatur klicke, deaktiviere ich die Spielansicht. Wie Sie hier sehen können, besteht die Abkürzung darin, dass Sie alle Symbole entfernen, wenn ich auf die Spielansicht klicke . Wenn ich jetzt einfach ein Licht hinzufüge, zum Beispiel ein Punktlicht, und hier habe ich ein Punktlichtsymbol. Jetzt müssen Sie jetzt nicht wirklich ein Punktlicht hinzufügen. Ich zeige dir nur, wenn du auf „Jetzt“ klickst, wird das Symbol für das Punktlicht ausgeblendet . Und ich kann es nicht sehen Wenn ich erneut darauf klicke, wird das Symbol für das Punktlicht angezeigt. Die Punktlinie ist momentan etwas klein. Wenn ich hier darauf klicke , siehst du, dass es tatsächlich hier unten ist. Es ist eine große Welt. Es verschwindet normalerweise, aber hier ist es. Und wenn ich auf ein G und dann wieder auf G klicke, erscheint es, dass die Spielansicht wirklich, wirklich gut ist , um dein Spiel ohne diese Symbole zu visualisieren . Wenn ich eine Welt baue und du dir vorstellen kannst, dass du viele Symbole hast, wenn du viel Licht hast, hast du eine Menge Objekte in deinem Level. Du kannst auf G klicken, um all diese Symbole zu entfernen, und du kannst deine Welt ohne diese Symbole sehen. Jetzt ist das nächste Ding der immersive Modus. Wenn du auf 11 klickst, maximierst du den Viewport und kannst deine Welt in maximaler Ansicht visualisieren Das ist wirklich, wirklich nett, wenn du sehen willst, wie dein Spiel aussieht Jetzt können Sie wieder auf G klicken, um Symbole anzuzeigen, und G, um Symbole auszublenden. Klicken Sie auf 11, um es zu minimieren. Auch hier zwei wichtige Schaltflächen, der immersive Modus und die Spielansicht Jetzt haben wir hier die perspektivische Ansicht und wir haben auch andere Ansichten, die orthogonalen Die wichtigste ist jetzt die richtige Ansicht. Das ist es, was wir verwenden werden , weil wir mit zwei D arbeiten werden. Wir werden nicht wirklich in eine Drei-D-Welt eindringen. Wir brauchen die Perspektive nicht zu sehr. Aber jetzt gehen wir zur rechten Ansicht, und diese wird als orthogonale Ansicht bezeichnet Wenn Sie mit dem Mausrad herauszoomen, können Sie sehen, dass dies tatsächlich die Welt ist, die offene Welt in der rechten Ansicht Wenn Sie in eine Zwei-D-Ansicht schauen, können Sie sie von oben sehen. Wie es aussieht, kann man offensichtlich nicht viel sehen , weil man die Hügel von oben nicht sehen kann. Wenn man es von unten sieht, sieht es so aus, man kann nicht viel sehen. Wenn Sie es von links betrachten, sieht es so aus. Und so weiter. Sie können die verschiedenen Ansichten der Welt sehen. Das ist natürlich wieder der perspektivische Blick zurück. Hier haben wir verschiedene Beleuchtungsmodi. Wir brauchen sie nicht wirklich, weil wir nicht in drei D arbeiten werden Konzentrieren Sie sich in der Sendung nicht wirklich darauf. Du kannst verschiedene Dinge ein- und ausblenden. Wir werden es später benutzen. Sie können zum Beispiel die Kollision anzeigen, Sie können den Nebel ausblenden und so weiter. Im Moment nicht wirklich notwendig, lass uns jetzt nicht darauf eingehen. Sehr wichtig sind diese Tools. Hier drüben haben wir das Auswahlwerkzeug und es wählt im Grunde Gegenstände in eurer Welt aus. Um diese nun zu nutzen, fügen wir der Welt tatsächlich etwas hinzu. Gehen wir zu dieser Schaltfläche, tippen Sie schnell auf „Zum Projekt hinzufügen“. Sehr wichtig hier. Sie können beispielsweise eine Grundform hinzufügen. Fügen wir einen Würfel hinzu. Hier ist der Würfel, den wir hinzugefügt haben. Ich werde die Kamerageschwindigkeit verringern . Wir bewegen uns sehr schnell in der Welt und bringen sie wieder zu einer Einheit zusammen. Wenn Sie darauf klicken, können Sie sehen, dass dies das Auswahlwerkzeug ist. Und denken Sie daran, dass Sie Abkürzungen für diese Tools haben, das können Sie. Dieses ist, das nächste ist das Verschiebe-Tool Wenn Sie darauf klicken, können Sie sehen, wie diese Drehpunkte erscheinen. Wenn Sie jetzt auf die rote Achse klicken, können Sie zu dieser Achse wechseln. Wenn Sie auf die blaue klicken, können Sie sich auf und ab bewegen. Wenn Sie auf die grüne Achse klicken, können Sie sich auf diese Weise bewegen. Jetzt sind die Farben für diese tatsächlich X, Y und Z. Und Sie können sie hier im Detailbereich sehen. Sie können die Position sehen, das X. Wenn Sie die Maus darüber halten, können Sie auch den Wert sehen, bevor Ihnen normalerweise gesagt wurde , dass dies die X-Achse ist. Aber ich kann sehen, dass es das jetzt nicht mehr tut. Aber im Grunde ist Rot die X-Achse, Grün ist die Y-Achse, Blau ist die Z-Achse, die X-Achse, Y-Achse und die Z-Achse. Okay? Du kannst es so bewegen. Du kannst es auch hier auf dem Quadrat in der Mitte halten. Sie können es in zwei Richtungen gleichzeitig bewegen. Oder Sie können es über diese weiße kleine Kugel in der Mitte halten diese weiße kleine Kugel in der Mitte und es in alle drei Richtungen gleichzeitig bewegen. Du kannst das auch hier im Detailbereich tun, vielleicht hast du bemerkt, dass das die Details sind oder was auch immer du hier auswählst. Wenn ich das hier auswähle, die Grundflächen aus dieser offenen Welt, oder wenn ich meinen Würfel auswähle, verschiedene Details zu dem Gegenstand angezeigt, den du in deiner Welt ausgewählt hast. Ich kann zum Beispiel die Position meines Objekts sehen, ich kann sehen, wie es sich dreht. Ich kann das statische Netz sehen , bei dem es sich im Grunde um das Drei-D-Modell handelt. Ich kann das mitgelieferte Material sehen. Ich kann auch Dinge über die Physik sehen. Und ich kann zum Beispiel simulieren, dass Physik nicht angewendet wird. Ich kann sehen, wie die Schwerkraft angewendet wird, ich sehe Kollisionsoptionen, Beleuchtungsoptionen und so weiter und so weiter. Und Sie können sehen, dass Sie eine Menge Dinge haben, die Sie sehen können. Mach dir darüber vorerst keine Sorgen. Wir werden viel im Detailbereich arbeiten. Es wird immer einfacher für dich werden. Viele dieser Dinge werden wir nicht verwenden, weil wir wieder in zwei D arbeiten, also mach dir darüber keine Gedanken, also mach dir darüber keine Gedanken aber im Grunde genommen hier für den Standort, du kannst es entweder so verschieben und du kannst das auch in Tod tun, oder du kannst es so verschieben, indem du einfach hier klickst und mit der Maus ziehst, klickst und mit der Maus auf die Zahlen Und du kannst es so bewegen. Oder wenn Sie bestimmte Standorte haben, können Sie sie eingeben. Wenn du hier drauf klickst und ich kann zum Beispiel 1.450 schreiben Und ich kann auf Inter klicken. Sie können sehen, wie sich mein Würfel an die genaue Position bewegt . Du kannst es so machen. Du kannst es manuell verschieben, verschiebe es hierher. Oder Sie können die Nummer erneut eingeben. Jetzt die Drehung, die die nächste ist , wenn du darauf klickst, auf deiner Tastatur. Also der erste war, der nächste war für das Verschiebewerkzeug. Das Drehwerkzeug ist E auf der Tastatur und das Drehwerkzeug ist selbsterklärend, Sie können das Objekt um eine andere Achse drehen Auch hier haben wir in zwei D nur zwei Achsen Sie sich keine Sorgen um den dritten, aber es ist immer noch derselbe Vorgang Also werde ich es dir auf diese Weise beibringen. Nochmals, für die Rotation. Sie können es auch hier ändern. Wenn Sie die Rotation zurücksetzen möchten, sind Sie vielleicht damit nicht zufrieden. Sie können auf diesen kleinen Pfeil klicken und alles wird auf die Standardeinstellungen zurückgesetzt. Das ist also das Rotationswerkzeug. Die letzte Sache ist das Skalierungswerkzeug. Wenn Sie auf der Tastatur auf R klicken, klicken Sie auf Q für das Auswahlwerkzeug, für das Verschiebewerkzeug, für das Rotationswerkzeug und R für das Skalierungswerkzeug. Auch hier können Sie das Skalierungswerkzeug in verschiedene Richtungen skalieren. Oder wenn ich auf Strg Z klicke, um zurückzugehen, kannst du es auch gleichmäßig in alle drei Richtungen skalieren Wenn du hier in der Mitte klickst, einfach nochmal so, wenn du nicht zufrieden bist, kannst du jederzeit auf diesen Pfeil klicken Du kannst ihn auch wieder skalieren, indem du einfach mit der Maus klickst und ziehst. Oder wenn Sie es einheitlich skalieren möchten, können Sie auf dieses Schloss klicken Immer wenn Sie skalieren, skalieren auch alle von ihnen Das ist das Gute an dem Schloss. Wenn du nur eine von ihnen skalieren willst, kannst du das Schloss öffnen und du kannst jeweils nur auf einer Seite skalieren , okay? Sehr wichtig. Erinnere dich an die. Wir werden sie während des gesamten Kurses, der nächsten Kurse und wahrscheinlich bei jedem einzelnen Kurs, den wir machen, verwenden der nächsten Kurse und wahrscheinlich bei jedem einzelnen Kurs, . Denken Sie nur an das Q für das Verschiebewerkzeug, für das Rotationswerkzeug und R für das Skalierungswerkzeug. Wir haben hier auch einige Schnappoptionen. Wie Sie sehen können, rastet etwas, wenn ich es bewege, in einem Raster ein Aus diesem Grund bewegt es sich nicht reibungslos. Sie können hier klicken und die Anzahl erhöhen. Das wird noch schneller als zuvor. Das ist nett, wenn du versuchst , etwas mit einer Struktur aufzubauen. Jetzt kannst du das kopieren und einfügen. Wenn Sie die Alt-Taste auf Ihrer Tastatur gedrückt halten und klicken und ziehen , wird dieses Objekt kopiert. Ich werde erneut versuchen, es zu kopieren. Halten, klicken und ziehen. Sie halten Alt gedrückt und Sie können sehen, dass ich es erneut kopiert habe. Jetzt ist das Snapping wirklich, wirklich gut, wenn du versuchst, so etwas mit einer Struktur aufzubauen Wenn du das Snappen nicht willst, kannst du jederzeit auf diese Schaltfläche klicken und dadurch wird es deaktiviert Du kannst, du kannst es reibungslos bewegen. Sie können dasselbe mit der Skalierung, der Rotation und der Skalierung tun. Sie können die Drehung und das Einrasten erhöhen und auch die Skalierung kann das Skalieren des Fangens deaktivieren oder das Einrasten erhöhen Ich ziehe es wieder an und gehe einfach zurück zu Zehn, was nach wie vor die Standardeinstellung ist Sie können die Kamerageschwindigkeit nach unten und nach oben drehen. Das Gute daran ist wenn Sie auf kleine Objekte fokussieren, möchten Sie, dass die Kamerageschwindigkeit vielleicht niedriger ist, damit Sie sich langsamer bewegen und sich auf das konzentrieren können, was Sie gerade tun. Wenn Sie sich in einer wirklich großen Welt bewegen, können Sie sehen, dass ich mich viel schneller bewegen kann , wenn ich meine Kamerageschwindigkeit erhöhe. So verwenden wir es normalerweise. Ich gehe hier einfach zurück zu einem. Okay. Die letzte sehr wichtige Sache hier oben sind auch die Einstellungen. Sie können zur Skalierbarkeit der Engine gehen. Und im Moment können Sie sehen, dass ich den Motor in epischer Qualität laufen lasse. Sie können ihn auch auf niedrige Qualität einstellen. Wenn Sie beispielsweise hinterherhinken, wenn Sie einen Low-End-Computer haben, können Sie jetzt sehen, dass meine Engine nicht wirklich viel Speicher verbraucht Wenn Sie beispielsweise einen guten Computer haben, können Sie die Skalierbarkeit jederzeit erhöhen Normalerweise mache ich Cinematic, wenn ich etwas wie Architektur mache oder wenn ich eine Zwischensequenz in einem Spiel Es ist wirklich nett, Cinematic laufen zu lassen und es wird hinken. Im Moment werde ich es nicht tun, weil ich auch den Kurs aufnehme Ich lasse es vorerst nur bei Epic laufen. In Ordnung. Schauen wir uns das mal an, Sie haben die Basic-Buttons der Datei. Wie ihr von jeder Software kennt, könnt ihr das Spiel oder das Level speichern. Sie können auch ein neues Level erstellen, was wir später tun werden. Du kannst alles exportieren und so weiter. Sie haben auch die Editor-Einstellungen und innerhalb der Editor-Referenzen können Sie Dinge über diesen Editor bearbeiten. Diese Auswahl ist zum Beispiel orange. Vielleicht möchte ich, dass es stattdessen so etwas wie Rot ist. Ich kann das machen O, du kannst Dinge darüber bearbeiten. Jetzt klicke ich einfach auf Steuerung Z, weil ich mit der Farbe zufrieden bin. Aber grundsätzlich kannst du Dinge an diesem Editor in den Projekteinstellungen ändern , du kannst Dinge an diesem Projekt bearbeiten. Sie können dem Projekt beispielsweise einen Namen geben , Ihren Firmennamen. Später veröffentlichst du das Spiel vielleicht. Die Leute können deine Support-Kontakt-E-Mail sehen und sie können dich kontaktieren, falls es Fehler gibt. Sie können auch Filme hinzufügen. Wenn Sie beispielsweise ein Spiel öffnen, wird 5 Sekunden lang ein kleiner Film über das Logo angezeigt, und dann beginnt das Spiel. Sie können hier Filme hinzufügen, Filme starten das Spiel für verschiedene Konsolen paketieren. Sie haben eine Menge Dinge, die Sie hier drinnen tun können. Jetzt werden wir hier reingehen, weil Sie einige Dinge haben , mit denen Sie hier arbeiten können , und wir werden das auch tun. Wir können also sehen, dass Sie in den Projekteinstellungen viel davon tun können. Auch hier gilt, wie ich Ihnen bereits gesagt habe, Sie sich nicht auf alle konzentrieren sollten. Sie werden sogar 20% verwenden oder Sie werden 20% davon verwenden, vielleicht 15% 10% Konzentrieren Sie sich nicht wirklich darauf, es wird zu verwirrend sein, wenn Sie anfangen Dinge zu tun, die Sie später nicht wirklich verwenden werden. Konzentrieren wir uns vorerst nicht auf die Projekteinstellungen, lassen Sie uns das Projekt einfach schließen. Wir werden das durchgehen, wann immer wir es brauchen, aber im Grunde genommen werden Sie die meisten dieser Dinge nicht benötigen. Konzentrieren wir uns auf all das. Wir werden diesen Kurs durchgehen und ich werde dir alles beibringen , was du wissen musst. Hier auf der rechten Seite können Sie den Outliner sehen Wenn du auf die Objekte in der Welt klickst, kannst du sehen, dass sie sich auch im World Outliner befinden Der World Outliner zeigt im Grunde nur welche Gegenstände Sie auf der Welt haben Sie haben die drei Würfel, die wir gerade hinzugefügt haben. Wir haben einige Lichter , die Sie hier sehen können. Wir haben einen Himmel und wir haben das Licht und so weiter. sind tatsächlich hier und Sie können sie tatsächlich hier sehen. Sie können auf das Richtungslicht klicken , das ist zum Beispiel das Sonnenlicht. Wenn Sie auf Ihrer Tastatur auf klicken, gelangen Sie dorthin, wo Sie es ausgewählt haben. Wenn ich darauf klicke, wirst du hierher weitergeleitet. Wenn ich jetzt auf klicke, weil ich meine Icons ausgeblendet habe, um G zu drücken. Damit ihr die Icons sehen könnt und hier seht ihr tatsächlich alle Lichter. Sie verstecken es hier drüben. Klicken Sie erneut auf, wenn Sie schnell dorthin gelangen möchten. So kann ich zum Beispiel auf den Würfel klicken. Wenn ich den Würfel tatsächlich finden kann, kann ich den Würfel nicht finden. Das Gute am Outliner ist, dass du den Würfel hier findest und auf den Würfel klicken kannst Sie können die Würfel tatsächlich hier sehen. Sie können hier auch Artikel auswählen. Klicken Sie auf die Tastatur, um dorthin zu gelangen, wenn Sie schnell dorthin gelangen möchten . Im Grunde zeigt dir der World Outliner , was du in dieser Welt hast, in deinem Spiel gerade All dies sind hier nur die Landschaftsteile. Wie Sie sehen können, steckt im Outliner nicht wirklich viel Sie können Ordner erstellen, wenn Sie organisiert bleiben möchten. Wenn Sie auf dieses Ordnersymbol klicken , wird ein neuer Ordner erstellt. Sie können den Ordner, den wir erstellt haben, hier einfach umbenennen. Sie können ihn umbenennen und Dinge hinzufügen. Wenn du auf das Objekt klickst und es hineinziehst, kannst du auf diese Weise den Überblick behalten. Sie können Elemente ausblenden, indem Sie darauf klicken , und Sie können erneut darauf klicken, um sie wieder anzuzeigen. Ja, das ist im Grunde der Outliner, über den wir bereits gesprochen haben, das Detailfenster, und hier drüben gibt nicht viel zu tun Das Wichtigste für den Moment ist, dass du der Welt Dinge hinzufügen kannst , indem du zum Beispiel hier oben klickst Sie können Lichter hinzufügen. Das brauchen wir nicht wirklich. Wir werden mit zwei D arbeiten. Du kannst wieder Formen hinzufügen, das brauchen wir nicht. Wir werden mit zwei D arbeiten. Wir werden uns nicht zu sehr darauf konzentrieren, aber im Grunde können wir Dinge wie Volumen hinzufügen. Wir werden es später hinzufügen. Wir brauchen also etwas in diesem sehr, sehr wichtigen Knopf. Sie können das Spiel auch spielen und sehen, wie das Spiel aussieht. Jetzt haben wir nicht wirklich viel im Spiel, es passiert nicht wirklich viel. Ich werde auf meiner Tastatur auf Escape klicken und wir werden von hier wegkommen. In Ordnung, bevor wir das beenden, das Letzte in ist das Letzte in dieser Engine die Inhaltsschublade. Wenn du darauf klickst, öffnet sich dieses Fenster. In der Inhaltsschublade können Sie im Grunde alle Ihre Spieldateien hinzufügen. Wenn Sie die beiden D-Grafiken , die Sie in Ihrer Software erstellt haben, , zum Beispiel die Charaktere, die Umgebung, die Kachelsätze, werden all diese Dateien hier drin sein. Die Musik, die Soundeffekte, was auch immer Sie haben. Wenn du ein Drei-D-Spiel machst, hast du die drei D-Modelle, Texturen und so weiter. Also werden alle Dateien hier drin sein. Und du kannst Dinge anklicken und in die Welt ziehen, und wir können sie in der Inhaltsschublade verwenden. Ich mag diese Inhaltsschublade nicht wirklich, denn wenn ich auf etwas in meiner Welt klicke , wird es minimiert. Auch hier denke ich, dass es für Sie verwirrend sein wird . Während Sie dem Kurs folgen, können Sie einfach auf die Inhaltsleiste klicken. Und ich werde auf Duck in Layout klicken. Und das macht es Inhaltsschublade, die jetzt als Inhaltsbrowser bezeichnet wird. Es bleibt hier im Viewport oder in meiner Ansicht, und ich kann es einfach in der Größe ändern, wenn Sie möchten Sie können die Größe aller Bedienfelder ändern, wenn Sie möchten. Es ist viel besser , wenn Sie diesem Kurs folgen , dass Sie das ständig sehen können Und normalerweise habe ich es auch so. In Lochmaschine Vier war es so. Ja. Also im Grunde kannst du deine Dateien sehen, du kannst neue Ordner erstellen. Wenn Sie schreiben, klicken Sie auf diesen Inhaltsordner Sie können beispielsweise auf Neuen Ordner klicken. Du kannst es nennen, sagen wir mal Assets oder was auch immer du hinzufügen möchtest. Später können Sie sogar mit der rechten Maustaste auf diesen Ordner klicken und zu „Farbe festlegen“ wechseln. Sie können diesem Ordner eine Farbe geben, wenn Sie möchten. Auf diese Weise können Sie organisiert bleiben. Was auch immer Sie tun möchten, Sie können jederzeit erneut mit der rechten Maustaste klicken und die Farbe löschen, wenn Sie sie nicht möchten. Jetzt sind wieder alle Dateien hier. Sie können auch auf die Schaltfläche Hinzufügen klicken und einen neuen Ordner hinzufügen, wenn Sie möchten. Sie können auch sehen, dass Sie andere Dinge wie die Blueprint-Klasse hinzufügen können . Das ist die Programmierung, die wir durchführen werden Sie können ein neues Level hinzufügen, Sie können ein Material hinzufügen Sie können viele Dinge über Animationen, Laub hinzufügen , wenn Sie Gras und Bäume und so weiter machen. Du kannst etwas über das Papier zu T hinzufügen, das ist eigentlich das Bild, mit dem wir arbeiten werden Wir werden all diese hinzufügen. Wir werden hier alles lernen. Sie können Physik hinzufügen und so weiter. Du kannst es auch machen, anstatt es von hier aus zu machen, was ich nie benutze, kannst du auf den Ordner klicken und hier klicken. Und du kannst die gleichen Dinge hinzufügen, die ich normalerweise einfach schreibe. Klicke hier und füge Dinge hinzu. Aber du kannst es auch hier oben machen, okay? Das war alles. Wenn Sie diese Symbole nun minimieren oder verkleinern oder vergrößern möchten , können Sie die Taste auf Ihrer Tastatur gedrückt halten und die Ansicht verkleinern. Dadurch wird die Größe des Symbols erhöht oder verringert. Sie können auch die Strg-Taste gedrückt halten und die Ansicht vergrößern , um die Größe der Symbole zu erhöhen. Jetzt kannst du auch auf Einstellungen klicken, ich habe Größe gefunden. Und das ist im Grunde das Gleiche wie bei Nal Engine Five und der Übersicht Ich hoffe, du bist ein bisschen selbstbewusster was hier drin ist. Auch hier werden wir einen ganzen Kurs drinnen machen , damit Sie sich vorerst damit vertraut machen können. Lass uns einfach zur nächsten Lektion übergehen. 5. 2.01 Spieleinführung: Hallo und willkommen. Und vielen Dank, dass Sie an diesem Kurs hier teilgenommen haben. Dies ist nur eine Einführung in das Spiel, das wir gerade entwickeln. , möchte ich dir zeigen, was wir Bevor wir beginnen, möchte ich dir zeigen, was wir entwickeln, damit du eine Vorstellung davon hast was wir in diesem Kurs machen. Wir entwickeln also im Grunde ein Spiel mit zwei Klicks. Und hier ist es, in Unreal Engine Five. Und wir verwenden nur Blueprints, um dieses Projekt zu erstellen, also kein C plus Jetzt möchte ich dir nur zeigen, was das Projekt ist. Wenn ich hier einfach auf Play klicke, kannst du sehen, dass die Musik bereits läuft. Das ist im Grunde ein Clicker-Spiel wie Cookie Clicker oder Clicker Heroes, wenn ich nur die Musik deaktiviere Ich kann also frei sprechen, wenn ich hier klicke. Also die Lautstärke 20 und nochmal auf Play klicken. Im Grunde ist das wie bei Clicker Heroes, wo man einen Feind in der Mitte Du hast Ladenartikel hier an der Seite, du hast Münzen hier oben. Ich habe mir gerade eine Menge Münzen gegeben, damit ich das alles kaufen und dir das Spiel zeigen kann. Ich habe auch ein paar Levels hier nebenan. Und ich habe einen Timer, mit dem ich den Feind vorher töten muss . Denn wenn ich den Feind nicht töte, wird der Timer zurückgesetzt und der Feind heilt vollständig. Noch einmal muss ich diesen Feind töten, bevor der Timer abläuft. Wenn ich den Feind töte, siehst du, dass ein neues Level freigeschaltet wurde und ich kann zum nächsten Level gehen, um den nächsten Feind zu spawnen, und ich kann diesen Feind töten Jetzt erhalte ich jedes Mal, wenn ich einen Feind töte , Münzen und kann weiter in die Level Sobald ich Geld habe, kann ich jetzt Gegenstände freischalten, die ich hier kaufen kann Du kannst zum Beispiel sehen, dass meine Maus 15 Schaden pro Klick verursacht. Ich kann es auch hier sehen, wenn ich mit der Maus darüber halte, heißt es, dass sie derzeit 15 Schaden pro Klick verursacht. Und ich kann drauf klicken und eins kaufen. Und jetzt mache ich 40 Schaden pro Klick und kann auf den Feind klicken. Und jetzt kann ich sehen, dass ich mehr Schaden anrichte. Diese Gegenstände hier unten sind automatische Klickmechaniken. Wenn ich diesen kaufe, heißt es im Grunde, dass er mir fünf Schaden pro Sekunde Fünf mal eins. Jetzt können Sie sehen, dass es dem Feind automatisch Schaden zufügt und fünf Schaden pro Sekunde zufügt. Offensichtlich wird der Feind dadurch nicht getötet, und der Feind startet die Gesundheit immer wieder neu Aber wenn ich etwas Stärkeres kaufe, kannst du sehen, dass es hier den Tod erreichen und es freischalten kann Jetzt habe ich es erstmal super einfach gemacht, weil ich dir nur zeigen möchte, wie das Spiel ist. Aber natürlich muss die Gesundheit viel höher sein und die Kosten müssen auch viel höher sein. Wenn ich jetzt in den Plänen einfach meine Münzen entferne, wenn ich zum Spieler gehe, klicke ich auf die Anzahl der Münzen und setze sie auf Null Und wenn ich auf Spielen klicke, siehst du hier nach Artikeln, die ich noch nicht kaufen kann Die Schaltflächen wurden deaktiviert und die Schaltfläche ändert auch ihre Farbe, sobald ich Geld habe. Sie können jetzt sehen, dass ich diesen Artikel kaufen kann. Und sobald ich eine kaufe, also jetzt habe ich 15 Münzen, kann ich eine kaufen und ich gebe die Münzen hier nebenbei aus. Sie können sehen, wie viele ich gekauft habe, sobald ich sie gekauft habe. Alles, was Sie übrigens sehen können, ist jedes Mal, wenn Sie einen Artikel kaufen, Pons hier in der Welt. Wenn du also einen Gegenstand kaufst, erscheint er hier. Und wenn ich mehr davon kaufe, kannst du sehen, dass es hier immer wieder auftaucht. Also werden alle Gegenstände, die du kaufst , auch in der Welt Sobald ich alle Artikel und eine bestimmte Menge gekauft habe , erscheint eine Aufstiegsschaltfläche Wenn ich darauf klicke, kann ich zur nächsten Stufe aufsteigen. Das ist im Grunde das Spiel, das wir entwickeln, und es gibt hier auch Busmechaniken, also Busfeinde, die später in den Stufen auftauchen werden Das ist im Grunde das Clicker-Spiel, das wir entwickeln. Ich hoffe, du wirst in den nächsten Lektionen mit mir zusammen sein. Es wird eine Menge Spaß machen, all das mit dir zu gestalten, und ich verspreche, dass es einfach sein wird, und ich werde es dir auch leicht machen. Lass uns weitermachen. 6. 2.02 Eine neue Ebene schaffen: In Ordnung, lassen Sie uns mit dem Projekt beginnen. Lassen Sie uns weitermachen und eine neue Map in den Ordnern im Inhaltsbrowser erstellen den Ordnern im . Ich werde schreiben. Klicken Sie zuerst und erstellen Sie einen neuen Ordner und nennen Sie ihn Maps. Bleiben Sie einfach organisiert, was das Projekt angeht. Jetzt hier drinnen werde ich jetzt klicken. Sie können ein Level mit zwei Methoden erstellen. Sie können entweder mit der rechten Maustaste hier klicken und ein neues Level erstellen. Oder du gehst zu Datei und klickst auf Neues Level. Der Unterschied besteht nun darin, dass du, wenn du von hier aus hier hier und hier auf Neues Level klickst, siehst du, dass du ein Open-World-Level erstellen kannst . Du kannst ein leeres Open-World-Level erstellen und so weiter. Sie haben also einige Vorlagen hier unten. Wenn du mit der rechten Maustaste klickst und auf Level klickst, bekommst du diese Optionen nicht, du bekommst einfach automatisch ein leeres Level. Ich möchte nur ein leeres Level erstellen, denn auch hier werden wir alles selbst erstellen. Klicken Sie hier mit der rechten Maustaste, um ein neues Level zu erstellen. Nennen wir das eine Karte. Normalerweise nenne ich es Karte, nennen wir das einen Kerker Ich glaube nicht, dass wir mehrere Karten haben werden. Dies ist die einzige, die wir haben werden Doppelklicken wir einfach auf diese. Ich wollte dir sagen, willst du diese Karte speichern? Das ist es eigentlich, was es bedeutet, wenn Sie Sterne an Ihren Ikonen haben . Wenn Sie kleine Sterne haben, bedeutet das, dass Sie diese noch nicht gespeichert haben. Lass uns einfach weitermachen und auf Ausgewählte speichern klicken. Und jetzt befinden wir uns in dieser Karte. Jetzt kannst du sehen, dass es sehr dunkel ist, wir können nichts sehen. Und auch hier im Outliner können Sie sehen, dass Sie keine Artikel sehen können Das liegt daran, dass dein Level leer ist. Du hast nichts, du hast kein Licht, nichts. Wir werden hier viele Dinge hinzufügen, aber im Moment wollten wir nur eine neue Karte erstellen. Lassen Sie uns weitermachen und auf Datei Alle speichern klicken. Sehr schöne Taste, die man oft drücken kann, weil manchmal der Motor abstürzt. Aber lassen Sie uns weitermachen und alles speichern und mit der nächsten Lektion fortfahren. 7. 2.03 Importieren der Umgebungs-Assets: Lassen Sie uns nun fortfahren und die Umweltressourcen importieren. Jetzt habe ich das für Sie in den Kurs aufgenommen. Wir haben einige Kursmaterialien , die Sie herunterladen können. diesen Materialien werde ich nun wieder weitere Elemente hinzufügen, während ich diesen Kurs weiterentwickle. Manchmal, wenn ich zu den Soundeffekten gehe, siehst du vielleicht viel mehr Soundeffekte , wenn ich hier drinnen bin. Sie können also sehen, dass ich die habe, aber in Ihrem Ordner haben Sie möglicherweise viel mehr Soundeffekte. Auch hier werde ich im Laufe der Entwicklung dieses Kurses immer mehr zu meinen Kursmaterialien hinzufügen . Lassen Sie sich nicht verwirren, wenn ich nicht so viele, so viele Artikel hier drin habe. Okay, der Umwelt zuliebe, gehen wir hier zur Umwelt und nehmen wir die beiden. Also, ich habe die Umgebung des Kerkers, der Gefängnisse. Also, wenn ich darauf doppelklicken und es vergrößern kann, sieht es so aus Das Gleiche gilt hier für die Requisiten. Ich habe ein paar Requisiten, die ich benutzen kann. Lassen Sie uns es jetzt schließen und diese importieren. Um es zu importieren, erstellen wir einen neuen Ordner. Ich werde hier mit der rechten Maustaste klicken und einen neuen Ordner erstellen. Ich nenne es hier Assets, ich klicke mit der rechten Maustaste und erstelle wieder einen neuen Ordner. Und nennen wir das eine Umgebung. Okay, ich werde meine Symbole etwas kleiner machen , weil sie viel Platz beanspruchen. Also werde ich auf Control klicken und mit meinem Mausrad die Ansicht verkleinern. Okay, jetzt gehe ich in den Umgebungsordner. Und es ist weg von hier. Wir können jetzt klicken und ziehen. Lassen Sie mich den Ordner einfach noch einmal öffnen. Ich kann sie anklicken und hierher ziehen. Da haben wir's. Denken Sie daran, wenn Sie sie nicht anklicken und ziehen können, wird dieses Symbol angezeigt und es sagt Ihnen sie nicht wirklich hierher ziehen können. Das liegt daran, dass Ihr Ordner vielleicht ein IP-Ordner oder ein Raw-Ordner ist. Denken Sie daran, mit der rechten Maustaste auf Ihren Ordner zu klicken und den Inhalt zu extrahieren. Wenn es sich um einen IP-Ordner handelt, muss es sich um einen normalen Ordner handeln. Extrahieren Sie den Inhalt. Nach dem Extrahieren können Sie hier Inhalte importieren. Wenn Sie jetzt Dinge hier importieren, können Sie darauf klicken und Sie können sehen, dass sie verschwommen sind Es wird nicht wirklich viel ausgewählt und es ist sehr verschwommen. Und das wollen wir nicht. Das liegt daran, dass der echte Motor ein Drei-D-Motor ist. Es verwischt Dinge, was in drei D gut aussieht, aber in zwei D nicht gut aussieht. Eine einfache Sache ist, einfach beide auszuwählen und Sie können einfach auf Control klicken und auf das nächste klicken, wodurch sowohl mit der rechten Maustaste zu Sprite-Aktionen als auch zu Apply Paper two D Texture-Einstellungen wechseln Apply Paper two D Texture-Einstellungen Dadurch wird sichergestellt, dass die Elemente hier nicht verschwommen sind. Und es ist tatsächlich viel auswählen, wie Sie hier sehen können, jetzt heißt es viel auswählen, alles sieht gut aus. Lass uns weitermachen und auf Datei klicken und alles speichern, die Texturen Jetzt werde ich tatsächlich einen neuen Ordner namens Textures und ihn einfach importieren. Darin haben wir den Assets-Ordner. Darin haben wir die Umgebung und darin haben wir den Ordner Textures. Das liegt daran, dass ich, wenn wir später eine Kachelkarte und ein Kachelset erstellen , sie einfach hier platzieren werde. Die brauchen wir nicht mehr wirklich. Später werde ich sie einfach im Textures-Ordner haben. Aber vorerst war es das. Lass uns mit der nächsten Lektion fortfahren. 8. 2.04 Erstellen eines Kachelsatzes: Nachdem wir die Assets importiert haben, können wir nun eine Kachelkarte und ein Kachelset erstellen Um den Unterschied zu erkennen, können Sie schreiben klicken Sie hier und gehen Sie zu Papier, um zu sehen, dass es etwas gibt, das als Kachelmap bezeichnet wird. Es gibt ein sogenanntes Kachelset. Der Unterschied zwischen ihnen besteht darin, dass es beim Kachelset die Kacheln gibt, mit denen wir unsere Karte malen müssen. Die Kachelkarte ist die Karte selbst. Du kannst es dir vorstellen , wenn du Maler bist. Sie haben das Pellet, das ist das Kachelset, das unsere Kacheln sind, und die Leinwand, das ist die Kachelkarte, auf der wir unsere Karte selbst malen Lassen Sie uns weitermachen und ein Kachelset erstellen. Ich werde es nicht von hier aus erstellen, aber wir können es erstellen, indem wir mit der rechten Maustaste auf das Dungeon-Prisma Sie können sehen, dass dies die Umgebung ist, die wir importiert haben, oder im Grunde die Klicken wir mit der rechten Maustaste darauf und gehen wir zu Sprite-Aktionen und erstellen ein Kachelset Anhand dieser Textur können Sie sehen, dass sie erstellt wurde. Ich doppelklicke einfach hier. Sie können übrigens auch darauf klicken und dann auf der Tastatur auf zwei klicken. Das ist manchmal einfacher. Ich sage einfach S als Präfix für Tile Set. Ich werde darauf doppelklicken und es hier öffnen. Sie können die rechte Maustaste gedrückt halten und Sie können herumblättern und Sie können die Ansicht vergrößern und verkleinern und die Kacheln sehen. Klicken Sie auf sie, um sie auszuwählen. Das ist es, was wir tun. Später werden wir die Kacheln auswählen und sie dann innerhalb der Kachelkarte malen. Jetzt können wir hier sehen, dass, wenn ich eine Kachel auswähle , sie nicht wirklich passt. Es wählt zu viel aus. Und das liegt daran, dass wir hier in der Kachelgröße definieren müssen, wie groß die Kacheln sind. Also genau diese Kacheln habe ich auf Do-ins gefunden, ich glaube, es heißt Dungeon Pixel-Kacheln oder so, aber im Grunde genommen geht es darum, wie man drei Kacheln finden kann, zwei 3D-Kunst hier, es war 16 mal 16, das hat der Künstler geschrieben Außerdem, wenn du 16 mal 16 Pixel schreibst , also das sind Pixel, kannst du jetzt sehen , dass du sie richtig auswählst Wenn ich jetzt auf die Kacheln klicke, werden sie korrekt ausgewählt Jetzt sind sie vorbereitet. Später müssen wir hier, hier drinnen, Kollision hinzufügen. Vielleicht brauchen wir es, vielleicht auch nicht. Weil es ein Clicker-Spiel ist und sich niemand bewegt. Ich glaube eigentlich nicht, dass wir dem Spiel eine Kollision hinzufügen müssen Spiel eine Kollision hinzufügen Das war es vorerst. Wir können jetzt einfach weitermachen und alles speichern und schließen. Wenn wir die Requisiten später brauchen, machen wir das jetzt. Wir könnten sie benutzen. Klicken wir hier mit der rechten Maustaste. Gehen Sie zu Sprite Actions und erstellen Sie aus diesem ebenfalls ein Kachelset Fahren Sie fort und benennen Sie es im ersten Kachelsatz in S um. Lass es uns hier drinnen öffnen. Auch hier können Sie sehen, wenn ich etwas auswähle, dass es zu viel auswählt. Das liegt daran, dass die Kachelgröße 16 mal 16 Pixel beträgt. Wenn ich jetzt die Elemente auswähle, ist das korrekter und es wird nicht auch das Objekt daneben ausgewählt . Das war es vorerst. Mach weiter und speichere auch diesen. Wenn du dich entscheidest, in Zukunft nach Cho zu gehen, kannst du einfach hier oben in den Brows-Spielen und Assets gehen, und hier findest du kostenlose Inhalte und du kannst sie herunterladen Aber du kannst das auch hier tun. Das ist im Grunde die , die ich heruntergeladen habe, diese Spezifikation hier. Aber wenn du später mehr Steine für dein Spiel haben willst oder mehr Requisiten für dein Spiel benötigst, kannst du jederzeit hier reingehen, sie herunterladen und erneut importieren Denken Sie daran, mit der rechten Maustaste zu klicken und Papier auf die Einstellungen für die Einstellungstextur aufzutragen , damit sie nicht verschwommen sind Klicken Sie dann mit der rechten Maustaste, fahren fort und erstellen Sie erneut ein Kachelset. Und da hast du deine neuen Kacheln. Okay, jetzt können wir sie verwenden, um unsere Kachelkarte zu erstellen. Lassen Sie uns also in der nächsten Lektion weitermachen und eine Kachelkarte erstellen. 9. 2.05 Eine Kachelkarte erstellen: Jetzt, wo wir das Kachelset erstellt haben, nehme ich die hier und verschiebe sie stattdessen in den Ordner Environment, außerhalb des Ordners Textures Denn die brauchen wir im Grunde nicht mehr, aber du musst sie nicht löschen, weil diese Kachelsets immer noch diese Texturen benötigen. Aber wir werden sie nicht wirklich im Spiel verwenden, wir werden sie hier verwenden. Lassen Sie uns jetzt eine Kachelkarte erstellen. Wenn du hier mit der rechten Maustaste auf dein von uns erstelltes Kachelset klickst, das Dungeon-Prisma, kannst du hier oben eine Kachelkarte erstellen Mach weiter und erstelle eine Kachelkarte, und ich werde sie wieder Dungeon Prison nennen Lass uns aufhören, klicken und sie öffnen und sehen, was sie ist. Wie ich dir bereits gesagt habe, ist eine Kachelkarte die Leinwand. Du malst die Kacheln auf das Kachelset, das du hier links siehst, ist deine Leinwand. Sie können hier Kacheln auswählen, vergrößern und verkleinern, Sie können die rechte Maustaste gedrückt halten und Sie können zum Beispiel herumblättern. Sie können hier das Wort ergreifen, wenn Sie hier klicken. Wenn Sie die Maus auf Ihre Leinwand in der Kachelkarte bewegen und hier klicken, können Sie jetzt sehen, dass Sie eine Kachel gemalt haben. Sie können einfach mit der linken Maustaste klicken und malen. Jetzt können Sie sehen, dass Sie das Ganze gefüllt haben. Wenn Sie nun löschen möchten, können Sie hier oben auf den Erasor klicken, oder Sie können auf der Tastatur auf E klicken auf klicken, wählen wir den Rasierer erneut aus und klicken auf Oder du kannst weiter drücken, und das wird das Ganze füllen Oder du kannst ihn hier oben anklicken, den Farbeimer. Und du kannst hier klicken und es wird die gesamte Leinwand mit der Kachel füllen , die du ausgewählt hast. Sie können auch eine andere Kachel auswählen und auf B für das Malwerkzeug klicken, dann können Sie auch hier malen. Jetzt kann ich sehen, dass wir hier drinnen malen können. Auf der rechten Seite haben wir Schichten. Wenn Sie mit Software wie Photoshop gearbeitet haben, wissen Sie, was Ebenen sind. Nehmen wir zum Beispiel an, ich habe diesen Boden hier gestrichen. Ich habe auf diese Kachel geklickt und hier gemalt. Wenn ich hier oben klicke, kannst du grundsätzlich zwischen den Kachelsets wechseln. Ich kann mein Kachelset von Dungeon Prison auf die von mir erstellten Requisiten umstellen Dungeon Prison auf die von mir erstellten Requisiten Nehmen wir an, ich möchte das hier malen. Siehst du hier. Wenn ich hier klicke, reicht das nicht, denn die Kiste besteht aus diesem und diesem Ich kann tatsächlich einfach klicken und ziehen und einfach beide auswählen. Wenn ich sie jetzt hierher nehme und male, kannst du sehen, dass mein Boden gelöscht wird. Das liegt daran, dass du auch hier malst. Ich werde auf Steuerung Z klicken also statt hier Lassen Sie uns also statt hier eine neue Ebene hinzufügen. Jetzt kann ich meinen Eimer auf diese neue Ebene malen. Jetzt kannst du sehen, dass nichts passiert. Das liegt daran, dass diese Ebene die Ebene darunter nicht beeinflusst. Wenn ich auf das Auge klicke, um die Sichtbarkeit zu ändern, kannst du jetzt sehen, dass ich meine Kiste getroffen habe Und wenn ich noch einmal darauf klicke, zeige ich es an. Und ich kann dasselbe mit anderen Gegenständen machen. Ich kann im Grunde auf die zweite Ebene klicken und sie hinzufügen, und es wird alles in Ordnung sein. Jetzt kannst du sehen, wenn ich auf die erste Ebene klicke und sie male, wird die darunter liegende Kachel gelöscht. Sehr, sehr schön, diese Schichten zu haben. Wenn du etwas über der darunterliegenden Ebene brauchst, brauche ich etwas auf dem Boden und ich muss eine neue Ebene erstellen. Nehmen wir an , wir hatten ein Spiel mit Himmel und Wolken. Nehmen wir an, es wäre eine Plattform oder ein Spiel und wir hätten eine Cloud. Lassen Sie mich einfach alle hier löschen. Nehmen wir an, wir hatten hier Wolken. Und auch hinter diesen Kacheln hätten wir eine Ebene erstellen können. Und tatsächlich könnten wir auf diesen Pfeil klicken, um die Ebene hinter diesen Kacheln hier zu platzieren. Und wir könnten dahinter malen, ohne dass es beeinträchtigt wird. Und du kannst sehen, ob ich sie hier verstecke, sind tatsächlich hinter den Bodenplatten. Okay, also so funktionieren Ebenen, genau wie in Photoshop Wenn Sie schon einmal mit Photoshop gearbeitet haben, lassen Sie uns diese Ebene einfach hier löschen . Und diese Ebene auch, behalte einfach diese. Jetzt müssen wir hier unten die Breite und Höhe der Kachel definieren. Das ist jetzt richtig, denn denken Sie daran, dass wir innerhalb des Kachelsatzes die Kacheln 16 mal 16 Pixel groß hatten. Und hier sind es auch 16 mal 16 Pixel. Also dieser ist richtig. Okay, lass uns weitermachen und das löschen. Ich werde für das Rasiermesser auf E klicken. Geh einfach und lösche alles. Was wir jetzt tun können, ist, dass alles gut ist. Die Breite und Höhe der Karte. Lass uns die Karte einfach etwas größer machen. Ich mache es 15 mal 15 Kacheln, Größe 15 Kacheln mal 15 Kacheln. Das ist nur vorübergehend. Sie werden eine temporäre Karte erstellen , die wir später ändern werden. Mach dir darüber vorerst keine Sorgen. Wir wollen nur, dass das Spiel etwas hat, damit wir das Spiel programmieren können. Im Moment ist das in Ordnung. Lass uns auf Datei klicken und alles speichern. Und lass uns mit der nächsten Lektion fortfahren. 10. 2.06 Eine temporäre Kachelkarte entwerfen: In Ordnung, lassen Sie uns weitermachen und eine temporäre Karte entwerfen. Bevor wir unser Spiel programmieren können, müssen wir hier etwas haben. Lasst uns im Grunde auf die hier aufgestellte Kachel klicken und das darin befindliche Dungeon-Prisma auswählen Du kannst wählen, was du willst. Sie können diesen sogar nehmen und darauf klicken, um das Füllwerkzeug aufzurufen. Und du kannst hier klicken und du bist fertig. Aber im Grunde werde ich hier einfach etwas kreieren muss nicht wirklich etwas Gutes sein, denn wir werden es sowieso ändern. Ich werde darauf klicken und es hier mit diesen Kacheln füllen. Diese Ebene eins, du kannst sie sogar anklicken. Klicken Sie auf der Tastatur auf zwei und nennen Sie es Basisschicht. Das ist vielleicht der Boden. Jetzt brauchen wir vielleicht auch ein paar Wände. Das sind die Wände. Ich werde diese Ecke hier einfach wieder auswählen. Sie können klicken und ziehen und alle drei auswählen. Sie können hier auf dieses Plus klicken und eine neue Ebene erstellen. Und ich nenne es einfach Frontschicht. Vielleicht klicken Sie auf das Pin-Tool, um es zu malen, malen Sie es hier. Ich wähle jetzt Wände aus, klicke und ziehe mit der Maus, um sie alle hier zu malen. Wählen Sie erneut diese aus und malen Sie sie hier. Okay. Nun, manchmal, wenn man neue Kacheln hat, muss man herausfinden, welche wohin gehören, weil sie sehr spezifisch sind. Zum Beispiel hier unten ist, glaube ich, dieser. Du kannst das hier unten auswählen, hier drüben malen. Dann musst du wählen, mal sehen, ich glaube, es ist dieser. Dieser. Malen Sie auch hier unten. Du musst hier eine davon auswählen. Wir müssen sehen, lass es mich hier sehen. Wenn wir einen finden, der passt, vielleicht diesen. Ja, dieser passt. Du kannst es hier drüben malen. Du kannst es auswählen, hier klicken, nach oben malen. Jetzt verbinde es einfach und verbinde es mit diesem hier drüben. Jetzt haben wir einen kleinen Raum, in dem wir arbeiten können. Du kannst sogar versuchen, diese Kacheln zu üben . Es ist gut zu üben. Bevor Sie die endgültige Karte erstellen, fügen Sie hier vielleicht so etwas hinzu. Aber wie Sie sehen können, sind wir hier eigentlich an den Seiten. Lass mich sehen, ob wir das reparieren können. Vielleicht kannst du damit malen. Für die andere Seite muss ich die auswählen, lassen Sie mich das nur, damit Sie die auf dieser Seite darin besser sehen können . Und jetzt sieht es richtig aus. Okay. Auch für die Fliesen. Mal sehen, ob wir die jetzt malen müssen . Ich glaube, die brauchen wir nicht wirklich. Gut, also was wir auch hinzufügen können, du kannst versuchen, dieses hinzuzufügen, wenn du willst. Im Grunde können wir sie anklicken und trocknen und alle so auswählen, und jetzt können wir sie hier wieder hinzufügen. Sie können versuchen, sie zur Basisebene hinzuzufügen, aber wie Sie sehen, werden Sie hier oben malen. Klicke auf Steuerung, du kannst auch sehen, dass es sich hinter der Wand befindet. Klicken Sie auf die vordere Ebene, Sie können versuchen, sie hier zu malen. Wie Sie sehen können, ist es wieder Malerei auf die Wände, denn wir malen auf diese Schichten oder diese Fliesen, klicken Sie hier und fügen eine neue Ebene hinzu und nennen es vielleicht Dekorationsfront oder was auch immer. Es ist nicht wirklich wichtig, wie auch immer du es nennst. Lass es uns zum Beispiel einfach hier hinzufügen. Jetzt können Sie sehen, dass wir das hinzugefügt haben. Wie ich sehen kann, die Kacheln, die ich gerade ausgewählt habe. Die Fliesen hier oben passen nicht, also müssen wir zur Basisschicht gehen. Und ich werde hier zu den Fliesen gehen. Und ich muss mit diesen Fliesen malen . Mit diesen Fliesen malen. Und die Eckfliese ist hier, die andere Ecke ist hier. Lass uns versuchen, es richtig zu malen. Ich glaube, dieser ist hier. Lass uns diesen hier malen. Nochmal, diese Ecke wie diese. Und ich werde einfach so rummalen. Okay? Ich kann es sehr schnell machen. Im Moment ist es nicht wirklich wichtig. Dies ist nur eine Testkarte , die wir später ändern werden. Das Schlechte an der Honoral Engine für die bisherigen Picks ist, dass, wenn du falsche Dinge malst, wenn du auf Steuerung Z klickst, nur ein Kachel nach dem anderen entfernt wird Wenn du es zu oft machst, kann es eine Qual sein. Ordnung, diese Kachel hier, vielleicht müssen wir sie stattdessen einfach so streichen. Und hier sieht es auch viel besser aus. Jetzt sieht es gut aus. Ich glaube, wir haben auch einige Highlights für die Säulen. Wir können sehen, dass die Säule auch einige Highlights aufweist. Ich kann tatsächlich diese auswählen, zur vorderen Ebene zurückkehren und diese als Säule malen. Wir haben etwas Licht von diesem Raum hier, das rote Licht, und es sieht realistischer aus. Nun, ob du auch ein paar Requisiten hinzufügen willst , ist momentan nicht wirklich wichtig Aber du kannst hier einige Requisiten hinzufügen. Zum Beispiel erstellen Sie können zur Dekorationsfront gehen. Lass uns hier einen platzieren. Platziere das vielleicht auf der einen Seite, es ist so. Und vielleicht in der Ecke, mal sehen. Wir können diese Truhe vielleicht hier in die Ecke stellen , so wie hier. Auch hier ist es vorerst nicht wirklich wichtig. Lassen wir es einfach so sein. Wenn du etwas Gras hinzufügen willst, könnte ich sehen, dass etwas Gras da ist. Vielleicht kannst du hier etwas davon auswählen. Füge das Gras hier unten hinzu. Dann kannst du es zu Ende bringen, glaube ich, indem du es mit diesem andeutest Du kannst es auch hier malen. Ich werde auf Controls klicken. Im Moment nicht allzu wichtig. Lass uns alles speichern. Und das ist die Karte, die wir haben. Schließen wir sie und fahren wir mit der nächsten Lektion fort. 11. 2.07 Platziere die Kachelkarte im Level: Nachdem wir die Kachelmap erstellt haben, klicken wir darauf und ziehen sie in das Level Sehr einfach. So platzierst du die Kachelkarte im Level. Wie ich dir schon zuvor gesagt habe, kannst du die rechte Maustaste gedrückt halten und dann auf W D S und A klicken , um dich zu bewegen. Im Grunde sieht es tatsächlich so aus. Das sind zwei D im Inneren eines manuellen Motors. Da es sich um eine Drei-D-Software oder eine Drei-D-Engine handelt, sieht es so aus Wir arbeiten mit drei D, aber wenn Sie zur orthogonalen Ansicht wechseln zur orthogonalen Ansicht und sie aus der rechten Ansicht statt aus dem Drahtgittermodus betrachten, können Sie einfach den unbeleuchteten Modus wählen Sie können hier hineinzoomen und sehen , wie es aussieht Und jetzt sehen wir es uns in zwei D an. Ich werde vorerst einfach zum perspektivischen Modus zurückkehren. Was ich normalerweise für den Standort mache, habe ich bei 20 gesagt, lass uns 000 schreiben. Es ist hier am Nullpunkt der Welt. Ich werde all diese Zeilen hier entfernen , weil ich sie nicht wirklich brauche. Wenn du auf die Kachelkarte klickst, gehst du hier runter, du kannst diese entfernen. Wenn ausgewählt, kannst du sie pro Kachel anzeigen. Jetzt ist es entfernt. Jetzt platzieren Sie es so. Sehr einfach. Wir können weitermachen und auf Datei klicken und alles speichern. Aber wie Sie sehen, sieht es sehr schlecht aus, weil die Farben nicht korrekt sind, und das liegt daran, dass die Beleuchtung in Unreal Engine diese Kachelmap beeinflusst Lassen Sie uns also weitermachen und das Problem in der nächsten Lektion beheben. 12. 2.08 Volumen nach dem Prozess: Um die Beleuchtung einzustellen, müssen wir nun ein sogenanntes Post-Process-Lautstärke verwenden Wenn du hier nach oben klickst und zu den Volumes gehst, findest du hier unten ein sogenanntes Post-Process-Volume. Sie finden es auch in Visual Effects. Bei diesem einen Post-Process-Volume handelt es sich um dasselbe. Sie können darauf klicken und Sie werden eines erstellen. Was ein Post-Process-Volume ist, wenn Sie schon einmal mit Photoshop gearbeitet haben, ändert es im Grunde die Farben, genau wie in Photoshop. Sie ändern die Sättigung des Bildes, Sie ändern die Beleuchtung und Helligkeit und so weiter. Das Gleiche gilt Volumen nach der Bearbeitung. Du klickst darauf. In einem Post-Process-Volumen können Sie den Bloom-Wert und die Belichtung ändern , wenn Sie einen Linseneffekt wünschen Der Bildeffekt, d. h. die Vignette um das Bild herum, wo Sie das Bild machen, also an den Ecken, und das wirkt wie ein filmischer Und Sie können die Temperatur des Lichts ändern. Du kannst viele Dinge ändern , indem du das Aussehen des Spiels änderst. Die Lautstärke nach der Bearbeitung wird verwendet, um das Aussehen des Spiels zu ändern. Okay, hier drinnen, wenn du einfach den Wert erhöhst und senkst. Wenn ich zum Beispiel zu Bloom gehe und auf die Intensität klicke und sie erhöhe oder verringere, siehst du, dass nichts passiert. Das liegt daran, dass Sie in ein Post-Process-Volume gehen müssen. Und wie Sie sehen können, kann ich jetzt, wenn ich mich darin befinde, erhöhen und verringern und das ändert die Werte. Anstatt hier drin zu sein, kannst du runtergehen und dann diesen finden, der Infinite Extent Unbound heißt Wenn du darauf klickst, bedeutet das, dass es sich auf das gesamte Level auswirkt Und es spielt keine Rolle, ob du dich darin oder außerhalb davon befindest, es wird sich auf die gesamte Ebene auswirken. Jetzt kannst du sehen, ob ich zu- oder abnehme, die Intensität wird sich ändern. Das Gute daran, mittendrin zu sein, ist, nehmen wir an, du hattest ein Drei-D-Spiel oder sogar ein Zwei-D-Spiel, wenn du einen speziellen Stil kreieren möchtest. Wenn du in einem Drei-D-Spiel, zum Beispiel einem RPG-Spiel, in eine Höhle gehst , verändert das das Aussehen des Spiels weil du dich jetzt in der Höhle Die Höhle hat ein bestimmtes Aussehen. Wenn du die Höhle verlässt, verändert sich ihr Aussehen. Aber hier müssen wir die Effekte nicht wirklich ändern , je nachdem, wo wir uns befinden. Wir wollen, dass das Ganze gleich ist. Normalerweise klicken wir in den meisten Spielen einfach auf Infinite Extent Unbound und wir beeinflussen das ganze Spiel Okay, für den Bloom muss ich ihn auf Null setzen, weil wir Bloom nicht wirklich haben oder wieder zwei D mit zwei D innerhalb einer Drei-D-Engine ist wirklich cool weil man die D-Beleuchtung verwenden und das zu zwei D hinzufügen kann, was dann wirklich Spezialeffekte gibt, die man von zwei Engines nicht bekommt Sie können drei D-Lichter haben, Sie können hier drei D-Effekte haben, was Sie bei zwei D-Engines nicht bekommen können. Es ist auch sehr cool, damit zu experimentieren. Ich werde wahrscheinlich später einen Kurs erstellen , falls ich noch keinen erstellt habe, dem es darum geht, wie man spezielle 3-D-Effekte zu zwei D hinzufügt . Aber vorerst setzen wir Bloom auf Null. Gehen wir zur Belichtung und im Grunde zur minimalen und maximalen Belichtung, normalerweise setze ich sie auf 1,1 Belichtung ist einfach, wenn ich sie deaktiviere. Sie können sehen, dass die Beleuchtung mit der Zeit zunimmt. Das ist gut für dreidimensionale Kinoumgebungen, aber wir müssen die Beleuchtung nicht wirklich ändern je nachdem, ob wir uns in der Nähe oder in der Ferne befinden Stellen wir es einfach auf eine Konstante ein, auch wenn wir nah oder weit weg sind, das spielt keine Rolle Aber vorerst werde ich es auf zwei setzen, weil ich Ihnen nur meine Volume-Einstellungen für die Nachbearbeitung gebe Ihnen nur meine Volume-Einstellungen für die Nachbearbeitung , die ich hier für zwei D erstellt habe. Die Beleuchtung ist sehr, sehr gut, denn wie Sie hier sehen können, müssen wir die Beleuchtung anpassen und wollen, dass sie wie unbeleuchtet aussieht Wenn Sie ins Unbeleuchtete gehen, sieht es ohne Beleuchtung so aus Das ist eigentlich das, was ich für dieses Pixel-Kachel-Set habe. So sieht es wirklich aus. Sie können es auch in der rechten Ansicht sehen, in der autografischen Ansicht Wenn Sie die Ansicht vergrößern, wird es so aussehen, wenn wir die Beleuchtung richtig eingestellt haben Wenn wir zum perspektivischen Modus zurückkehren und ich zum beleuchteten Modus zurückkehre, das Problem darin, dass Sie es nur im beleuchteten Modus sehen, wenn Sie hier auf Abspielen klicken . Wir müssen die Beleuchtung im beleuchteten Modus tatsächlich so ändern , dass sie der Beleuchtung im unbeleuchteten Modus entspricht Das versuchen wir mit dem Volumen nach der Bearbeitung zu erreichen Wir versuchen, den beleuchteten Modus genauso aussehen zu lassen wie den unbeleuchteten Modus. So wie das hier Okay, lass uns hier in den beleuchteten Modus gehen. Ich habe es drei bis vier Stunden lang versucht. Ich habe hier nur mit vielen Einstellungen gespielt , damit es wie im unbeleuchteten Modus aussieht Ich habe herausgefunden, dass die minimale und maximale Belichtung auf zwei eingestellt werden sollte Der Bildeffekt, der im Grunde die Vignette ist, kann man sehen, er fügt sich an den Rändern wie ein filmischer Effekt hinzu Wir haben das einfach auf Null gesetzt, wir brauchen es nicht wirklich. Wir haben hier oben die Highlights und das Diverse innerhalb der Farbkorrektur für das Minimum, wir müssen das auf eins setzen Sehen wir uns hier die Stärke der Tonkurve an Wir müssen sie auf Null setzen Sie können einen großen Unterschied sehen , wenn wir diesen Wert auf Null setzen. Es sieht fast wie das Original aus. Wenn du jetzt in den Lit-Modus gehst. Wenn Sie in den Beleuchtungsmodus wechseln, können Sie sehen, dass er viel besser aussieht als zuvor. Wir müssen jedoch noch einige Dinge anpassen , da Sie sehen können, dass es nicht dasselbe ist. Sie können auch auf die Abkürzungen, die alten vier und die alten drei, klicken . Wenn ich auf die alten drei klicke, gehe ich in den Lit-Modus. alten vier, ich gehe in den Lit-Modus, dort kann ich sehr schnell auf die alte Version 3.4 klicken, und Sie können den Unterschied zwischen ihnen sehen. Es gibt immer noch einen Unterschied , wenn ich zum Lit-Modus zurückkehre. Und lassen Sie uns auch hier einige Einstellungen ändern. Nun, hier oben, eigentlich hier unten, lass uns einfach weitermachen. Bevor ich die Farben hier unten ändere, wir die Intensität der Umgebungsokklusion auf Null Lassen Sie uns auch die Stärke der Bewegungsunschärfe auf Null ändern Bewegungsunschärfe auf Null Ich brauche das wirklich. Lass uns auf Datei klicken und alles speichern. Wenn ich jetzt nach oben gehe, haben wir unter der Farbkorrektur etwas, das Temperatur, globale Schatten und Mitteltöne genannt unter der Farbkorrektur etwas, das Temperatur, globale Schatten und Mitteltöne Jetzt sind wir bereit, die Farben zu ändern, vielleicht die Sättigung zu reduzieren Denn wie Sie hier sehen können, , wenn ich in den unbeleuchteten Modus gehe sieht es etwas ungesättigter aus, wenn ich in den unbeleuchteten Modus gehe als im beleuchteten Modus Jetzt habe ich dir die richtigen Einstellungen für diesen Modus gegeben. Dieser muss 1,0 sein. All das haben wir auf Null gesetzt, weil wir sie nicht wirklich brauchen. Und die Belichtung ist auf zwei eingestellt. Aber jetzt musst du auf eigene Faust vorgehen, weil du diese je nachdem einstellen musst , wie deine Kacheln aussehen. Denken Sie an das Globale hier, wenn ich nur das Globale geöffnet hätte, eigentlich nicht alles. Wenn ich das Globale öffne, öffnest du die Sättigung, den Kontrast, das Gamma und auch hier die Verstärkung. Lass uns damit arbeiten und korrigieren, wie es hier aussieht. Fangen wir mit der Sättigung an. Das liegt daran, dass ich mir dieses Rot hier im Modus Beleuchtet ansehe und auf Unbeleuchtet klicke Ich kann sehen, dass es auf dem Eis leichter ist, was bedeutet, dass es weniger gesättigt ist Wenn ich in den Leuchtmodus gehe und dann zur Sättigung gehe und sie hier einstelle, kannst du jetzt die Sättigung erhöhen und verringern. Und du kannst sehen, dass du das Aussehen ändern kannst. Wir müssen es jedoch nicht wirklich so stark reduzieren. Ich werde wie zuvor zu einem zurückkehren. Und was Sie tun müssen, ist erneut Alt gedrückt zu halten und auf 3.4 zu klicken. Sie können zwischen Lit und On Lit wechseln, und Sie können sehen, wie es aussieht, wenn ich auf Hier klicke. Im Lit-Modus reduziere ich es ein bisschen und klicke auf die alten drei. Jetzt kannst du sehen , wie es aussieht. Ich sehe mir nur dieses Rot hier an. Anstatt es so zu haben, werde ich es vielleicht einfach auf 95 bringen. Okay. Klicken Sie auf die alte Version 3.4 und wechseln Sie sehr schnell zwischen ihnen. Du kannst das sehen, wie es aussieht. Ich denke, die Sättigung ist jetzt in Ordnung, aber ich kann sehen, dass sie mehr ist, hier ist es weißer. Ich glaube, es sind Gamma und Gain. Lassen Sie uns versuchen, hier zum Gamma zu gelangen und es leicht zu erhöhen , weil Sie das Gamma sehen können. Wenn Sie es zu stark erhöhen, gehe ich zurück in den beleuchteten Modus und erhöhe den Gammawert. Sie können sehen, dass dies der Effekt ist. Was Sie tun können, ist ein Trick , den ich manchmal anwende. ich auf die alte Version 3.4 klicke, klicke ich einfach weiter, während ich es tatsächlich anpasse Hier kannst du sehen, ob du es falsch einstellst, zu viel. Man kann es weit voneinander entfernt sehen. Wenn du es zu hoch erhöhst, ist es auch weit voneinander entfernt. Normalerweise halte ich die Alt und drücke sehr schnell 3.4. Ich versuche einfach, sie so nah wie möglich beieinander zu haben . Jetzt kannst du sehen, ob ich auf alle 3.4 klicke , um zwischen Lit und Let zu wechseln , sie sind fast identisch. 1,05 ist hier der richtige Wert. Nun zum Kontrast, ich kann versuchen, hier zu klicken und versuchen, den Kontrast leicht zu erhöhen Ich werde ihn wieder erhöhen. Allen dreien gefällt das. 1.02 Ich denke, das ist der richtige. Nun zum Gewinn. Ich denke, wir können ein bisschen für den Gewinn geben . Lass uns das auch versuchen. So etwas hier für die Schatten. Nun, wenn du den Schatten etwas mehr Kontrast geben oder den Kontrast entfernen möchtest , kannst du das tatsächlich tun, wenn du auf die Schatten klickst. Wenn ich zu Kontrast gehe, denn wenn ich mir meine Schatten ansehe, sehe ich mir hier nur meine Schatten an. Ich denke, das ist es auch. Kontrast im beleuchteten Modus, Sie können sehen, dass es im beleuchteten Modus heller ist. Wenn Sie jedoch in den beleuchteten Modus wechseln, können wir den Kontrast für die Schatten etwas verringern . Wenn ich wieder auf die alte Version 3.4 klicke klicke ich einfach weiter , um zu sehen, wie sie aussehen. Das ist viel zu viel, vielleicht so etwas. Nur 0,97 Auch hier, wie Sie an meinen Werten sehen können, ändere ich sie nicht wirklich zu sehr Vielleicht 0,020 0,05 und so weiter. Also ändere es nicht zu sehr, nur geringfügig, damit ich diesen Look haben kann Wenn ich jetzt vom unbeleuchteten Modus in den beleuchteten Modus übergehe, können Sie sehen, dass es sehr nah ist Jetzt kannst du mehr Zeit hier verbringen als ich. Sie können vielleicht 15 Minuten oder 30 Minuten damit verbringen , hier hin und her zu wechseln und bessere Werte zu haben. Aber im Moment sieht alles gut aus. Wir müssen jedoch noch einige Einstellungen in den Projekteinstellungen anpassen . Und das machen wir in der nächsten Lektion. 13. 2.09 Passen Sie die Projekteinstellungen an: Das Letzte, was wir jetzt mit der Umwelt machen müssen, ist, dass wir das Tasing deaktivieren müssen Wie Sie hier sehen können, ist es vielleicht nicht wirklich sichtbar, aber es gibt Anti-Eliasing, wodurch die Dinge ein wenig verschwimmen und es nicht wie Pixelot aussieht Das ist wieder so, weil in drei D T Elising wirklich gut ist und dein Spiel dadurch besser aussieht, aber in Pixelot brauchen wir es aber in Pixelot Gehen wir zum Bearbeiten und gehen wir zu den Projekteinstellungen. Hier müssen wir nach unten gehen und die Registerkarte Rendern finden. auf Rendern klicken, wollen wir versuchen, hier einige Einstellungen für das mobile Anti-Eliacing zu ändern hier einige Einstellungen für das mobile Anti-Eliacing momentan nicht wirklich wichtig Wir entwickeln kein Handyspiel, aber es ist gut zu wissen , dass es da ist Und du kannst jederzeit hier klicken und es auf „Nichts“ setzen, weil wir Anti-Elycingw nicht wirklich brauchen Wenn ich hier runter gehe und mir Einstellungen ansehe, ist hier alles Ich brauche es jetzt nicht wirklich für die Beleuchtung. Stellen wir es einfach auf „Keine“ statt auf Lumen“. Setzen wir es auf „Keine Wir brauchen nicht wirklich ein oder zwei Überlegungen . Schauen wir uns das mal hier unten an. Alles sieht gut aus. Du kannst Nanite deaktivieren, wenn du willst. Das sind die drei D-Modelle, das neue System in der Version 5, die nicht religiös ist neue System in der Version 5, die nicht religiös Lass uns einfach später neu starten Schauen wir uns vorerst einfach hier um. Alles sieht toll aus. Jetzt ist das Wichtigste hier in den Standardeinstellungen, jetzt haben wir Umgebungsokklusion usw. bereits deaktiviert Darüber müssen wir uns nicht wirklich Gedanken machen. Wir haben das innerhalb des Post-Process-Volumens gemacht, die Bewegungsunschärfe auch, aber Sie können sie auch hier deaktivieren, wenn Sie Bloom und Umgebungsokklusion möchten , wenn Sie Aber hier beim Anti-Eliasing spielt das keine Rolle, das ist Diesen willst du auf „ Nein“ setzen , du kannst den Unterschied sehen Wenn ich hier oben nachschaue, kann ich es jetzt auf nein setzen, du kannst den Unterschied sehen. Sie können sehen, dass es gezackte Linien gibt. Wenn ich es zum Beispiel auf diesen setze oder dieser Super die Standardeinstellung ist, können Sie sehen, dass es so aussieht Sie können es auf keinen oder auf einen dieser Werte setzen, aber keiner ist der beste. Bei Pixeln sieht es viel besser aus wie Pixel. Okay, großartig. Jetzt sieht es gut aus. Und dieser auch. Sie können es hier auf nichts setzen. Kein AA, alles andere ist in Ordnung. Lass uns eins machen. Und ich werde auf Jetzt neu starten klicken. Sobald es neu gestartet ist, können Sie sehen, dass wir hier drin sind Jetzt wird standardmäßig diese Open-World-Ebene geöffnet . Sie können dies ändern, wenn Sie zu Bearbeiten und Projekteinstellungen gehen Und du gehst hier zu den Karten und Modi. Und du kannst die Startkarte des Editors so ändern , dass sie deine Map, Dungeon the Editor, Spiel, Standard-Map Sie können auch zur Karte Dungeon wechseln. Jetzt kannst du es schließen und alles speichern. Wenn du die Engine das nächste Mal öffnest, öffnet sie automatisch deine Dungeon-Map Lass uns jetzt darauf klicken. Doppelklicken Sie auf die Karte, um sie erneut einzugeben. Jetzt sieht alles wieder gut aus. Du kannst auf dieser Seite klicken, du kannst auf Let's here klicken. Und Sie können auf die rechte Ansicht klicken. Sie können zur Perspektive zurückkehren. Klicken Sie auf Leuchtmodus. Leuchtmodus. Hier gibt es einen kleinen Unterschied in den Kanten, aber ich denke, das ist vorerst in Ordnung. Sie können fast keinen Unterschied sehen. Es sieht gut aus. Jetzt können wir auf Play klicken und wir können dieses Spiel hier spielen und die richtige Beleuchtung haben. Okay, alles sieht gut aus. Wie Sie sehen können, gibt es in Picsalot mehrere Schichten in einem echten Motor, mehrere Schichten in weil es ein Drei-D-Motor ist Wenn ich nur die Kamerageschwindigkeit reduziere, sieht es so aus. Es sieht komisch aus, weil die vordere Ebene vor dieser liegt. Im Grunde. Zu diesem Zeitpunkt haben Sie die Ebenen innerhalb der Kachelmap erstellt, diese Ebenen. Das sehen Sie hier. Das ist die Frontschicht der Dekoration. Dies ist die Dekorschicht oder die Vorderschicht, und dies ist die Basisschicht. Du kannst sie so sehen. Es sieht komisch aus. Aber wenn du auf Play klickst und nicht so, sondern wenn du auf Play klickst, machen wir eine echte Kamera. Es wird so aussehen. Es sieht ganz nach D aus, weil wir es von vorne betrachten, alles sieht gut aus. Lass uns auf Datei klicken und alles speichern. Fangen wir in der nächsten Lektion an. 14. 3.01 Spielmodus und Spieler-Controller: Ordnung, jetzt, wo wir mit der Gestaltung der Umgebung fertig sind, wir weitermachen und das Spiel programmieren Als Erstes sehe ich eine Meldung, dass Nanite aktiviert ist, aber nicht rendern kann Und das liegt daran, dass wir Nant hier in den Projekteinstellungen deaktiviert haben Nant hier in den Projekteinstellungen Wenn Sie nach Nanite suchen, denken Sie daran, dass wir es hier deaktiviert haben. Dort steht, dass es immer noch aktiviert ist Hier unten in der Con siehst du hier unten, dass du Nitro schreibst und ich gehe rein und es wird Nanite deaktivieren Und auch diese Nachricht ist weg. Lass uns hier in den Inhaltsordner gehen. Lass uns mit der rechten Maustaste klicken und einen neuen Ordner erstellen. Nennen wir das Blaupausen innerhalb dieses Ordners. Jetzt klicken wir mit der rechten Maustaste und jetzt sind wir bereit, das Spiel zu programmieren Bei der Programmierung handelt es sich um Baupläne in echten Engines. Fahren Sie fort und klicken Sie auf die Blueprint-Klasse. Lass uns eins machen. Jetzt haben Sie diese Optionen , die Sie wählen können. Nun, es könnte zunächst etwas verwirrend sein , wenn Sie noch nie Baupläne verwendet haben, aber nur um sie sehr schnell durchzugehen, die Aktor-Klasse, die wir hier erstellen können, ist ein Objekt, das in der Welt platziert oder erzeugt werden kann Es ist im Grunde nur ein statisches Objekt. Zum Beispiel ein Tisch, eine Flasche, alles, was sich im Spiel nicht bewegt, zum Beispiel ist diese Kiste hier kein bewegliches Objekt Das ist ein Schauspieler. Eine Spielfigur und ein Charakter sind zwei Klassen, in denen du sie erschaffen kannst Wenn du Bewegung brauchst, kannst du sehen, dass eine Pfote ein Akteur ist , der besessen werden kann und Eingaben von einem Controller erhält Nehmen wir zum Beispiel in deinem Spiel an, das ist der Spieler Und der Spieler kann sich hier mit dieser Kiste bewegen, du kannst mit dieser Kiste herumrollen. Dann musst du tatsächlich eine Spielfigur und einen Schauspieler erstellen. Denn wenn du einen Schauspieler erstellst, kannst du ihn nicht mit deiner Tastatur steuern Wenn du ihn mit deiner Tastatur steuern musst, wenn es sich um einen Spieler handelt, musst du eine Spielfigur bilden Wenn du jedoch einen Charakter hast, etwas mit zwei Armen und zwei Beinen, und du musst herumlaufen, musst du einen Charakter erstellen und keinen Bauern, wenn dein Spiel zum Beispiel so ist, wenn du wie eine herumrollende Kiste bist Oder wenn du wie ein herumrollender Ball bist, also nicht zwei Arme, zwei Beine hast Als Charakter kannst du eine Spielfigur erstellen. Wenn du jedoch diesen typischen humanoiden Charakter hast, ist es ein Charakter, den du erstellen musst erstellen dieser Lektion werden wir nun einen Player-Controller und einen Spielmodus Und ein Player-Controller ist eine Acta, die für die Steuerung verantwortlich ist, wenn sie vom Spieler benutzt wird Jetzt könnte es etwas verwirrend sein Dies ist nicht Ihr Controller, Xbox-Controller oder Ihr Playstation-Controller Du kannst es dir als Gehirn für den Charakter vorstellen , wenn du im Spiel spawnst Jeder Charakter, den du als Spieler-Controller spawnst, ist nicht nur der Charakter, wenn du ins Spiel kommst Wenn der Spieler dem Spiel beitritt, wird der Spieler-Controller automatisch für dich erstellt bevor der Charakter erstellt wird . Sehr, sehr wichtig zu wissen. Normalerweise codieren wir bei Player-Controllern die Benutzeroberflächen, die Benutzeroberfläche. Wir machen auch das Spawnen. Wenn ich zum Beispiel eine Waffe ins Spiel spawne, wenn ich eine Münze spawne, spawne ich alles in mein Normalerweise mache ich das im Player Controller . Nun, manche Leute machen Bewegungen auch im Player-Controller, aber ich schlage vor, dass die Bewegung im Charakter erfolgt, weil wir im Mehrspielermodus jetzt keinen Mehrspielermodus programmieren. Aber wenn du in Zukunft Multiplayer programmieren willst, ist es immer schön, sich an eine Sache zu gewöhnen. Im Mehrspielermodus muss die Bewegung in der Blueprint-Klasse sein Wenn du Bewegungscode innerhalb des schwarzen Controllers ausführst, wird das im Mehrspielermodus nicht funktionieren Ich mache Bewegung immer als Charakter , weil das in Zukunft auch als Multiplikator funktioniert Wenn du etwas mit Mehrspielermodus anfangen willst, ist das der schwarze Controller und der Spielmodus definiert das Spiel, seine Regeln, Punktzahlen und andere Facetten des Nehmen wir zum Beispiel an, Sie haben in Counterstrike einen Rundentimer Und wie viele Punkte bekommst du, wenn du einen Spieler tötest und solche Dinge Die Regeln für das Spiel werden normalerweise im Spielmodus festgelegt. Lass uns jetzt weitermachen und auf den Spielmodus klicken und einen erstellen. Normalerweise gebe ich ihnen BP als Präfix für Baupläne. Für den Spielmodus schreibe ich jedoch normalerweise den GM-Spielmodus. Und ich nenne es den Namen des Spiels, nämlich Dungeon Clicker Nennen wir es Dungeon Liquor. Lassen Sie uns erneut klicken, eine neue Blueprint-Klasse erstellen und einen Player-Controller erstellen, nennen wir ihn PC für Player-Controller Nennen wir es noch einmal den Namen des Spiels, Liquor. Jetzt können Sie mehrere Spielmodi haben. Das liegt nicht daran, dass Sie in Counter Strike beispielsweise wieder einen Spielmodus haben können . In anderen Spielen wie Halo hast du einen Spielmodus, in dem du drei für alle hast, jeder kann sich gegenseitig töten Sie haben einen Spielmodus, in dem Sie die Flagge erobern Jedes Team erobert die Flagge bis zu seiner Basis Verschiedene Spielmodi. Sie können mehrere Spielmodi haben. Wir machen jedoch ein einfaches Spiel. Wir brauchen aber nur einen. Normalerweise nenne ich es hier einfach den Namen des Spiels. Lass uns weitermachen und alles speichern. Jetzt, wo wir damit fertig sind, müssen wir eigentlich nichts mehr in ihnen tun. Wir müssen den Spielmodus jedoch so zuweisen, dass er in der Unreal Engine verwendet wird, da er derzeit den Standard-Spielmodus verwendet , den er erstellt , wenn ich die Engine öffne Lass uns weitermachen und auf Bearbeiten klicken und die Projekteinstellungen öffnen Gehen wir hier zu Karten und Modi. Unter Karten und Modi kannst du sehen, wie der Standard-Spielmodus verwendet wird. Ist der Standard-Spielmodus in Unreal Engine. Ich sage nein, ich möchte meinen eigenen benutzen Ich möchte diesen einen GM-Clicker benutzen. Lassen Sie uns das vorerst minimieren. Lass mich statt hier meinen Spielmodus öffnen. Es wurde hier auf meinem zweiten Monitor im Spielmodus in den Klassenstandards geöffnet . Wir müssen den Player-Controller ändern, den wir ebenfalls erstellt haben, da er jetzt den Standard-Player-Controller in Unreal Engine verwendet Standard-Player-Controller in Unreal Ich möchte jedoch meinen benutzerdefinierten verwenden, den ich erstellt habe, nämlich den PC Dung Lass uns weitermachen und kompilieren. Bedeutet übrigens nur, dass Sie überprüfen, ob Ihr Code ein Kästchen hat oder nicht. Wenn du darauf klickst, heißt es, es kann losgehen, alles ist fertig und du klickst auf Datei und Alles speichern. Lassen Sie uns das schließen. Jetzt. Lass mich einfach wieder meine Projekteinstellungen öffnen und sicherstellen, dass, wenn ich hier unten auf den ausgewählten Spielmodus klicke, hier unten auf den ausgewählten Spielmodus klicke, meine Spielersteuerung auch in meinen Projekteinstellungen zugewiesen ist . Und das ist normalerweise der Fall, wenn du das in der Spielersteuerung machst. Okay, lass es uns hier unten schließen. Das Letzte, was wir tun müssen, ist hier in den World Settings. Übrigens, wenn Sie keinen Tab mit den Welteinstellungen haben, fahren Sie fort und klicken Sie auf, lassen Sie uns das hier sehen, das Fenster hier oben. Und öffne die Welteinstellungen Von hier aus klicken wir auf die Welteinstellungen und auch auf die Welteinstellungen im Spielmodus Override, klicken hier und weisen deinen GM-Dungeon-Clicker zu, was der benutzerdefinierte Spielmodus ist Und wenn du hier unten klickst, kannst du auch sicherstellen , dass dein Spieler-Controller zugewiesen ist In Ordnung, also lass uns weitermachen und speichern. Und jetzt ist unser benutzerdefinierter Spielmodus der Karte oder dem Spiel zugewiesen. Wir können nicht wirklich viel tun , weil wir noch nicht wirklich programmiert haben. Wir können also nicht sehen, ob es tatsächlich funktioniert oder nicht, aber das werden wir sehr bald tun. Jetzt haben wir das Hinzufügen des Spielmodus und des Player-Controllers abgeschlossen und sind bereit, die Spielerkamera hinzuzufügen. 15. 3.02 Die Player-Kamera hinzufügen: Um die Spielerkamera hinzuzufügen. Klicken wir erneut mit der rechten Maustaste in die Blueprints und erstellen wir erneut ein Blueprint-Glas Jetzt kannst du die Spielerkamera als Spielfigur erstellen Da wir nicht wirklich einen Charakter mit zwei Armen und zwei Beinen haben, um den man herumlaufen kann, kann man ihn technisch gesehen als Spielfigur erstellen Ich entwickle die Spielerkameras aber auch gerne für meine anderen Spiele als Spielerfigur, weil sie eine Bewegungskomponente des Charakters beinhalten Damit kannst du die Schwerkraft der Kamera, die Bewegungsgeschwindigkeit der Kamera und so weiter steuern . Sie werden sehen, was ich meine, aber dieser bietet mir mehr Optionen. Normalerweise erstelle ich einfach einen Charakter. Nennen wir diesen einen P-Spieler. Ich nenne es Kamera, aber ich nenne es einfach Player. Lass uns weitermachen und es öffnen. Und hier sind wir normalerweise in Bauplänen. Wenn du es öffnest, hast du hier den Aussichtspunkt, von dem aus du den Charakter sehen kannst Wenn du importierst, siehst du das hier rechts im Detailbereich Es sieht fast aus wie das Detailfenster hier drüben. Es ist dasselbe, wenn Sie auf Dinge klicken und dann hier verschiedene Optionen für das Mesh sehen können. Wenn du einen Charakter importierst, könntest du den Charakter hier im Viewport sehen, so wie du hier drüben einen Aussichtspunkt hast Okay, in diesem BP-Player müssen wir eine Kamera erstellen Übrigens, die Komponente zur Charakterbewegung ist da. Wenn du darauf klickst, kannst du sehen, dass du Dinge wie die Beschleunigung des Spielers steuern kannst , was in diesem Fall die Kamera ist. Sie können die Bodenreibung, die maximale Bewegungsgeschwindigkeit der Kamera und vieles mehr steuern, die Luftregelung und so weiter. Ich erstelle lieber eine Figur als eine Pfote oder die Kamera weil ich diese Bewegungskomponente habe und meine Kamera viel besser steuern kann Wir müssen eine Kamera erstellen. Klicken wir hier auf Add Up und die Komponenten First vor der Kamera. Lasst uns etwas erschaffen, das man Frühling nennt. Wenn Sie hier eine Feder erstellen, ist dies der Halter für die Kamera. Wenn ich jetzt auf den Federarm klicke, klicke ich auf D und suche nach Kamera und erstelle eine Kamera. Wir haben den Federarm, der die Halterung ist, und dann haben wir die Kamera hier drüben. Klicken wir auf Compile und dann auf Save Everything . Lassen Sie mich das minimieren. Lass mich diesen Spieler einfach so in die Welt ziehen . Hier ist die Kamera. Wenn du es im Hintergrund sehen kannst, aber es ist dunkel, sodass wir nicht viel sehen können. Ich werde den Standort dafür als 000 schreiben. Drehe auch meine Kamera, du kannst sehen, dass sie so aussieht. Ich gehe zurück zu meinem Player. Ich werde auf meine Quelle klicken, nicht auf meine Kamera, sondern auf meine Quelle. Ich werde sie drehen, wenn ich auf das Drehwerkzeug klicke. Denken Sie daran, dass die Werkzeuge hier oben für das Verschieben-Werkzeug, für das Rotations-Werkzeug und R auf der Tastatur für das Skalierungswerkzeug sind. auf das Rotationswerkzeug klicke, werde ich es auf diese Weise drehen. Jetzt kompiliere ich erneut, wenn Sie es minimieren. Jetzt sieht deine Kamera richtig aus. Sie können es auch im Viewer sehen. Wenn du auf die Kamera klickst, versteckt sie sich jetzt hier , weil alles dunkel ist. Ich klicke auf Lit, du kannst sehen, dass es hier ist. Wenn ich darauf klicke, siehst du auch den Viewer. Für die Kamera hier unten kannst du einfach die Kamera bewegen, wie du willst Du kannst sie im Viewer hier sehen. Bevor wir sie ausrichten, können Sie in der Kamera sehen, ob ich mit der rechten Maustaste auf die Kamera klicke und auf Pilot klicke, was bedeutet, dass ich in die Kamera gehe und sehe, was sie sieht. Sie können sehen, dass die Kacheln hier abgeschnitten werden. Es sieht nicht nach zwei D aus, es sieht tatsächlich nach drei D aus. Ich klicke auf diesen Button hier oben, um aus meiner Kamera herauszukommen. Ich habe den Player wieder geöffnet. Das liegt daran, dass Sie, wenn Sie auf die Kamera klicken, tatsächlich von perspektivisch auf autografisch umstellen müssen den Projektionsmodus tatsächlich von perspektivisch auf autografisch umstellen müssen. Perspektive ist der Drei-D-Modus, orthogonal ist der Zwei-D-Modus Wir benötigen hier die Zwei-D-Ansicht. Lassen Sie uns kompilieren und schauen wir uns das an. Sie können jetzt wieder sehen, dass es korrekt aussieht. Wenn ich mit der rechten Maustaste auf meine Kamera klicke und auf Stapel sie anklicke, glaube ich, dass du das auch hier machen kannst. Du kannst auch hier im Outliner mit der rechten Maustaste klicken und dann auf Pile It klicken Jetzt können Sie sehen, dass es korrekter aussieht. Es zwei D sieht auch gut aus. Lass uns von hier verschwinden. Lass uns den Player öffnen. Das Letzte, was ich dir hier sagen möchte, dass wir nicht mehr viel zu tun haben. Aber hier in der Kamera können Sie die orthogonale Breite ändern Und Sie können sehen, was das macht, wenn Sie hier oben im BP-Player auf Ihre Kamera klicken und die orthogonale Breite vergrößern und verkleinern Wenn ich sie vergrößere oder vergrößere, kannst du sehen, wie du hinein- und herauszoomst. Pixel Ot, es sieht mehr oder mehr pixelig aus. Je niedriger das Autogrammholz ist, so möchtest du dein Spiel vielleicht Du kannst es höher auflösend machen , wenn du so herauszoomst Nun zu meinem Spiel, ich habe versucht, einfach damit zu spielen, als ich es getestet habe, und ich glaube , ich bleibe bei etwa 640. Wenn ich einfach mit der rechten Maustaste auf meine Kamera klicke und sie steuere, wird sie so aussehen. Ich kann meinen Player hierher bringen und den Standort anpassen. Denken Sie daran, wir könnten den Standort anpassen, indem wir auf die Zahlen hier im Standort des Spielers klicken. Und wir können mit der Maus klicken und ziehen , um zu sehen, wie es aussieht. Ich kann so etwas machen. Eigentlich ist es für das Y nur Null. Für diesen ist es so. Fantastisch. Jetzt ist es zensiert Im Moment nicht wirklich wichtig. Wir werden die Positionierung später korrigieren. Aber für den Spieler, nur um sicherzugehen, dass im Frühling alles richtig funktioniert , werde ich die Kollisionstests deaktivieren. Uzisionstest findet einfach statt, wenn sich ein Spieler hinter der Mauer befindet Es wird die Kamera gedrückt, sodass die Kamera nicht in die Wand gerät Das brauchen wir nicht wirklich , weil es dem Spiel trotzen kann. Im Moment werde ich es deaktivieren. Die zweite Sache ist die Kapsel. Ich möchte alle Kollisionen entfernen, weil ich nicht möchte, dass diese Kapsel mit meinen Feinden oder Charakteren in dieser Welt kollidiert oder Charakteren in dieser Den brauchen wir nicht wirklich. Ich gehe hier runter und stelle sicher , dass im Kollisionsbereich für die Kapsel Überlappungsereignisse generiert werden oder die Kollisions-Voreinstellungen hier deaktiviert Statt Bauer werde ich sagen, dass keine Kollision behoben ist Jetzt im Mesh selbst hier. Ich stelle nur sicher, dass es auch bei der Kollision so ist, dass der Charakter auch bei keiner Kollision aufsteigen kann . Mach weiter und kompiliere. Nun zum Federarm Wir haben den Kollisionstest entfernt. Die letzte Sache in der Bewegungskomponente der Spielercharaktere: Lassen Sie uns die Schwerkraft auf Null bringen, weil wir diese Kamera nicht brauchen, um herunterzufallen oder sich zu bewegen. Die maximale Beschleunigung ist Null. Mal sehen, ob wir hier mehr tun müssen. Ich glaube nicht, dass wir mehr tun müssen. Alles sieht gut aus. Die Höchstgeschwindigkeit spielt eigentlich keine Rolle. Du wirst nicht herumlaufen. Aber du kannst es einfach auf Null setzen, damit du dich nicht auch bewegen kannst , wenn du willst. Lass uns einfach kompilieren, alles speichern. Und das war's für den Spieler. Jetzt ist es eingerichtet. Sie können nach Belieben steuern, wie weit Ihre Kamera entfernt ist Wenn Sie also möchten, dass die Kamera viel näher ist, können Sie das tun Sie können beispielsweise auf die Kamera klicken und die autografische Ansicht auf 512 einstellen Und du kannst sehen, dass es hier viel näher ist. Im Moment nicht allzu wichtig. Wir können das Spiel immer testen , wenn sich ein Charakter bewegt. 16. 3.03 Die feindlichen Sprites extrahieren: Lasst uns jetzt weitermachen und diese Preise für die Feinde importieren diese Preise für die Feinde Gehen wir noch einmal zurück zu dem Ordner mit Kostenmaterial , den ich Ihnen gegeben habe. Gehen Sie hier zu den Charakteren. Hier sind alle Feinde , die wir im Spiel haben. In Zukunft können wir weitere Feinde hinzufügen, denn in Clicker-Spielen gibt es Tonnen und Tonnen von Feinden Aber diese sind für den Anfang wirklich nett. Lass uns weitermachen und auf den ersten klicken. Halten Sie die Umschalttaste gedrückt und klicken Sie auf den letzten , um alle auszuwählen. Gehen wir zu den Vermögenswerten. Und hier werde ich schreiben, klicken und einen neuen Ordner namens Characters erstellen. Auch hier werde ich mit der rechten Maustaste klicken, um wieder einen neuen Ordner zu erstellen und diesen einen Textures zu nennen. Gehen wir in diesen Ordner. Und jetzt klicken wir darauf und ziehen es in den Ordner Textures. Und hier haben wir sie alle importiert. Ordnung, klicken Sie erneut auf den ersten, halten Sie die Umschalttaste gedrückt, klicken Sie auf den letzten, klicken Sie mit der rechten Maustaste und gehen Sie zu Sprite-Aktionen Und denken Sie daran, das Papier auf die Einstellungen aufzutragen, da sonst eine verschwommene Textur Sie auf die Einstellungen anwenden können Wenn man das macht, ist die Kunst ziemlich fix, es sieht toll Okay, lassen Sie uns hier unten alles schließen. Lass uns auf Datei klicken und alles speichern. Nachdem wir nun alles importiert haben, was Sie tun müssen, können Sie hier sehen , dass sie alle in einer Textur sind. Wenn ich den ersten, den Night Death, geöffnet habe , kannst du sehen, dass sie sich in einer Textur befinden. Wir brauchen sie als separate Sprites. Lassen Sie uns das schließen. Ich kann mit der rechten Maustaste auf Night Death klicken. Ich kann hier gehen. Sprite-Aktionen, du hast etwas, das entweder Sprite erstellen heißt oder du kannst die Sprites extrahieren Ein Sprite zu erstellen ist einfach, nehmen wir zum Beispiel an, du hattest hier einen Charakter und du hattest sie nicht alle zusammen Du könntest mit der rechten Maustaste auf Sprite-Aktionen klicken und ein Sprite erstellen. Wenn du das tust, wird dieses Sprite hier erstellt. Wenn du ein Sprite erstellst, kannst du es tatsächlich im Spiel verwenden Du kannst es anklicken und in die Welt ziehen. Wenn ich es einfach nach vorne schiebe, kann ich es so sehen. Jetzt sehe ich, dass ich es in meinem Spiel verwenden kann, zum Beispiel, wenn du eine Kiste oder ähnliches hättest. Wenn du ein einzelnes Objekt hast, kannst du es mit der rechten Maustaste anklicken und es als Sprite erstellen Und dann ist es im Grunde so, als würde man ein Drei-D-Objekt erstellen, das man in der Welt verwenden kann, weil diese Textur hier nicht verwendet werden kann Man kann sehen, dass es das ersetzt und etwas Material für uns schafft und solche Dinge, alles ist durcheinander Ich werde auf Strg Z klicken, um es rückgängig zu machen. Ich werde das, was es erstellt hat, nur verzögern . Du kannst im Spiel keine Texturen auf diese Weise verwenden. Du musst klicken, sie zu einem Sprite machen, zum Beispiel, wenn du eine Box oder etwas Statisches im Spiel haben willst Und du kannst es hierher ziehen und du kannst es als Sprite verwenden Lassen Sie mich jedoch diesen löschen und lassen Sie mich auch diesen löschen Jetzt sind sie alle zusammen. Anstatt ein Sprite zu erstellen, müssen wir es extrahieren. Klicken Sie mit der rechten Maustaste, gehen Sie zu Sprite-Aktionen und extrahieren Sie die Und du kannst sie hier oben so sehen. Was wir tun müssen, ist hier oben in den Einstellungen, wir müssen daraus ein Grid machen. Jetzt müssen wir anhand der Länge, Breite und Höhe herausfinden , was die Größe ist. Normalerweise schreibt dir der Künstler, der das macht , was es ist. Aber lassen Sie uns versuchen, dass es 32 überragend ist, so wie es hier für die Höhe 32 der Jetzt kannst du sehen, dass es nicht passt , weil jede Box um diesen Charakter herum sein muss Sagen wir statt 32 plus 16 Pixel. Das Gute an Unreal Engine ist, Sie tatsächlich plus 16 schreiben und die Eingabetaste drücken können, und das erledigt das automatisch für Sie Okay, 16 Pixel haben funktioniert weil Sie jetzt sehen können, dass alles korrekt aussieht Jedes einzelne Sprite ist in seiner eigenen Box. Dies ist die richtige Zellenbreite und -höhe. Und lass uns weitermachen und auf Extrahieren klicken. Jetzt können Sie sehen, wie sie hier extrahiert wurden, und jetzt sind sie in einzelnen Bildern Wenn ich das jetzt anklicke und in die Welt ziehe, ist es ein einziger Charakter , der hier draußen ist und nicht das Ganze Das müssen wir eigentlich für jeden einzelnen von ihnen tun. Zum Beispiel beim Nacht-Hit, du kannst mit der rechten Maustaste klicken und du kannst zu Sprite-Aktionen gehen, Sprites wieder extrahieren auf Grid klicken Dann kannst du hier klicken. Ich denke, es ist dasselbe, vielleicht 48 wie zuvor. Aber wenn du 48 schreibst, kannst du sehen, dass es eigentlich nicht richtig ist. Wenn ich zurück zu 32 gehe, wie bei der Höhe, kannst du sehen, dass 32 hier die richtige ist. Und du musst hier auf Extrahieren klicken. Okay, versuchen wir es mit dem letzten. Klicken wir mit der rechten Maustaste auf die Nacht im Leerlauf, um Sprites Doom in zu extrahieren Gehe zum Grid. Ich glaube, es ist wieder 32, genau wie zuvor. Fahren Sie nun fort und klicken Sie auf Extrahieren. Ich zeige dir auch diesen. Danach werde ich einfach jeden von ihnen schnell erledigen . Sie können sehen, dass es Zeit braucht. Ich muss es für jeden einzelnen machen. Aber lassen Sie uns mit der rechten Maustaste darauf klicken. Gehe zu Spart, Aktionen extrahieren Sprites. Lassen Sie uns nun zu diesem Thema auf das Raster klicken. Schreiben wir 64, genau wie die Höhe dort. Es ist ein guter Ausgangspunkt , einfach die Zahl der Höhe zu schreiben und Sie können sehen dass sie bereits richtig funktioniert. Und extrahiere alles richtig. Klicken Sie auf Sprites extrahieren und gehen Sie zum Grid. Du kannst sehen, dass du sehr gut darin werden wirst , weil du es 100 Mal machst Manchmal, auch wenn du müde bist, kannst du es tun, ohne darüber nachzudenken, was du tust Es ist eine gute Übung, es einfach oft zu tun. Jetzt haben wir sie extrahiert. Ich glaube, wenn ich einfach zum Ordner zurückgehe, diesen hier anklicke, Idle, Base Idle, die Sprites auf Grid 32 extrahiere , das funktioniert, okay Das müssen Sie für jeden einzelnen von ihnen tun. Versuche, sie in die Schachtel zu packen und alle herauszuholen. Okay, ich mache es in meiner Freizeit und bin sofort wieder bei dir. Ich habe sie alle extrahiert. Jetzt können Sie sehen, dass alle extrahiert wurden. Manchmal ist es etwas schwierig, ihre Größe zu kennen , wenn man sie extrahiert. Aber grundsätzlich gilt auch hier: Wenn Sie eine davon öffnen, zum Beispiel diese, war diese am kniffligsten, wenn Sie den Preis für diesen hier schreiben, anklicken und extrahieren , Sie können ihn hier sehen. Wenn du wieder zu Grid 64 gehst, richtig, 64 ist ein guter Ausgangspunkt. Sie können sehen, dass es nicht korrekt ist , weil das hier leer ist. Wir brauchen keine leeren. Wenn du plus 16 schreibst, sind es normalerweise bei jeder Erhöhung oder Verkleinerung 16 Pixel . Und dieser passt auch nicht. Plus 16. Nochmals, jetzt können wir sehen, dass es zu allen passt. Okay, mach einfach weiter und tu es für alle. Ich habe es für alle getan. Lassen Sie uns nun mit der nächsten Lektion fortfahren und Flipbooks erstellen. 17. 3.04 Flipbooks erstellen: Ordnung, jetzt, wo wir die Sprites fertig haben, wir weitermachen und Flipbooks Und Flipbooks sind einfach die animierte Version davon. Wir fügen all diese Sprites einem animierten Stück zusammen Der Charakter bewegt sich. Das ist ein Flipbook. Ein Flipbook ist einfach, wenn man eine Animation in zwei D braucht . Lass es uns mit dem Tod in dieser Nacht versuchen. Klicke zuerst auf das erste Sprite und du kannst übrigens die Texturen sehen, übrigens die Texturen sehen, sie haben hier eine rote Linie. Und wenn ich hineinzoome, kannst du es sehen. Sie haben hier eine rote Linie bei den Texturen, während die Sprites hier eine hellblaue Linie oder Blaugrün haben Das ist der Sprite. Du kannst den Unterschied zwischen ihnen auch so sehen ihnen auch so Wenn ich auf das erste Symbol klicke, gehe ich zu Old Shift und klicke auf das letzte Sprite in diesem Abschnitt Ich klicke mit der rechten Maustaste gehe zu Flipbook erstellen Lassen Sie mich das B für Flipbook nennen. Nennen wir es, nennen wir es Tod. Wir haben dieses Flipbook, Tod. Und Sie können sehen, dass es bereits animiert ist. Ich doppelklicke darauf. Das ist die Todesanimation für den Abend. Ein Flipbook besteht einfach nur aus den Sprites, die zu einer Animation zusammengefügt werden Siehst du, ich kann es einfach hier unten beenden. Das ist die Animation und das sind all die Sprites, für die wir ein Flipbook ausgewählt und erstellt haben. In Ordnung. Sie können auch sehen, ob ich es noch einmal spiele, Sie können die Geschwindigkeit der Animation hier in den Bildern pro Sekunde steuern , ich kann sie zum Beispiel sehr schnell auf 50 einstellen. Wenn ich nur sagen würde, dass die Frames pro Sekunde wieder auf 15 , ist das die Standardeinstellung, so sieht es aus. Jetzt gibt es wirklich eine Regel dafür, wie das sein sollte. Manchmal schreibt dir der Pixilatist , was es hier sein soll Aber manchmal spiele ich einfach nur herum, sehe, wie schnell die Animation abgespielt wird, und dann mache ich das zu meinem Spiel Ich habe es mit zehn Bildern pro Sekunde versucht, und ich glaube, das ist genau das, was ich mir für die Geschwindigkeit wünsche. Jetzt gibt es keine Regel. Du kannst mit 12 gehen, du kannst mit 15 gehen, was auch immer du denkst, dass es gut für dein Spiel ist. Ich nehme zehn für mich. Ich werde es hier schließen. Und jetzt haben wir dieses Flipbook. Jetzt können wir darauf klicken und es in den Charakter ziehen und „Hier bewegen“ auswählen, und jetzt haben wir das Flipbook hier draußen. Der Grund, warum wir diesen Ordner „Texturen“ erstellt haben, ist , dass wir uns das alles später nicht wirklich ansehen müssen, wenn wir hier alle Flipbooks für die Charaktere erstellen. Wir brauchen das alles nicht im Textures-Ordner. Auch hier können Sie es nicht löschen , da dabei Daten aus den Texturen verwendet werden. Sie können sie also nicht wirklich löschen. Ich lege sie einfach in einen Texturen-Ordner, damit ich sie mir nicht noch einmal ansehen muss. Aber lass uns hier reingehen. Lass uns das für alle machen. Für den Treffer klicken Sie auf den ersten, halten die Umschalttaste gedrückt, klicken Sie auf den letzten, klicken Sie mit der rechten Maustaste und drehen Sie das Buch um. Ruf es nochmal an. Mach es auf, aber du kannst es später machen. Als ob du die Bilder pro Sekunde später ändern kannst. Das werde ich vorerst nicht tun. Fahren Sie mit dem nächsten fort, klicken Sie mit der rechten Maustaste, Flipbook. Nenn es untätig. Gehen Sie hier zum nächsten, klicken Sie mit der rechten Maustaste. Nenn es oder ich nenne es einfach oder statt Base, oder gehe zum nächsten hier, Rechtsklick, Flipbook. Nennen Sie es B. Ich werde nur einige davon machen damit Sie den Arbeitsablauf sehen können. Und dann mache ich es wieder in meiner Freizeit. Klicken Sie mit der rechten Maustaste darauf. Flip Book, nenne es. Oder untätig. Lass uns den nächsten hier nochmal runtergehen. Ich mache das einfach als Letztes. Rechtsklick, Flipbook. Nenn es B oder Rogue. Das ist ein Schurke, so wie dieser. Sie können hier sehen, dass sie alle animiert sind. Okay. Ich mache es in meiner Freizeit. Ich werde einfach Flipbooks erstellen und dann bin ich wieder bei dir. Jetzt habe ich für alle Flipbooks erstellt , wie Sie hier sehen können. Und ich werde auf Datei klicken und alle speichern. Klicken wir nun auf das erste, halten die Umschalttaste gedrückt und klicken hier auf das letzte Flipbook. Und ich werde sie zu den Charakteren verschieben. Hier haben wir alle Flipbooks. Lassen Sie mich jetzt die Bilder pro Sekunde anpassen. Anstatt es nacheinander zu tun, was viel Zeit in Anspruch nimmt, können Sie jetzt was viel Zeit in Anspruch nimmt, auf das erste klicken und die Umschalttaste gedrückt halten. Klicken Sie auf den letzten , um alle auszuwählen. Klicken Sie mit der rechten Maustaste und gehen Sie zu Asset Actions und wählen Sie diese aus. Auswahl in der Eigenschaftenmatrix bearbeiten, wählen Sie diese aus. Dies ist normalerweise immer dann der Fall, wenn Sie eine Einstellung für jeden von ihnen bearbeiten möchten. Es ist immer schön, die Eigenschaftenmatrix zu schreiben, zu klicken und sie zu verwenden , um dieselben Einstellungen für alle zu ändern. Hier im Sprite kann ich die Frames pro Sekunde ändern und daraus zehn machen Es kommt rein und es macht es für alle. Fahren Sie fort und klicken Sie auf Alle speichern, schließen Sie es. Und Sie können jetzt sehen, dass sie in Bildern pro Sekunde tatsächlich alle zehn sind . Das gilt nicht nur für Flipbooks, sondern für alles. Zum Beispiel normale Textur, bei der, sagen wir, ich möchte die Helligkeit für alle Texturen ändern Sie könnten alle Texturen auswählen , zum Beispiel diese. Wenn ich die Taste gedrückt halte, wähle ich die nächste Textur aus, diese Textur und diese Textur, die ich schreiben kann. Klicken Sie hier in den Einstellungen, zum Beispiel bei den Anpassungen, auf „Asset-Aktionen “ und „Auswahl über Eigenschaftenmatrix bearbeiten “. Ich könnte die Helligkeit für alle gleichzeitig bearbeiten. Es ist immer schön zu wissen, dass es diese Option gibt. Okay, hier sind alle Flipbooks, die wir erstellt haben. Sie sehen alle toll aus. Wenn Sie einen von ihnen vergessen haben, ist das kein Problem. Wir können jederzeit zurückkommen und es später als Flipbook erstellen, aber ich glaube, ich habe sie jetzt alle. Alles sieht toll aus. Fahren Sie fort und speichern Sie alles, und fahren wir mit der nächsten Lektion fort. 18. 3.05 Elternkurs vs. Kind Blaupausenkurs: Nachdem wir die Flipbooks erstellt haben, wir mit der Erstellung der Blueprint-Klassen fortfahren Gehen wir zum Blueprint-Ordner. Lass uns hier mit der rechten Maustaste klicken. Und lassen Sie uns einen neuen Ordner namens Enemies erstellen. Gehen wir zuerst in diesen Ordner. Klicken Sie mit der rechten Maustaste, und jetzt können wir eine neue Blueprint-Klasse erstellen. Lass uns weitermachen und es hier erstellen. Anstatt diesen Charakter für den Feind zu erstellen, handelt es sich um einen Drei-D-Charakter. Um einen Charakter mit zwei D zu erstellen, klicken wir einfach auf diesen kleinen Pfeil mit allen Klassen. Hier siehst du tatsächlich mehr Klassen, die du mit der Blaupause erstellen kannst Hier sind die normalen Klassen , die du fast ständig erstellst Und du gehst fast nie hierher , es sei denn, es gibt bestimmte Dinge. Wenn du zum Beispiel ein Spiel zum Speichern und Laden deines Spiels erstellst , ist es tatsächlich auch hier unten. Hier unten können wir nach Papier suchen, das sind die zwei D in der Unreal Engine Wir können sehen, dass er Papa-Charakter genannt wird. Dieses Zeichen ist ein Drei-D-Zeichen, und dieses, das Papier-Zeichen, ist ein Zwei-D-Zeichen Sie können auch sehen, dass wir noch andere Dinge haben, die wir erstellen können, wie zum Beispiel Flipbooks, die wir gerade erstellt haben. Sie können Kachelmaps, Sprites usw. erstellen , aber wir möchten einen Charakter erstellen Jetzt klicken wir darauf und fahren fort und klicken auf Auswählen. Nun zu diesem hier nenne ich es BP Enemy Base. Der Grund, warum ich es Enemy Base nenne , ist , dass dies jetzt eine übergeordnete Klasse ist. Ich werde dir hier in dieser Lektion erklären, was eine Elternklasse und was eine Kinderklasse ist. Lassen Sie uns zunächst mit der rechten Maustaste hier klicken und Sie können sehen, dass es hier oben heißt: Create child print class. Lassen Sie uns weitermachen und das erstellen. Nennen wir es vorerst BP Knight. Ich nenne es im Grunde nur die Charaktere, die ich habe. Wenn ich in meinen Charakterordner gehe, haben wir die Nacht. Lass uns auch den nächsten erstellen. Oder ich erkläre, was ein Blueprint-Kind ist. Rechtsklick auf die feindliche Basis, Kind erstellen, Blueprint-Klasse Nennen wir das P Ork. Okay, lass uns weitermachen und alles speichern. Jetzt habe ich diesen hier. Die feindliche Basis, wenn du die Maus über die Nacht hältst, kannst du sehen, dass die übergeordnete Klasse die gegnerische BP-Basis ist . Das Gleiche gilt für das Oder. Die übergeordnete Klasse ist die feindliche BP-Basis oder hier die feindliche Basis. Wir können jetzt die feindliche Basis öffnen. Nehmen wir an, ich möchte in dieser Blueprint-Klasse auf die Bewegungskomponente meines Charakters klicken Wir haben also diese Komponente, weil es sich hier um einen Charakter Nehmen wir an, ich möchte ändern, wie hoch mein Charakter springen kann. Du kannst im Detailfenster sehen, dass du Dinge an der Bewegung, der Schwerkraft, der Höchstgeschwindigkeit usw. ändern kannst . Sagen wir, die Höhe des Sprungs, sagen wir, mein Charakter, ich wollte viel höher springen. Wenn ich zum Beispiel hier klicke und stattdessen 800 schreibe. Jetzt kann ich höher springen, wenn ich auf Compile klicke. Wenn ich das nun minimiere und zu den Blueprint-Kursen meiner Kinder gehe , sind diese beiden Kinder Kinder der feindlichen Basis, weil wir sie mit der rechten Maustaste angeklickt und sie als Kinder erstellt Was bedeutet das? Wenn ich jetzt in die Nacht gehe und hier nachschaue und auf die Komponente Charakterbewegung klicke . Wenn ich auf die Sprunggeschwindigkeit heruntergehe, die ich gerade auf der feindlichen Basis geändert habe, kannst du sehen, dass sie auch hier 800 ist. Wenn ich jetzt standardmäßig auf Oder gehe und auf die Komponente zum Verschieben des Charakters klicke und nach unten gehe, kann ich sehen, dass sie auch in Awesome auf 800 gesetzt ist. Interessant. Jedes Mal, wenn ich eine Einstellung in der feindlichen Basis ändere, bei der es sich um die übergeordnete Blueprint-Klasse handelt, wird diese Einstellung, die ich hier ändere auf alle Kinder angewendet , die ich dafür erstelle Und das ist eine sehr schnelle Methode und auch die beste, mit der man arbeiten kann, weil ich sie häufig verwende Stellen Sie sich vor, Sie haben Fortnight und Sie haben viele Skins in Fortnights Nehmen wir an, Sie haben auch hier in diesem Clicker 100 Feinde Sie Du erschaffst hier 100 dieser Kinder. Anstatt jedes einzelne dieser untergeordneten Objekte zu ändern, nehmen wir an, Sie möchten die Schwerkraft-Skala ändern , 1.2 Anstatt jedes einzelne untergeordnete Objekt einzugeben und den Wert auf 1,2 zu ändern, können Sie einfach den Wert innerhalb der übergeordneten Klasse ändern und . Anstatt jedes einzelne untergeordnete Objekt einzugeben und den Wert auf 1,2 zu ändern, können Sie einfach den Wert innerhalb der übergeordneten Klasse ändern und er wird automatisch für alle Kinder übernommen, die Sie erstellen. Dies ist eine schnelle Methode, wenn ich auf meine feindliche Basis klicke und einfach auf diesen Pfeil klicke, um sie auf die Standardeinstellung 420 zurückzusetzen, und ich kompiliere und speichere alles. Wenn ich jetzt zu meiner Nacht gehe, kannst du sehen, dass sie ebenfalls auf 420 eingestellt ist, genauso wie bei den Orks. Das ist eine optimale Arbeitsweise, denn du kannst dir vorstellen, wenn du 100 Feinde hast, ist es eine Menge Arbeit, auf jeden einzelnen dieser hundert zu klicken und den Wert zu ändern Du kannst ihn einfach ändern, sobald du dich in der feindlichen Basis befindest. Das ist es für den Eltern - und Kinderunterricht. Lass uns den Rest von ihnen erstellen. Wir haben die und wir haben die Nacht. Wir erschaffen den Schamanen. Klicke mit der rechten Maustaste auf den Feind. Bauplan für Kinder erstellen. Nennen wir das BP, Roku. Klicken wir erneut mit der rechten Maustaste auf die feindliche Basis. Erstellen Sie eine untergeordnete Blueprint-Klasse. Nennen Sie es BP oder Shaman. Gehen wir wieder zurück. Wir müssen sie alle erstellen. Wir haben den Warrior und wir haben den Roque P Warrior. Jetzt erstelle ich sie einfach viel schneller als zuvor, weil es einfach dasselbe Wir machen es immer wieder. Das Skeleton Mag und die Skeleton Base, ich nenne es einfach BP Skeleton. So wie das. Skeleton und das Skeleton Mag. Magazin Skeleton Mal sehen, was uns fehlt. Wir haben den Skeleton Rogue und den Skeleton Warrior. P Skeleton Rogue, BP Skeleton Warrior. Vergewissere dich nur , dass du mit der rechten Maustaste auf die feindliche Basis klickst und sie erstellst Um sicherzugehen, dass du immer mit der Maus darüber fahren kannst und die richtige Klasse ist die gegnerische Basis. Klicken Sie hier mit der rechten Maustaste darauf und erstellen Sie den letzten Eintrag mit dem Namen BP Wizard. Nur um zu überprüfen, ob ich etwas verpasst habe. Der Zauberer ist der letzte und das war's. Ich weiß, dass ich 11 Charaktere habe. Klicken Sie einfach hier, halten Sie die Umschalttaste gedrückt und klicken Sie auf den letzten. Sie können sehen, dass Sie 11 ausgewählt haben und das ist richtig. Ich habe hier 11 Charaktere. Okay, lass uns auf Datei klicken und Alles speichern. Jetzt haben wir sie alle erstellt. Und das sieht gut aus, also sind wir bereit, in der nächsten Lektion weiterzumachen. 19. 3.06 Das Feind-Kurs-Setup abschließen: Lasst uns den Feind erledigen. Lass uns jetzt zur Nacht gehen. Wir müssen sie eins nach dem anderen öffnen. Wir öffnen zuerst den Abend, hier drinnen. Wenn Sie mit Blueprint-Klauseln noch nicht vertraut sind, haben Sie im Grunde genommen Sie haben verschiedene Komponenten. Zum Beispiel der Sprite. Lass uns vorerst zum Aussichtspunkt gehen. Hier im Viewport, genau wie im Viewport hier im Spiel. Im Viewport für die Blueprint-Klausel können Sie Dinge visuell können Sie Zum Beispiel das Sprite, wir haben nichts angewendet Und das werden wir tun. Lassen Sie uns das jetzt tatsächlich tun. du auf dieses Monster klickst, siehst du, dass es ein Flipbook braucht Es ist eine Animation, weil es ein Charakter ist , den wir hier geschaffen haben Es braucht eine animierte Figur, die auf das Flipbook klickt. Let, das ist die Nacht. Wir müssen die Nacht im Leerlauf wählen. Lass uns weitermachen und es auswählen. Sie können es entweder so auswählen oder auf das Sprite klicken Du kannst hier in die Charaktere klicken und ziehen, du kannst das anklicken und ziehen und es hier oben ablegen. Das funktioniert auch. Jetzt können Sie visuell sehen, Sie können sich bewegen, genau wie im Viewport normal Du kannst jetzt sehen, dass wir diesen Charakter haben. Wenn du darauf doppelklickst, der Framer pro Sekunde Ich habe es für dieses nicht geändert. Ich glaube, ich habe vergessen, es zu ändern. Lassen Sie mich einfach alle auswählen. Ich glaube, ich habe es schon einmal geändert. Wie auch immer, wähle sie alle aus. Wenn Sie dasselbe haben, klicken Sie mit der rechten Maustaste und gehen Sie zu Asset-Aktionen. Es ist die Auswahl in der Eigenschaftsmatrix. Ich gehe zu Sprite und ändere die Bildrate pro Sekunde auf zehn Bilder pro Sekunde Lass uns rausgehen und es schließen. Anstatt in jeden einzelnen von ihnen zu gehen und die Frames pro Sekunde auf zehn zu ändern, mache ich das einfach, indem ich alle auswähle. Klicken Sie mit der rechten Maustaste auf die Eigenschaftsmatrix und machen Sie es hier so. Sie könnten die hellen Bilder pro Sekunde ändern . Schnell, ich weiß nicht. Ich glaube, ich habe es schon einmal gemacht. Vielleicht mein Motorwappen, ich bin mir nicht sicher. Aber jetzt haben wir das. Gehen wir zurück zum Blueprint-Glas Lass es uns wieder öffnen. Ich gehe zu Blueprints In der Nacht, in der wir gearbeitet haben, machen sich Feinde breit. Gehen wir zu den Viewports. Hier kannst du meinen Abend sehen. Hier sieht alles viel besser aus. Okay? Im Viewport können Sie Dinge visuell sehen Und innerhalb des Ereignisdiagramms fügen Sie den Code hinzu, zum Beispiel bei Bewegung und so weiter Konzentrieren wir uns vorerst nicht darauf, gehen wir zum Viewport innerhalb von hier. Wir müssen es für jeden einzelnen von ihnen tun. Wir müssen das Flipbook zuordnen. Gehen wir zum Klick hier oben. Öffnen Sie den vollständigen Blueprint-Editor. Diese Ansicht wird angezeigt, weil Sie diesen Blueprint noch nicht bearbeitet Öffnen wir sie, klicken auf den Sprite und weisen ihm das Oder zu. Wenn du zum Beispiel einfach nach Orc suchst und dieses oder Idle auswählen kannst Wenn Sie zum Darstellungsfenster gehen, können Sie sehen, dass es korrekt aussieht Hier ist es, okay, großartig. Du musst es für jeden einzelnen von ihnen tun. Ich werde dir nur diesen zeigen und dann werde ich es alleine machen. The Orc Rogue, klicke auf Sprite oder gehe zum Schurken und wähle das nur darauf, dass du für jedes einzelne von ihnen das Idol auswählst für jedes einzelne von ihnen das Idol auswählst Ich werde es einfach für den Rest von ihnen tun. Okay. Das war der letzte. In jedem einzelnen von ihnen habe ich den Charakter einfach so zugewiesen und es sieht schon aus wie ein Spiel. Fantastisch. Auch wenn wir noch nicht viel gemacht haben, werde ich einfach auf jeden einzelnen von ihnen klicken und ihn kompilieren . Das ist eine gute Praxis. Es würde momentan nicht viel ändern, zu klicken und zu kompilieren. Aber es ist immer schön, sich einfach so daran zu erinnern. Übrigens, auch gut zu wissen Sie können auf diese drei Punkte klicken und speichern und kompilieren, und Sie können auf diesen Punkt klicken, Erfolglos. Das einzige, was das macht, ist, dass jedes Mal, wenn ich auf Kompilieren klicke, es automatisch hier gespeichert wird, anstatt, sagen wir, ich habe hier einen Wert wie diesen geändert. Anstatt zu kompilieren und dann zu speichern, können Sie einfach kompilieren Sie können den Stern sehen, das bedeutet, dass er nicht gespeichert ist. Wenn Sie auf Kompilieren klicken, wird es automatisch ebenfalls gespeichert. Das ist wirklich nett. Normalerweise setze ich das nur auf erfolglos. Sie können auch alles speichern, wenn Sie möchten. Im Moment nicht wirklich notwendig. Okay, hier sind wir. Lass uns jetzt etwas anderes machen. Diese Kapsel hier ist die Kollision für diesen Charakter. Wir brauchen Kollisionen nicht wirklich, weil die Charaktere in der Umgebung einfach still stehen. Was wir tun können, ist, alles zu schließen. Lasst uns die feindliche Basis für diese Kapsel öffnen. Nur damit es nicht so groß ist. Es geht darum zu wissen , dass es so groß und der Charakter so klein ist. Normalerweise passt es zum Charakter. Anstatt auf diese Kapselkomponente zu klicken und den Wert hier in der Kapselhöhe und dem Kapselradius so zu ändern der Kapselhöhe und , dass er so zum Charakter passt. Anstatt dies für jedes einzelne Zeichen zu tun, denken Sie daran, dass ich nur auf diesen Pfeil klicken werde , um ihn zurückzusetzen. Denken Sie daran, dass wir standardmäßig die feindliche Basis haben, die die übergeordnete Klasse ist. Gehe zum Viewport. Ich werde einfach hier klicken und versuchen, es so auf 12 mal 12 zu setzen und zu kompilieren Und jetzt kannst du sehen, wie es in der Nacht aussieht , weil es jetzt automatisch für jeden einzelnen von ihnen geändert wird. Sie haben all diese Einstellungen angewendet. Lassen Sie mich einen Blick darauf werfen und so sieht es aus. Diesen verwenden wir, wenn du mit der Maus klickst und dem Feind Schaden zufügst. Ich werde es etwas größer machen, damit wir den Feind viel leichter treffen können. Vielleicht machen wir es statt 12 mal 16 mal 16. Lass uns das versuchen. Wir können es immer vergrößern, wenn die Trefferbox zu klein ist, 16 mal 16. Sieht gut aus für die Kapselkomponente. Ich werde darauf klicken. Ich gehe hier in die Kollisionseinstellungen und sage „Überlappungsereignisse generieren“. Nein, nein, hier wegen der Kollision, wir müssen später eine Kollision hinzufügen. Aber vorerst klicken wir einfach hier und sagen „Keine Kollision“, können wir es später benutzerdefiniert machen. Geh und kompiliere und speichere alles. Jetzt ist für jede einzelne dieser Blueprint-Klassen auch die Kollision auf „Nicht“ gesetzt Was das Sprite angeht, stell einfach sicher, dass es keine Kollision in der feindlichen Basis Denken Sie auch hier an die Sprites der gegnerischen Basis bei der Kollision. Ich setze hier ein, keine Kollision und alles sieht toll auch bei der Komponente der Charakterbewegung darauf, dass die Schwerkraft Null ist, damit wir nicht herunterfallen. Diese maximale Beschleunigung ist Null. Wir können die maximale Gehgeschwindigkeit auf Null setzen. Alles sieht gut aus. Ich glaube, wir müssen nicht wirklich viel ändern. Lassen Sie uns hier kompilieren. Lasst uns alles speichern. Und das war's für die Feinde. Sie können immer einen von ihnen ziehen. Zum Beispiel das Skelett. Sie können das Y so eingeben, dass es Null ist. Wir bringen es nach vorne und hier ist es. So sieht es aus, wenn Sie auf „ Denken Sie daran“ klicken, ist die Spielansicht. Sie können also darauf klicken, um die Symbole auszublenden , und Sie können sehen, wie es aussieht. Sie können mit der rechten Maustaste auf den Player klicken und die Kamera steuern. Sie können hier auf F 11 klicken , um das Darstellungsfenster zu maximieren. Denken Sie daran, dass 11 bedeutet, wenn ich hier klicke, es ist der immersive Modus 11, wir maximieren den Viewport Wenn Sie die Position der Kamera ändern möchten, können Sie jederzeit hier klicken und die Position der Kamera so ändern , dass sie zentriert wird Ich kann hier den Drehpunkt der Kamera sehen. Du kannst es so ändern, dass es auf den Charakter passt. Sie können zum Beispiel auf 11 klicken, um zu maximieren. Ich schaffe es sogar so weiter nach unten. 11 hier ist mein Charakter animiert und alles sieht toll aus. Ich möchte jedoch auf meinen Charakter oder meine Spielerkamera klicken. In der Kamera werde ich hier einfach 640 schreiben. Stattdessen werde ich nur ein bisschen rauszoomen. Ich denke, es ist ein bisschen zu groß herangezoomt. Ich glaube, das war viel zu vergrößert. Lass mich einfach versuchen, mit der rechten Maustaste zu klicken und es zu stapeln. Und klicken Sie auf 11. Und so sieht es aus, sieht viel besser aus als zuvor. Und ich bin mit den Ergebnissen zufrieden. Lassen Sie mich auf diese Schaltfläche klicken , um die Kamera wieder zu verlassen. Ich werde hier klicken. Lösche das vorerst. Ja, alles sieht gut aus. Wir haben die Gegner jetzt in Blauprint-Klassen eingeteilt. Lassen Sie uns jetzt weitermachen und alles speichern. Lass uns mit dem nächsten weitermachen. 20. 3.07 Die Player-Kamera als Standard anwenden: Was wir jetzt tun müssen, bevor wir fortfahren, ist sicherzustellen, dass die Spielerkamera Spiel betrachtet, wenn wir das Spiel spielen Denn du kannst sehen, wenn ich auf „Spielen“ klicke, dass das Spiel von dem Punkt aus betrachtet wird, an dem ich mich gerade im Viewport befinde Und es benutzt nicht wirklich unsere Kamera, die wir hier eingerichtet haben. Lassen Sie uns weitermachen und das tun. Klicken Sie auf diesen BP-Player und löschen Sie ihn, denn was Sie jetzt tun müssen, ist hier oben zu klicken. Gehen Sie stattdessen zu Basic und wählen Sie diese Komponente aus, die als Player-Startstart-Komponente bezeichnet wird . Wenn ich es jetzt nach vorne ziehe, kannst du sehen, dass es einen Pfeil hat. Ich muss es hier drehen. Klicken Sie auf das Drehwerkzeug und drehen Sie es so, dass der Pfeil auf die Karte zeigt. Der Start ermöglicht es dem Spieler , hier zu spawnen, wo ich es eingestellt habe Jetzt musst du nur noch sicherstellen, dass innerhalb des Spielmodus, wenn du in den Spielmodus gehst und alles innerhalb des Spielmodus in den Klassenstandards speicherst, sicherstellst , dass die Standard-P-Klasse, du sie von der Standardklasse abänderst, weil wir den BP-Spieler zum Spawnen als unseren Spieler verwenden wollen Die Standard-Punktklasse ist BP-Player und kompiliere und speichere alles, wenn du willst Du kannst auch sichergehen, dass die Standardpunktklausel auch BP-Player ist, indem du hier in den Projekteinstellungen auf Projekteinstellungen bearbeiten klickst und dort zu den Karten und Modi gehst. Dies sollte automatisch geschehen , wenn du dich für den Spielmodus sowie für die Einstellungen innerhalb der Welt entscheidest. Auch hier gilt: Wenn du die Welteinstellungen nicht geöffnet hast, kannst du hier oben auf Fenster klicken die Welteinstellungen öffnen Aber hier im Spielmodus kannst du hier unten auf diesen Pfeil klicken und du kannst sehen, kannst du hier unten auf diesen Pfeil klicken dass der BP-Spieler die Standardklausel ist. Auch hier sollte das alles automatisch übernommen werden , wenn du es hier änderst Mach dir darüber keine Gedanken. Aber es ist immer schön zu wissen, dass es hier korrekt sein muss und dass es auch in den Projekteinstellungen korrekt sein muss. Wenn ich jetzt auf Play klicke, wird der BP-Player als Standardklasse verwendet, um in der Welt zu spawnen Wenn ich auf 11 klicke, sieht es so aus Was du tun kannst, ist, dass du immer auf die Starts des Spielers klicken kannst und du kannst X, Y und Z ändern . Ich kann sagen, dass es sich hier nicht wirklich ändert, weil ich glaube es liegt daran, dass ich dort spiele. Wenn ich es einfach nach unten bewege und auf Abspielen klicke, kannst du sehen, dass sich die Position ändert. Du kannst immer versuchen, es hier zu zentrieren, was auch immer. Weil der Feind vielleicht auf dieser Seite spawnen wird . Und ich werde es etwas mehr zur Seite bewegen. Lass uns auf Play klicken. Es ist nicht wirklich wichtig. Ich denke, das ist vorerst in Ordnung. Wir werden es auch später reparieren, aber das ist gut für mich. Lass uns auf Datei klicken und alles speichern. Und jetzt verwenden wir jedes Mal, wenn wir auf Play klicken, diesen Spawner, um die Kamera zu starten Und wir spielen aus dieser Ansicht. Speichern Sie alles und fahren wir mit dem nächsten fort . 21. 4.01 Den Feind-Spawn-Punkt erstellen: Was wir jetzt tun können, ist den Spawnpunkt für den Feind hinzuzufügen , denn jetzt ist es an der Zeit, den Feind in der Welt erscheinen zu lassen Lassen Sie uns dazu einen Spawnpunkt erstellen. Die Art und Weise, wie wir einen Spawnpunkt erstellen können. Jetzt denkst du vielleicht, du könntest einen weiteren Spielerstart hinzufügen und versuchen, den Startort dieses Spielers festzulegen, um den Feind zu spawnen Aber das ist nur für den Spieler und es wird verwirrend, wenn ich auf Play klicke Jetzt benutzt es tatsächlich dieses, und wenn ich erneut auf Play klicke, benutzt es dieses. Es wechselt ständig zwischen diesen und wird verwirrt. Lass uns jetzt stattdessen diesen zweiten für die Spawnpunkte löschen , lass uns auf die Blueprints klicken Und lass mich mit der rechten Maustaste klicken und einen neuen Ordner erstellen. Nennen wir es Spawnpunkte. Lass es uns öffnen. Lass uns mit der rechten Maustaste klicken und eine neue Blueprint-Klasse als Spawnpunkt erstellen eine neue Blueprint-Klasse als Spawnpunkt Machen wir einfach einen ganz einfachen Namen namens Actor Base oder einfach Actor und klicken darauf Nennen wir das BP Spa Point Base. Auch hier mache ich normalerweise Blueprint-Kurse, weil ich gerne Blueprint-Klassen für Kinder erstelle , die wir später verwenden können Wenn wir einen bestimmten Wert für alle ändern müssen, können wir das im Hauptmenü, also den Eltern, tun. Aber vielleicht müssen wir nicht mehr als einen Punkt für Spanien erstellen , ich bin mir nicht sicher. Aber es ist immer schön, eine Basis zu erstellen, klicken Sie mit der rechten Maustaste hier. Dies ist auch der Fall, wenn Sie ein größeres Spiel entwickeln. Sie sind sich nicht sicher, ob Sie mehr als einen Spanien-Punkt benötigen. Aber es ist immer schön, ein übergeordnetes zu erstellen , weil Sie es später vielleicht bereuen werden, wenn Sie es nicht erstellen und Sie alle erneut erstellen müssen. Lass uns hier mit der rechten Maustaste klicken und einen Blueprint-Kurs für Kinder erstellen. Nennen wir es EP Enemy Spa Point. Jetzt kann ich das anklicken und in die Welt ziehen. Lass uns das Y auf Null setzen. Es ist hier vorne. Du kannst den Feind spawnen, wo immer du willst. Zum Beispiel kannst du den Feind hier spawnen. Was auch immer gerade nicht so wichtig ist, wenn ich auf Spielen klicke, spawnt der Feind Okay, jetzt haben wir den Spawnpunkt erstellt. Lassen Sie uns vorerst alles speichern. Lasst uns auf diesen gegnerischen Spawnpunkt klicken. Stellen Sie sicher, dass wir keine Einstellungen ändern müssen. Wir haben nicht wirklich viel. Sie können hier in den Komponenten sehen, wir haben nur das Symbol, das wir nicht haben, das wir hier machen können , weil wir nichts hinzugefügt haben. Das müssen wir nicht. Ich benutze nur diesen Schauspieler. Finde den Standort und die Rotation in der Welt, damit wir den Feind spawnen können Okay, das war es für den Spawnpunkt. Und lass uns mit dem nächsten weitermachen. 22. 4.02 Spawn Schauspieler des Kurses: Der Sinn von all dem ist jetzt , dass wir den Feind spawnen müssen Und wie bringen wir Dinge in die Welt? in Unreal Engine Lassen Sie uns das in Unreal Engine im Player Controller machen Also, was ich normalerweise im Player Controller mache , ist, Dinge in die Welt zu bringen Wenn es ein Charakter ist, muss ich spawnen, wenn es eine Waffe ist, ich muss spawnen, wenn es eine Goldmünze ist, ich muss Das alles geschieht innerhalb der Kontrolle des Spielers. Öffnen wir es und gehen wir zum Event-Graph. Weil ich jetzt programmieren möchte. Übrigens, Sie können die rechte Maustaste gedrückt halten und sich hier bewegen. Lassen Sie mich einfach beide auswählen. Drücken Sie auf meiner Tastatur auf Löschen. Und lass uns hier anfangen. Wenn du anfängst zu programmieren, musst du dir im Grunde überlegen, was muss ich tun? Okay, ich muss es aufschlüsseln. Okay, ich muss hier einen Feind spawnen. Das ist es, was ich will. Was muss ich tun? Ich muss die Hauptfunktion verwenden, die verwendet wird , um Dinge zu spawnen Ich klicke mit der rechten Maustaste. Wenn du nicht weißt, wie es heißt, kannst du es jederzeit zum Beispiel spawnen Du kannst versuchen, einen Blick darauf zu werfen und herauszufinden , welcher am besten zu deinem passt Es sind nicht all diese Castings, die Funktionen wurden hier gestoppt, Sie können sehen, dass sie aufgerufen wurden, das sind die Funktionen, die Sie verwenden können. Wenn du nicht weißt, wie es heißt, suche einfach nach dem Wort. Ich muss zum Beispiel etwas spawnen . Ich suche nur nach Spawn Eigentlich dieser eine Spawn-Darsteller aus dem Unterricht, ich werde ihn hier anklicken Das ist die Funktion, die Dinge für uns hervorbringen wird Um nun Code innerhalb einer anfälligen Engine auszuführen , benötigen Sie ein Ereignis Ohne ein Ereignis können Sie keinen Code ausführen, wenn Sie klicken und hier nach Ereignissen suchen. Falls ich ihn hier finden kann. Event-Dispatcher, es ist nicht hier oben. Wenn ich hochgehe, kann ich tatsächlich diesen, es ist ein Ereignis in der Werbeveranstaltung Sie können sehen, dass dies die Symbole für die Ereignisse sind. Und Sie haben viele Ereignisse, mit denen Sie Ihren Code starten können. Zum Beispiel ist Begin Play am einfachsten. Wenn Sie darauf klicken, können Sie sehen, dass Ereignisse rot und Funktionen blau markiert sind. Das rote hier, Beginplay sagt einfach, dass es sich um ein einfaches Event handelt Was sollte passieren, wenn ich anfange, das Spiel zu spielen? Wenn du hier klickst und es verbindest. Wenn Sie jetzt auf Play klicken, wird diese Funktion hier ausgeführt. Ohne ein Ereignis können Sie die Codierung nicht auf einer echten Engine ausführen. Wir müssen diesen einen Spawn-Akteur verwenden anstatt ein normales Ereignis zu verwenden Lassen Sie uns mit der rechten Maustaste klicken und ein benutzerdefiniertes Ereignis erstellen. Lassen Sie uns einfach ein benutzerdefiniertes Ereignis erstellen. Der Unterschied besteht darin Sie dem benutzerdefinierten Ereignis einfach einen benutzerdefinierten Namen geben können. Ich nenne es einfach Spawn M. Das wollen wir machen Ich werde es hier verbinden und los geht's. Für diese Spawn-Funktion müssen wir definieren, was wir spawnen müssen Zum Beispiel müssen wir den Schurken spawnen, wir müssen den Krieger spawnen und so weiter Jetzt kommt es wirklich darauf an, auf welchem Level du bist, denn in Clicker Heroes zum Beispiel hängt es wirklich von mir ab, in welchem Level In Level eins willst du vielleicht den Krieger spawnen und Level zwei willst du vielleicht den Ok Shaman spawnen Wir können also nicht wirklich angeben , welchen wir spawnen wollen, anstatt hier nur anzugeben, was wir spawnen wollen, hängt vom hier nur anzugeben, was wir spawnen wollen, hängt spawnen wollen, Ich werde diesen Pin hier anklicken und in die Funktion ziehen und wir können uns später entscheiden Anstatt es Klasse zu nennen, nenne ich es Feind , den wir hier spawnen wollen Das ist die Variable, die wir hinzugefügt haben. Wirklich coole Sache, diese Spawn-Transformation auch. Wir können es hierher ziehen. Aber anstatt eine Variable zu erstellen, können Sie entweder hier auf das Ereignis klicken und auf das Plus klicken und die Variable erstellen. Zum Beispiel kann ich hier auf den Variablentyp klicken und Transformation auswählen, genau wie bei dieser. Und ich kann sie miteinander verbinden. Ich kann es so machen, oder wenn ich dieses wieder lösche, kann ich es einfach wie zuvor anklicken und ziehen, es in das Event einfügen und es wird automatisch für mich erstellt. Sehr coole Methode, da ich den Feind spawnen werde Nun zur Spawn-Transformation, es hängt wirklich davon ab, wo sich dieser Spawnpunkt befindet. Ich werde einfach beide in das Event einbeziehen. Wenn wir dieses Event später verwenden, können wir angeben, wo sich der Spawnpunkt befindet und wir können auch angeben, welchen Feind wir spawnen möchten Aber im Moment können wir uns hier nicht wirklich entscheiden. das Spawnen angeht, klicke ich hier und sage, versuche den Standort anzupassen, aber spawnen Sie immer, um sicherzustellen, dass mein Feind hier drüben spawnen wird. Es ist immer schön, eine Variable darüber zu haben, welchen Feind Sie gespawnt Es ist immer schön, eine Variable darüber zu haben , welchen Feind Sie Ich klicke mit der rechten Maustaste darauf und mache daraus eine Variable Ich werde das Spawn nennen . Feind. Okay, wir spawnen einfach einen Feind und speichern diese Information dann in einer Variablen, die wir später verwenden können Weil es wirklich nett ist, diese zu verwenden, wenn wir etwas mit diesem generierten Feind machen müssen Wir haben diese Daten in einer Variablen Okay. Das ist die einfache Funktion, der Spawn-Akteur der Klasse Sie können hier sehen, ob ich dieses Ereignis später aufrufe , weil Sie diesen Code nicht ausführen können Wenn ich also auf Play klicke, erwarte nicht, dass der Code ausgeführt wird, denn in Unreal Engine musst du in der Engine angeben, musst du in der Engine angeben wann du dieses Event ausführen möchtest Ich kann zum Beispiel hier mit der rechten Maustaste klicken und meinem Spawn-Feind suchen Event, Spawn-Feind. Und du kannst es hier sehen und es heißt Anruffunktion. Also kann ich darauf klicken und meinen Code Spawn Enemy nennen. Ich kann es hier aufrufen, wann immer ich es anrufe, ich kann dann diesen Code ausführen Wenn ich nur Begin, Play schreibe, nur um dir den Anfang zu zeigen, ist Play das einfachste Ereignis. Ich kann es hier verbinden. Immer wenn ich anfange, das Spiel zu spielen , wird es dieses Event aufrufen, das dann diesen Code hier ausführt. So passiert es. Nehmen wir zum Beispiel an, ich möchte den Zauberer spawnen Lassen Sie mich zunächst diesen nehmen, anstatt einen Wert zu schreiben, lassen Sie mich ihn nehmen und sagen, dass ich selbst eine Transformation nur manuell vornehmen werde Wir werden es nicht so machen, aber ich werde es Ihnen nur zeigen, lassen Sie uns zum Beispiel die Position dieses Spawnpunkts kopieren Ich sage 170 mal Null mal -120 Hier an der Stelle 1700 -120 werde ich kompilieren Wenn ich jetzt auf Spielen klicke, kannst du sehen, dass mein Feind an diesem bestimmten Ort erschienen ist Es ist der Zauberer , der all diese Funktionen hervorgebracht hat , oder so nennen wir Ereignisse Du musst eine Veranstaltung haben. Du führst diesen Code aus, sagst es der Engine, führst meine Spawn-Enemy Events Und es wird deine Events mit den angegebenen Dingen ausführen , die du hier angegeben hast Ich möchte den Zauberer zum Beispiel an diesem Ort spawnen zum Beispiel an diesem Es wird diese Informationen hier, hier einfügen. Und es wird den Feind spawnen und ihn in einer Variablen speichern Lassen Sie uns das jetzt löschen. Wir brauchen es nicht. Ich wollte es dir gerade zeigen. Lass uns alles kompilieren und speichern. Gehen wir jetzt in den Spielmodus. Wir können es immer von hier aus spawnen, von Beginn des Spiels an. Aber nur um den Code etwas sauberer zu machen, lassen Sie uns den Feind im Spielmodus spawnen Nun, da wir diesen Code haben, mit dem wir den Feind spawnen, lassen Sie uns den Code im Spielmodus ausführen Da der Spielmodus die Spielregeln festlegt, ist es sauberer, es hier drinnen zu machen Aber im Einzelspielermodus spielt es eigentlich keine Rolle. Ob du den Feind von hier aus spawnst oder den Feind von hier aus spawnst , ist nicht wirklich wichtig Aber nur um einen saubereren Code zu erstellen, machen wir das im Spielmodus Ich werde es im Startspiel machen. Ich werde einfach dieses auswählen und es hier löschen. Lass uns ziehen und nach einem Spawn-Feind suchen. Du kannst hier sehen, wenn du das tust, du kannst nichts sehen Das liegt daran, dass dieser Spielmodus jetzt nicht erkennt was Sie in dieser anderen Blueprint-Klasse erstellt haben dieser anderen Blueprint-Klasse Denkt daran, dass es sich dabei um zwei verschiedene Blueprint-Klassen handelt. Jetzt müssen Sie sich tatsächlich mit etwas befassen, das als Blueprint-Kommunikation bezeichnet wird Muss mit einer anderen Blueprint-Klasse kommunizieren, da dieser Spielmodus dies vom Play-Controller aus verwenden muss Play-Controller aus verwenden Wir müssen etwas namens Casting verwenden , um mit diesem anderen Blueprint zu kommunizieren Und das werden wir in der nächsten Lektion tun. 23. 4.03 Blueprint-Kommunikation – Casting: Jetzt kommen wir zur Blueprint-Kommunikation. Und jetzt müssen wir mit dem Spieler-Controller innerhalb des Spielmodus kommunizieren Spieler-Controller innerhalb des , um dem Spieler-Controller oder hier im Spielmodus mitzuteilen, dass er diesen Spawn-Feind benutzen und als Feind bezeichnen soll Um das zu tun, lassen Sie uns hier unten mit der rechten Maustaste klicken und sagen , rechten Maustaste klicken und sagen worüber Sie sich Gedanken machen müssen worüber Sie sich Gedanken machen müssen, womit Sie kommunizieren müssen Ich muss mit dem Player-Controller kommunizieren. Lass uns nach dem Player-Controller suchen. Wir brauchen diese Funktion namens Get Player Controller. Wir bekommen diesen Standard-Layer-Controller von Unreal Engine Jetzt müssen wir hier sagen, dass wir diesen speziellen Controller verwenden müssen , den wir erstellt haben Wir müssen diesen Standard-Player-Controller nicht verwenden. Wir müssen direkt von hier aus sagen: Besetzung zwei. Das ist Casting. Sie teilen der Engine mit, dass Sie diesen benutzerdefinierten Controller verwenden möchten. Sie müssen den Namen für PC Dungeon Clicker schreiben PC Dungeon Clicker Mach weiter und verbinde es. Was wir hier machen ist, dass wir den Standard-Player-Controller nehmen auf diesen PC-Dungeon-Clicker Im Grunde sagen wir also, dass wir Dinge innerhalb unseres eigenen benutzerdefinierten Player-Controllers verwenden wollen unseres eigenen benutzerdefinierten Player-Controllers anstatt diesen von hier aus Wir können jetzt alles, was wir hier erschaffen, diesen Spawn-Feind nennen hier erschaffen, diesen Spawn-Feind Dann kann ich jetzt zum Beispiel von hier wegziehen und Spawn Enemy sagen Jetzt kann ich es benutzen. Denken Sie daran, dass Sie nicht einfach klicken und Spawn Enemy sagen können , weil es nicht angezeigt wird Es wird nur angezeigt, wenn du von hier ziehst und Spawn Enemy sagst , weil es sich hier drinnen befindet Und jetzt kannst du es tatsächlich benutzen. Jetzt kommunizieren Sie mit diesem Bauplan. Das Problem beim Casting ist jedoch, dass Sie in Unreal Engine harte Referenzen erstellen Wenn du ein Spiel erstellst und ein großes Spiel erstellst, kannst du dir vorstellen, wie oft du Casting verwendest , weil du mit vielen Bauplänen gleichzeitig kommunizierst vielen Bauplänen gleichzeitig Davon hast du eine Menge . Das ist jetzt ein Problem, weil es harte Referenzen erzeugt. Und was harte Referenzen sind, ist, dass Sie diese Referenzen jedes Mal laden müssen , wenn Sie das Spiel starten. Manchmal siehst du wenn du ein altes Spiel öffnest und es etwa 15 Sekunden lang geladen wird , bevor dir das Hauptmenü angezeigt wird. Das liegt daran, dass es alle harten Referenzen lädt , bevor es überhaupt starten kann. Das ist wirklich schlimm. Ich sage nicht, dass du Casting nirgends verwenden solltest, aber benutze es einfach, benutze es nicht überall. Benutze es, wo immer du es findest. Es ist gut, es zu benutzen, um es zu erreichen. Mit der Erfahrung werden Sie wissen, wann Sie Casting verwenden möchten. Und warum nicht versuchen, Casting so weit wie möglich zu vermeiden? Also lass mich dieses Casting jetzt einfach löschen, oder lass es einfach hier sein. Lass mich einfach Alt drücken und die Verbindung trennen. Hier. Lass es mich vorerst nach unten verschieben. Anstatt Casting zu verwenden, verwenden wir jetzt etwas, das als Blueprint-Schnittstellen bezeichnet wird Lassen Sie uns mit der nächsten Lektion fortfahren und sehen, was Blueprint-Schnittstellen 24. 4.04 Blueprint-Kommunikation - Schnittstellen: In Ordnung, kommen wir zu den Blueprint-Schnittstellen. Nun, dieses Thema ist für viele Anfänger schwierig, aber ich werde versuchen, es wie immer so gut ich kann zu erklären, um es Ihnen zu erklären Um hohe Referenzen beim Casting zu vermeiden, verwenden wir Blueprint-Schnittstellen Klicken wir zunächst mit der rechten Maustaste hier und erstellen Sie einen neuen Ordner namens Interfaces Bleiben wir hier drinnen organisiert. Lass uns jetzt mit der rechten Maustaste klicken. In Blueprint sehen Sie etwas, das als Blueprint-Schnittstelle bezeichnet wird Lassen Sie uns weitermachen und es erstellen. Normalerweise nenne ich es als Anfänger die Leute nennen es BPI für Blueprint Interface. Lass uns das tatsächlich machen Nennen wir es BPI, Blueprint Interface. Nennen wir das hier. Der Name ist das worauf Sie sich beziehen wollen, mit was auch immer Sie kommunizieren möchten. In diesem Fall versuche ich, eine Funktion von meinem Player-Controller aus zu verwenden . Ich werde diesen einen PI-Controller nennen . Darauf möchte ich mich beziehen. Lass es uns öffnen. In einer Blueprint-Oberfläche können Sie sehen, dass Sie ein Viewport haben Sie können wirklich nichts tun. Da steht nur Lesen, du kannst hier nichts ziehen oder so. Das Einzige, was du tun kannst, ist Funktionen hier an der Seite zu erstellen. Lass uns hier auf die erste Funktion klicken. Lassen Sie mich auf zwei klicken, um sie umzubenennen. Lassen Sie mich das „ Get Play Control Reference“ nennen . Holen Sie sich die Referenz zur Spielersteuerung. Genau das versuche ich zu tun. Ich versuche, die Referenz für den Player-Controller zu bekommen , damit ich alles verwenden kann, was darin enthalten ist. Genau wie das, was wir beim Casting gemacht haben, kann ich diese Funktion hier verwenden . Gehen wir zurück zur Benutzeroberfläche. Die Player-Controller-Referenz finden Sie hier. Ich möchte hier eine Ausgabevariable erstellen. Jetzt ist der Variablentyp der auf den Sie verweisen möchten. Ich versuche, auf meinen Player-Controller zu verweisen. Ich muss hier unten danach suchen, nach PC-Controller suchen, wir nannten ihn PC, Net Player-Controller. Wir nennen PC Dung Clicker. Lass uns darauf klicken. Lass uns das einfach so in Play Controller umbenennen. Lassen Sie uns kompilieren und wir sind alle hier fertig. Das einzige, was wir erstellt haben, ist diese Referenzfunktion zum Abrufen des Player-Controllers. Und wir haben der Ausgabe hier eine Variable namens Player-Controller hinzugefügt . Wir werden dies verwenden, um diesen Player-Controller hier zu definieren. Nachdem wir nun die Blueprint-Schnittstelle erstellt haben, gehen wir nun zum Player-Controller und in den Klasseneinstellungen müssen wir diese Schnittstelle hier hinzufügen. Klicken wir in den Klasseneinstellungen auf, suchen wir nach dem BPI und fügen wir den Player-Controller Beachten Sie nun, wenn Sie den Player-Controller hier in der Benutzeroberfläche hinzufügen , dass Sie hier tatsächlich eine Leiste erhalten, die als Schnittstellen bezeichnet wird Und Sie können diese Funktion zum Abrufen der Player-Controller-Referenz sehen , die Sie gerade erstellt haben, die Liste, doppelklicken Sie darauf. Und hier ist sie, du kannst sie bearbeiten. Was Sie hier tun müssen, ist einfach per Drag-and-Say es einfach per Drag-and-Say selbst hierher zu ziehen. Jetzt haben wir eine Selbstreferenz. Selbstreferenz bedeutet im Grunde, dass wir diese Spielersteuerungsvariable definieren. Weil ich auf Alt klicke und hier klicke , um die Verbindung zu trennen. Wenn wir das nicht getan wissen wir, was diese Variable ist, sie ist leer, haben, wissen wir, was diese Variable ist, sie ist leer, hat keine Informationen, aber wir wissen nicht wirklich, dass es dieser Player-Controller ist , in dem wir uns gerade befinden. Das ist es, was Selbstreferenz bedeutet. Wenn wir das einstecken, haben wir dieser Variablen einen Wert gegeben. Wir sagen dieser Variablen im Grunde, dass der Player-Controller, über den wir sprechen , eigensinnig ist. In welchem Plan wir uns auch gerade befinden, das ist eine Selbstreferenz. Lassen Sie uns jetzt weitermachen, damit es nicht verwirrend wird. Und ich werde den gesamten Prozess erklären, wenn wir fertig sind. Nun, da wir das getan haben, lassen Sie uns es schließen. Lass uns den Spielmodus öffnen. jetzt wie zuvor an, Nehmen wir jetzt wie zuvor an, holen Sie sich den Player-Controller und holen Sie sich den Standard-Player-Controller. Anstatt zu casten, können wir jetzt die Controller-Referenz ziehen und sagen. Jetzt können Sie sehen, dass dies von der Blueprint-Oberfläche stammt. Es ist auch eine Blueprint-Schnittstellenfunktion. Wenn Sie diese Nachricht am Ende sehen, klicken wir darauf. Das bedeutet auch dieses Symbol. Es bedeutet, dass es von einer Blueprint-Schnittstelle stammt. Lass uns weitermachen und es verbinden. Lassen Sie uns von hier aus den Drag & Sage „Feind spawnen“ sagen , genau wie zuvor Und jetzt können wir alles nennen, was darin ist. Jetzt siehst du, wann ich zum Player-Controller gehe. Und wenn ich eine neue Variable hinzufüge, die zum Beispiel Enemy we save heißt . Haufen. Jetzt im Spielmodus kann ich von hier aus Regie führen und sagen, Gegner töten. Und jetzt können Sie sehen, dass ich diese Variable sehen kann , die ich gerade erstellt habe. Was auch immer ich hier erstelle , ich kann jetzt mit dem Player-Controller kommunizieren und alles von dort aus verwenden. Okay, lass mich einfach den ganzen Prozess erklären , bevor ich dieses Video beende. Wenn Sie es bereits verstanden haben, können Sie mit der nächsten Lektion fortfahren. Ich werde diesen einfach löschen. Also werde ich nur den ganzen Prozess erklären. Also ist es leicht zu verstehen. Zunächst haben wir diese Blueprint-Oberfläche mit einem Rechtsklick erstellt Und im Blueprint haben wir die Blueprint-Schnittstelle erstellt. In dieser Schnittstelle haben wir gerade eine Funktion namens Get Player Controller Reference erstellt namens Get Player Controller Weil wir die Player-Controller-Referenz abrufen wollen. Was auch immer Sie referenzieren müssen, Sie müssen eine Variable erstellen und den Variablentyp festlegen. Hier ist, worauf Sie verweisen möchten. Wir versuchen, auf diesen Player-Controller namens PC Dungeon Clicker zu verweisen diesen Player-Controller namens PC Dungeon Clicker diesem Grund habe ich ihn hier im Variablentyp auf PC Dungeon Clicker gesetzt Suchen Sie einfach hier danach, PC Dungeon Clicker, und Sie finden Okay, gib ihm einfach einen Namen. Ich habe es gerade Player Controller genannt. Und denk daran zu kompilieren. Wenn Sie nicht kompilieren, wird es hier nicht angezeigt. Denken Sie also daran, alles zu kompilieren und zu speichern. Jetzt musst du diese Blueprint-Schnittstelle zum Player-Controller hinzufügen , denn darauf versuchst du hier zu verweisen Wir sind in die Cloud-Einstellungen gegangen und haben die Blueprint-Oberfläche hinzugefügt Wenn Sie dies tun, erscheint die Funktion hier links Sie öffnen diese Funktion hier drinnen. Wir haben im Grunde eine Selbstreferenz erstellt denn wenn du die Verbindung trennst und kompilierst und versuchst, das hier im Spielmodus zu tun, wenn du auf Play klickst, bin ich mir nicht sicher, ob ich jetzt eine Fehlermeldung erhalte. Das wird es, weil wir das beim Start des Spiels ausführen und es mir eine Ära geben wird. Es wird sagen, dass kein Zugriff möglich ist. Ich versuche, die Eigenschaft zu lesen und Spieler-Controller-Referenz im Spawn-Feind Wenn ich hier darauf klicke, klicke ich auf dieses. Lass es mich einfach minimieren, damit es dir angezeigt wird, wenn ich hier rüberfahre und auf diesen Spawn-Feind klicke Die Ära ist da. Da steht Access. Ich versuche, die Eigenschaft zu lesen und Player-Controller-Referenz abzurufen. Es heißt Access non, was bedeutet, dass ich keine Informationen von dem habe , was Sie mir geben wollen. Ich versuche, ihm diesen Player-Controller als Referenz zu geben. Aber es sagt nichts. Das bedeutet, dass es hier keinerlei Informationen gibt. Und ich kann damit nichts anfangen weil wir bei der Spielersteuerung, in den Blueprint-Schnittstellen, in den Blueprint-Schnittstellen, dieses Selbst nicht miteinander verbunden Denn wenn es leer ist, weiß die Engine nicht wirklich, was dieser Play-Controller ist. Wir müssen es sagen. Der Player-Controller, von dem ich spreche, bin ich hier. Der Player-Controller. Dieser Blueprint-Kurs ich gerade schon teilnehme Nachdem wir es jetzt im Spielmodus definiert haben, können wir dieses Blueprint-Interface jetzt aufrufen Aber zuerst müssen wir daraus den Standard-Player-Controller abrufen , dieser bezieht sich auf die Play-Controller-Referenz. Aber von hier aus können wir von der Blueprint-Oberfläche aus auf alles zugreifen Denken Sie daran, dass wir im Play-Controller diese Selbstreferenz hier erstellt haben Er weiß, über welchen Play-Controller wir sprechen. Okay, ich weiß, dass es für Anfänger etwas verwirrend ist, aber glauben Sie mir, das Konzept ist sehr, sehr einfach. Wenn Sie nur 23 Mal damit üben, versuchen Sie, das Ende des Videos erneut anzusehen. Versuchen Sie vielleicht einfach, es zu verstehen. Wir werden das in diesem Kurs mindestens fünfmal machen , sodass Sie auch andere Beispiele sehen werden, nicht nur den Play-Controller, sondern wir werden auch andere Beispiele sehen Ich lasse dich das auch zuerst machen, bevor ich es mache, damit du auch hier etwas üben kannst. Aber vorerst sind wir fertig. Wir haben das verbunden. Sie können hier jedoch sehen, dass wir den Spawn-Standort benötigen Wir müssen den Feind an diesem Ort hier spawnen. Anstatt einen statischen Wert zu erstellen, wie zum Beispiel durch Ziehen und Aufrufen von Transform einen statischen Wert zu erstellen, können wir hier einfach einen Wert schreiben Wir wollen wissen, wo dieser Spawnpunkt ist. Wir müssen diesen Feind spawnen. Je nachdem, wo sich der Spawnpunkt befindet, werden wir das in der nächsten Lektion tun 25. 4.05 Die Spawn-Punkt-Werte erhalten: Hier habe ich das Projekt erneut geöffnet und jetzt sagt es mir wieder, dass Nenite aktiviert ist, aber nicht rendern kann weil das Projekt Nani in einem I deaktiviert hat. Und ich erinnere mich, dass wir Nanite jetzt in den Projekteinstellungen deaktiviert haben , anstatt Anite hier in der Konsole 2047 zu schreiben der Konsole 2047 Jedes Mal, wenn Sie das Projekt schließen und erneut öffnen, wird diese Meldung angezeigt Stattdessen möchte ich, dass Sie in Ihren Projektordner gehen und ihn in Dokumenten finden. Und wenn Sie zu den Unreal Projects gehen, hier Ihre Unreal Engine-Projekte gespeichert Dann gehe ich in den Dungeon Clicker und möchte, dass du die Konfiguration öffnest und diese namens Default Engine I Ich möchte, dass du hier eine findest , oder? eine findest , oder Project enabled ist hier unten gleich False. Ich werde hier meinen benutzerdefinierten Code anstelle des Konsolenbefehls schreiben . Lass es uns hier schreiben. Nt ist gleich Null. Ich möchte, dass du Folgendes schreibst , R ist gleich Null. Lass es uns speichern. Ich verwende übrigens Notepad Plus Plus. Sie können Ihren normalen Texteditor verwenden. wirklich egal, was Sie verwenden, wenn Sie einfach R n schreiben, entspricht Null. Lass es uns schließen Lassen Sie uns auch dieses Projekt schließen. Lassen Sie mich erneut versuchen, mein Projekt auszuführen und zu sehen, ob die Nachricht weg ist. Und sie sollte weg sein. Es sollte nicht da sein. Da haben wir's. Die Nachricht wird nicht mehr erscheinen. Okay, großartig. Anstatt hier wollen wir jetzt Wert des Spawnpunkts Denken Sie daran, wo wir im Modus aufgehört haben, wir haben das Blueprint-Interface erstellt Wir nannten das Spawn-Feemy-Funktion oder Event, besser gesagt, wir nannten dieses Ereignis sich innerhalb des Player-Controllers Dieser. Lassen Sie mich übrigens meine UI-Skala noch einmal erhöhen , denn jedes Mal, wenn ich die Engine schließe, muss ich sie hier tatsächlich auf 1,25 erhöhen , damit Sie besser sehen können Ich hoffe, ich vergesse es nicht. Lass uns wieder öffnen. Hier und hier siehst du den Spawn-Feind. Das ist das Event, das wir im Spielmodus aufgerufen haben. Jetzt müssen wir ihm sagen, wo wir diesen Feind spawnen wollen Das ist die Spawn-Transformation. Wie machen wir das? Wir müssen dahin gelangen, wo das auf der Welt ist. Jetzt gibt es eine Funktion, die Sie verwenden müssen, und sie heißt Actor of Class. Actor of Class ist eine Funktion, etwas abgerufen wird, das bereits in die Welt eingeführt wurde Da ist zum Beispiel dieser feindliche Spawpoint, den wir kriegen können. Wenn du das Spiel „Spieler der Klasse holen“ öffnest, wenn du hier klickst und nach einem Spawn suchst, dann kannst du sehen, dass du BP für einen gegnerischen Spawpoint bekommen kannst Oder du kannst dir die BP-Spawpoint-Basis holen und so weiter. So kannst du dir diese Blaupausen besorgen. Wenn du zum Beispiel einen Plan bekommst, der nicht erzeugt wurde, sagen wir, ich nenne BP Night, das ist die Nacht, die wir erstellt Sagen wir, hol dir den Abend zum Star of Class und ich spiele das Spiel Es wird dir einen Fehler geben. Das liegt daran, dass die Nacht ein Teich in der Ebene ist. Das sind all die Dinge, die wir in unserem Level haben. Die Spieler starten das Post-Process-Volumen, die Kachelkarte und den gegnerischen Spawpoint Was wir tun können, ist, nach einem feindlichen Spa-Punkt zu suchen. Dieser eine feindliche Spa-Punkt. Wir holen uns diesen Schauspieler. Was können wir mit dem machen? Lass es uns tatsächlich in das Startspiel integrieren. Bevor wir das alles hier machen, lass mich das hier entlang ziehen und ich werde das hier so platzieren und ich werde es verbinden. Was wir hier tun wollen, ist, dass wir einfach mit der rechten Maustaste klicken und das zu einer Variablen heraufstufen. Nennen wir es feindlichen Spawnpunkt. Jetzt haben wir es in einer Variablen gespeichert und verbinden es Jetzt können wir diese Variable hier verwenden. Nehmen wir diese Variable, ziehen sie hierher und klicken Sie auf Get. Oder Sie können die Steuerung gedrückt halten und sie per Drag & Drop ziehen. Es wird es automatisch bekommen. Sie können auch Alt gedrückt halten, Alt gedrückt halten und ziehen. Und es wird diese Variable setzen anstatt einfach per Drag-and-Click auf Get zu klicken. Und stellen Sie entweder die Taste gedrückt halten und ziehen oder die Alt-Taste gedrückt halten und ziehen. Jetzt haben wir diesen feindlichen Spinpoint. Und sagen wir nochmal, wenn Sie nicht wissen, wie die Funktion heißt, suchen Sie einfach nach dem Wort Ich möchte die Transformation bekommen. Sie erhalten entweder die Position dieser Variablen, dieses Akteurs, den Standort des Schauspielers. Sie können das verwenden, Sie können von hier aus weiterleiten, Sie können sehen, dass Sie sie nicht wirklich verbinden können. Aber es wird das für dich konvertieren , auf einer echten Engine wird es das für dich konvertieren. Jetzt ist es so nicht ganz korrekt. Sie können von hier aus Regie führen und Transform sagen. Und wenn du eine Transformation durchführst, dann zerlegst du diese Transformation. Denn wenn Sie nicht wissen, was eine Transformation ist, dann ist es das, was eine Transformation ist. Sie können es tatsächlich hier im Detailbereich sehen. Wenn Sie auf etwas klicken, sehen Sie die Position, Drehung und Skalierung eines Elements. Das ist die Transformation. Die Transformation kann in Position, Drehung und Maßstab unterteilt werden. Diese orange Farbe ist die Transformation. Du kannst es so aufschlüsseln. Und Sie können den Acta-Standort hier verbinden. Und es wird gut funktionieren. jedoch kürzer zu machen es jedoch kürzer zu machen, können Sie dies tatsächlich löschen. Und Sie können hierher ziehen und nach Transformation suchen, und Sie können auch die Acta-Transformation abrufen Manchmal musst du vorsichtig sein, weil es sowohl die Position, die Rotation als auch den Maßstab berücksichtigt und mit diesen Werten den Feind beeinflusst Wenn du auf dieses Objekt klickst, wird die Position angezeigt, was Ordnung ist. Ich möchte hier spawnen. Es bekommt auch die Rotation , die 000 ist, was in Ordnung ist Stellen Sie sich vor, dieser Akt hätte diese Rotation, sagen wir, er hätte diese zufällige Rotation. Das wird auf deinen Charakter angewendet. Seien Sie vorsichtig, wenn Sie Get Actor Transform verwenden. Manchmal hast du für dieses Asset eine solche Rotation festgelegt , die du nicht auf deinen Charakter anwenden möchtest. In diesem Fall solltest du dir einen Standort von selbst bestimmen. Sie können die Drehung selbst verwenden, wenn Sie nicht möchten, dass die Rotation von hier aus erfolgt, und Sie sagen Transformation durchführen, und Sie können stattdessen die Position verwenden. Und dann können Sie die Drehung einfach auf 000 belassen. Aber in unserem Fall ist die Skala eine, die in Ordnung ist. Die Zeichenskala ist ebenfalls eins. Die Rotation ist 000, was in Ordnung ist. Und das ist der Ort, den wir mit dem Get-Act transformieren wollen, völlig in Ordnung ist, in diesem Fall hier. Jetzt haben wir es. Lassen Sie uns einfach kompilieren und geben wir ihm einfach einen Feind, zum Beispiel den Ork Mal sehen, ob der Ork tatsächlich spawnt, das ist hier drüben , der Fc hier drüben , der Man kann sehen, dass der Ork tatsächlich spawnt. Fantastisch. Es funktioniert. Wir können jetzt hier spawnen. Wählen wir zum Beispiel das Skeleton Mag. Wenn ich auf Play klicke, denke ich, anstatt auf Play zu klicken und immer so zu minimieren, um zu sehen, ob es funktioniert, spiele ich lieber hier. Sehen wir uns das Spielen als neues Editorfenster an, es öffnet sich für mich und es ist auf meinem zweiten Monitor aufgetaucht Aber im Grunde ist das hier, das ist der Skelettkamerad, und es funktioniert einwandfrei Okay, das Laichen funktioniert. Nun, was wir definieren müssen, welchen Feind wir spawnen wollen Nun, dieser ist etwas komplexer, weil, wie ich schon sagte, jedes einzelne Level im Clicker-Spiel seinen eigenen Feind hat Level eins hat zum Beispiel diesen Kerl hier, Level zwei hat diesen Wir müssen definieren, welches Level welchen Feind hat. Wir können hier nicht einfach nur einen bestimmten Feind angeben. Um das zu tun, müssen wir ein paar Dinge lernen. Strukturen, Daten, Tabellen, Bibliotheken. Aber es wird eine Menge Spaß machen und es kann auch auf Ihre zukünftigen Spiele angewendet werden. Konzentrieren Sie sich auf die nächsten paar Lektionen. Sehr, sehr wichtige Dinge stehen bevor. Lass uns mit dem nächsten weitermachen. 26. 4.06 Einführung in Strukturen: Ordnung, willkommen. Und jetzt werden wir eine Einführung in Strukturen haben. Wenn Sie nun bereits wissen, was eine Struktur ist, können Sie mit der nächsten Lektion fortfahren. Und wenn Sie nicht wissen, was eine Struktur ist, fangen wir hier an. Gehen wir zu den Feinden über. Nun zu den Feinden, lasst uns zur feindlichen Basis gehen. Denken Sie daran, wenn ich in der feindlichen Basis etwas erstelle, wenn ich eine Variable erstelle und zum Beispiel Feindgesundheit sage, dann ist der Variablentyp, den wir setzen, ein Float. Da ein Float ein numerischer Wert mit einer Dezimalstelle ist , wenn ich kompiliere, kannst du ihn hier rechts sehen. Wenn ich auf die Variable Gesundheit des Feindes klicke. Und ich kann sie zum Beispiel auf 25,6 setzen, was auch immer das ist, die Gesundheit des Feindes Jetzt kann ich auch eine neue machen. Nennen wir es zum Beispiel Feindtyp. Die Art von Feind, mit der wir es hier zu tun haben . Wir können ihm einfach einen Namen geben, was auch immer. Wir können viele Variablen haben. Wir können die Gesundheit des Feindes, den Feindtyp, den Namen des Feindes, die Leerlaufanimation des Feindes, die Todesanimation des Feindes haben. Sie können sehen, dass wir hier unten eine Menge Variablen für den Feind haben können , die diesen Feind definieren. Um es jedoch sauberer zu halten, verwenden wir Strukturen. Anstatt das Ganze mit Variablen zu füllen, lassen Sie uns versuchen, Strukturen zu verwenden. Lassen Sie mich diesen löschen. Und lösche auch diesen. Kompilieren Sie, lassen Sie mich das minimieren. Gehen wir zum Blueprints-Ordner. Klicken Sie mit der rechten Maustaste und erstellen Sie einen neuen Ordner. Nennen wir das Strukturen. Gehen wir rüber, klicken wir mit der rechten Maustaste, gehen wir zum Bauplan und schon sehen Sie, dass es sich um eine sogenannte Struktur handelt Machen Sie weiter und erstellen Sie, ich nenne es ST oder Struktur Nennen wir es Feindinfo. Diese Struktur enthält Daten über diesen Feind. Lass es uns öffnen. Okay, hier sind wir innerhalb einer Struktur. Das einzige, was wir tun, ist hier Variablen zu erstellen. Hier in den Feindinformationen können wir den Namen des Feindes angeben, wir können die Gesundheit des Feindes angeben, wir können angeben, auf welcher Stufe er spawnt, und so weiter Wir können hier viele Variablen angeben, die diesen Feind definieren Anstatt alle Variablen hier unten zu haben, können wir sie stattdessen hier haben. Und es ist viel besser, es so zu verwenden, es ist jetzt besser organisiert. Das ist eigentlich genau das, was eine Variable oder was eine Struktur ist, und Sie können die Standardwerte oder die Variablen sehen , die Sie erstellt haben. Sie können sie hier sehen. Sehr einfach. Dies ist gesamte Datenstruktur die einige Variablen enthält , die Sie verwenden können. In diesem Fall definieren wir Daten des Feindes, die Feindinformationen. Lassen Sie uns zur nächsten Lektion und die Feindinformationen ausfüllen. 27. 4.07 Level-Info und feindliche Info-Strukturen: Ordnung, lassen Sie uns für die Feindinformationen einige Variablen definieren, die wir für Feinde verwenden werden Der erste ist der Name des Feindes. Für diesen werde ich es auf eine Zeichenfolge setzen. Wenn Sie nun den Unterschied zwischen einer Zeichenfolge und einem Text nicht kennen , wenn Sie eine Zeichenfolge auswählen und auf Speichern klicken und zu den Standardwerten wechseln, können Sie sehen, dass eine Zeichenfolge im Grunde eine Textzeile ist. So können wir den Namen des Feindes schreiben. Ein Text ist aber auch eine Textzeile , in die Sie den Namen des Feindes schreiben können . Was ist also der Unterschied? Der Unterschied besteht darin, dass ein Text lokalisierbar ist und Sie können auch sehen, dass, wenn Sie die Maus darüber halten, eine lokalisierbare Textzeichenfolge angezeigt wird Lokalisierung bedeutet, dass Sie dies in verschiedene Sprachen übersetzen können , wenn Sie möchten, dass Ihr Spiel auf Deutsch oder auf Chinesisch, Japanisch, Russisch oder was auch immer sein soll Japanisch, Russisch Du kannst dein Spiel übersetzen, wenn dein Dialog oder dein Charaktername mit einer Textvariablen erstellt wurde. Wenn der Name des Charakters nun mit einer Zeichenkettenvariablen erstellt wurde, kann er nicht übersetzt werden. Vielleicht würdest du sagen, warum verwenden wir nicht einfach Text wie für alles, da wir ihn übersetzen können und alles gut wird. Das liegt daran, dass mehr Speicher als eine Zeichenfolge verwendet wird. Wir verwenden Zeichenketten, wenn Sie nicht wirklich lokalisieren müssen, was auch immer Sie tun Ich muss den Namen des Charakters nicht übersetzen. Ich behalte es einfach als Zeichenfolge. Ich möchte mein Spiel auch nicht übersetzen. Wenn du es übersetzen möchtest, zum Beispiel, wenn dein Charaktername Skeleton ist. Skeleton kann in viele Sprachen übersetzt werden. Wenn Sie das übersetzen möchten, müssen Sie stattdessen Text auswählen. Behalte das einfach im Hinterkopf. Was auch immer Sie als Text tun, möchten Sie es in eine andere Sprache übersetzen oder möchten Sie es in derselben Sprache behalten , in der Sie dieses Spiel programmieren? Ich werde einfach eine Zeichenfolge auswählen. Ich will nichts übersetzen. Was wir auch hinzufügen wollen, ist die Klasse. Die feindliche Klasse ist P M Base. Suchen Sie also nach PPN M base und wählen Sie die Klassenreferenz Falls ihr nicht wirklich wisst, was eine Klassenreferenz ist, wenn ihr den Spielmodus öffnet, dann ist es wieder einmal das, woraus wir hervorgegangen sind , eine Klassenreferenz für Schauspieler Das kannst du sehen, wenn du mit der Maus darüber fährst. Das ist also die Klassenreferenz, wir brauchen sie, um die Klassenreferenz der Feinde zu definieren und wir können diese Information hier einfügen. Als Nächstes benötigen wir den Feindtyp. Mit welcher Art von Feind haben wir es zu tun? Ist es ein normaler Feind? Ist es ein Boss? Wir können dem Spiel einen Busmechaniker hinzufügen. Anstatt einfach alle als normale Feinde zu haben, können wir auch einen Busfeind haben Machen wir einen Feindtyp. den Feindtyp angeht, muss ich einen sogenannten Enumerator verwenden, dem wir nicht wissen, was genau das ist Lassen wir es vorerst einfach so, kann ich es dir in der nächsten Lektion beibringen. Lass uns weitermachen. Lasst uns vorerst den Feind gesund machen. Und dieser ist einfach ein Festwagen. Und ein Float ist wiederum eine Zahl mit einer Dezimalstelle. Lass uns erneut auf das Plus klicken. Und wir wollen die Animation im Leerlauf. Inaktive Animation für diesen Charakter. Das ist einfach ein Flipbook. Denken Sie daran, ein Flipbook ist eine animierte Version dieses Charakters hier, bei dem es sich um ein Flipbook aus Papier handelt. Lass uns ein neues machen. Auch hier wollen wir die Hit-Animation. Es ist wieder ein Flipbook. Lass uns ein neues hinzufügen. Wir wollen auch die Todesanimation. Das ist ein Flipbook. Okay, das sind alle Daten , die wir für den Feind benötigen. Und wir sind hier eigentlich fertig. Bevor wir fertig sind, lassen Sie uns auch die andere Struktur erstellen, die als Level-Info bezeichnet wird. Wenn ich zur Struktur gehe und mit der rechten Maustaste klicke, erstelle ich Blueprint eine neue Struktur in einer neuen Struktur Nennen wir das One Level Info. Okay, lassen Sie uns diese Level-Info öffnen. Nun, was ich in den Level-Informationen tun musste, wir müssen im Grunde definieren welcher Feind auf welchem Level spawnt Grundlegend brauchen wir hier das Level , das nur eine Zahl ist. Es ist eine Ganzzahl, jetzt ist es kein Float, es ist keine Zahl mit einer Dezimalstelle. Da die Stufe eins, Stufe zwei, Stufe drei ist , brauchen wir hier nicht wirklich eine Dezimalstelle. Stattdessen können Sie eine Ganzzahl verwenden, die eine Zahl ohne Dezimalstelle ist , wie Sie hier sehen können. Verwenden Sie eine Ganzzahl als Ebene und erstellen Sie dann eine neue. Und wir brauchen den Namen des Feindes. Der Name des Feindes ist wieder eine Zeichenfolge. Auf welchem Level oder welcher Feind auf welchem Level spawnt, müssen wir das Level schreiben Level eins ist zum Beispiel Level zwei ist der Orcam, Level drei ist der Krieger und so weiter Das müssen wir später definieren. Jetzt haben wir die Struktur dafür. Wir haben die Struktur für die Level-Informationen. Wir haben die Struktur für die Feindinformationen. In der nächsten Lektion wollen wir etwas über die Aufzählung lernen, damit wir diesen Feindtyp hier beenden können 28. 4.08 Den Feindtyp Enum erstellen: In Ordnung, schauen wir uns die Aufzählungen an. Weil hier in der Struktur. Wenn ich also zu den Strukturen zurückkehre und die Feindinformationen öffne, haben wir das als Feindtyp bezeichnet. Wir müssen definieren, was es ist, und wir müssen eine Aufzählung erstellen Jetzt könnten wir einfach hier für den Feindtyp klicken und eine Zeichenfolge erstellen Jetzt können wir hier definieren, ob dieser Feind ein normaler Feind ist oder ob dieser Feind ein Feind im Spiel ist. Ich möchte normale Feinde und Feinde haben , die Bosse sind Okay? Anstatt eine Zeichenfolge zu erstellen und sie hier zu schreiben, ist es besser, eine Aufzählung zu erstellen. Mal sehen, was es ist Lass uns zu Blueprints gehen. Klicken Sie mit der rechten Maustaste, erstellen Sie einen neuen Ordner, nennen Sie ihn Oms. Lass es uns hier öffnen. Klicken wir mit der rechten Maustaste auf „ Gehe zu Blueprints“. Und Sie haben diese Methode, die als Aufzählung bezeichnet wird . Fahren Sie fort und klicken Sie darauf Nennen wir es Feindtyp. Lass es uns öffnen. O Enumeration, sehr einfach, ist nur eine Liste von allem, was Sie erstellen möchten Es kann eine Liste von Lebensmitteln sein, zum Beispiel Tomaten, zum Beispiel Tomaten, Cola, Ketch Up, was auch immer Es kann eine Liste von allem sein, indem ein Listenelement hinzugefügt wird, und Sie können alles hineinschreiben Es kann auch eine Liste von Waffen sein , die du für einen Ego-Shooter baust. Es kann AK 47 sein, es kann eine 41 sein, es kann ein Deagle sein und was auch immer Sie aufzählen wollen , es ist einfach nur eine Liste von Gegenständen In diesem Fall möchte ich eine Liste des Feindes oder des Feindtyps für unsere Feinde erstellen oder des Feindtyps für unsere Feinde Wir haben normale Feinde Wenn ich wieder hier klicke und wir haben Boss-Feinde, kannst du auch andere Typen erstellen , wenn du ein größeres Spiel hast, wenn du schon deine Idee für dein Spiel hast. Du kannst zum Beispiel legendäre Gegner, Loops, legendäre Gegner haben . Du kannst auch epische Feinde haben und so weiter. Du kannst also mehr Feinde haben, aber für mich habe ich nur normale Feinde und Bossfeinde, die wir retten können. Lassen Sie uns nun diese Liste schließen. Jetzt kann ich hier im Typ danach suchen. Wenn ich für den Feindtyp darauf klicke, suche ich nach dem Feindtyp, das ist meine Aufzählung und ich kann weitermachen und darauf klicken und speichern. Jetzt haben wir diesen Feindtyp, und wenn du auf die Standardwerte klickst, kannst du hier sehen, dass er besser ist als eine Zeichenfolge, denn jetzt hast du eine Liste, aus der du auswählen kannst, was sehr cool ist Das ist viel besser, als das Ding ständig abzutippen . Wir können es jetzt aus der Liste auswählen , ob es ein Boss ist oder ob es ein normaler Boss ist. Okay, wir müssen hier nicht wirklich etwas definieren, denn für jeden einzelnen Feind werden sie alle ihre eigenen Informationen haben. Für all diese Dinge müssen wir uns vorerst nicht auf die Standardwerte konzentrieren. Mach weiter und speichere alles. Und das war's mit den Aufzählungen. Fahren wir mit der nächsten Lektion fort. 29. 4.09 Einführung in Datentabellen: Ordnung, bevor wir fortfahren, möchte ich Ihnen die Datentabellen vorstellen Nachdem wir unsere Strukturen erstellt haben , müssen wir auch Datentabellen erstellen. Wenn ich zum Ordner Blueprints gehe, klicke ich mit der rechten Maustaste auf Neuen Ordner erstellen und nenne diesen Ordner Datentabellen Ich klicke hier, mit der rechten Maustaste. Jetzt sind die Datentabellen nicht mehr in den Blueprints enthalten. Es ist tatsächlich hier unten im Verschiedenes und Sie können es hier finden, Datentabelle Du klickst darauf und wählst aus, von welcher Struktur du sprichst. Ich möchte nur eine für meine Feindinformationen erstellen, wir müssen auch eine für die Levelinformationen erstellen. Aber lass uns einfach einen für die Feindinformation machen. Klicken Sie vorerst auf. Okay, nennen wir es zum Beispiel DT meine Infodatentabelle. Meine Informationen. Und lass es uns öffnen. Okay, was ist eine Datentabelle? Eine Datentabelle ist diejenige , die tatsächlich jeden einzelnen Feind definiert. Zum Beispiel die Leerlaufanimation, die Trefferanimation usw. Also haben wir eine Struktur erstellt, aber jeder einzelne Feind hat seine eigenen Werte dieser Variablen in der Datentabelle. Ich kann hier in der Zeile auf D klicken. Sie können hier sehen, dass dies die neue Zeile ist. Und du kannst sogar den Namen für die Zeile ändern , zum Beispiel den Zeilennamen, du kannst sie einfach so nennen oder was auch immer du willst. zum Beispiel für den ersten Charakter Wenn ich zum Beispiel für den ersten Charakter zu Assets-Charakteren gehe, ist der erste Charakter die Nacht. Was ich zum Beispiel tun kann, ist, dass ich hier die Klasse des Abends auswählen kann . Und ich kann auswählen, welche Art von Feind die Nacht ist. Es ist ein normaler Feind. Wie viel hat er? Nehmen wir an, es hat 100 Lebenspunkte. Jetzt muss ich die Edlin Imation dafür auswählen. Ich muss die Hid-Animation dafür auswählen, und ich muss auch die Todesanimation dafür auswählen Jetzt habe ich all diese Informationen und kann wieder auf das Plus klicken. Für den nächsten möchte ich zum Beispiel mein Oder definieren. Ich kann schreiben, dieser Typ heißt Ork. Es ist die BP Or-Klasse. Zum Beispiel ein Boss, er hat 500 Lebenspunkte und das sind alle Animationen dafür und so weiter. Jeder einzelne Feind hat also seine eigenen Werte und du kannst sie jetzt nutzen, um es viel schneller zu machen. Anstatt dies in der Engine zu tun, können wir es in Google Sheets tun. In einem Google-Blatt können wir das viel schneller machen. Und auch Leute, die keine Spieleentwickler sind , können dort arbeiten, zum Beispiel Spieledesigner. Gehen wir zur nächsten Lektion über und schauen wir uns an, wie wir das in Google Sheets machen können. 30. 4.10 Level-Info und Feind-Info-Datentabellen: Ordnung, lassen Sie uns weitermachen und Google innerhalb von Google öffnen, direkt in Ihrem Laufwerk Und du kannst es hier in Drive finden. Gehen Sie einfach in Ihr Laufwerk, klicken Sie mit der rechten Maustaste auf eine beliebige Stelle, machen Sie eine neue Faltung oder was auch immer. Aber erstelle hier ein Google Sheets und erstelle eines. Ich nenne diesen einen beleuchteten Tisch oder was auch immer. Du kannst es nennen, wie du willst. Okay, hier klicke ich gerne auf Control, um alles auszuwählen. Ziehe die Spalten einfach nach unten damit ich mehr Platz zum Arbeiten und Steuern habe. Wähle alles aus und mache daraus eine Wähle alles aus und mache daraus andere Schrift, auf die ich hier klicken kann, horizontale Linie, Mitte, diese und diese. Ich fange einfach damit an und wähle den oberen Teil aus und klicke auf Fett. Jetzt bin ich bereit, mein Dokument zu verwenden. Jetzt ist das alles optional. Sie müssen das alles nicht wirklich tun. Was ich hier zuerst tun muss, ist die ID zu schreiben. Wir brauchen eine ID, weil man in Unreal Engine eine ID haben muss können Sie nicht wirklich, das ist die ID, der Name Ron, Sie können dieses Google-Sheet nicht wirklich verwenden . Wenn du keinen Ausweis hast. Das ist notwendig. Wir müssen alle Variablen für unsere Struktur schreiben. Wenn ich zurückgehe und meine Feindinformationen öffne, muss ich das hier schreiben. Ich muss den Namen schreiben, Typ Feind. Lass uns wieder hierher gehen. Feindtyp, du musst es speziell so schreiben. Du kannst es nicht anders schreiben. Du musst es genau so schreiben , wie du es geschrieben hast. Drinnen hier. Inaktiv, schlag ihn. Das ist falsch, Gesundheit, untätig, und der letzte ist Tod. Okay. Jetzt haben wir das. Jetzt können wir die Informationen hier unten definieren. der ersten, die ich habe, habe ich mir das nur durch den Kopf gedacht. Der erste, den ich hier schreiben möchte, ist der Oder. Der zweite ist der Schurke. Jetzt kannst du diese Feinde in beliebiger Reihenfolge haben in beliebiger Reihenfolge haben Du musst die Reihenfolge nicht wie ich haben, aber ich will sie so haben oder Sam, wir haben den Zauberer. Dann haben wir das Skeleton. Dann haben wir Skeleton, Roe, Skeleton Warrior wie diesen und Skeleton Mag. Dann haben wir The Roe und The Night. Wir haben 11 Charaktere, die alle hier sind. Sie müssen es nicht in derselben Reihenfolge haben. Aber ich dachte einfach, das wäre eine Sequenz, vielleicht für die ID. Ich kopiere das hier einfach so, weil es nicht wirklich wichtig ist. Die ID ist einfach, dass sie da sein muss, damit sie funktioniert. Wir müssen einfach den Namen der Klasse kopieren und einfügen . Wir müssen definieren, was die Klasse ist. Wie bekommen wir nun diese feindliche Basisklasse? Weil wir müssen, klickst du darauf. Auch hier müssen wir diese Klasse definieren. Was Sie tun können, ist diese Datentabelle mit feindlichen Informationen hier drin zu verwenden . Erstellen Sie hier einfach eine neue Zeile. Und was du tun kannst, ist klicken, der erste ist der Ork. Für mich kann ich den Ork auswählen, ich kann schreiben, hier klicken und eine Kopie schreiben. Oder klicken Sie auf Kopieren Jetzt kann ich meine Datentabelle öffnen und auf meiner Tastatur auf Strg V klicken, um sie einzufügen. Und hier haben wir es. Ich werde es nur ein bisschen größer machen , damit du es so sehen kannst. Jetzt haben wir es also hier drin. Jetzt können Sie als Nächstes das Or Roe nehmen. Ich kann das Roe erneut auswählen, rechten Maustaste auf Kopieren klicken oder Sie können die Tastenkombination drücken , indem Sie die Umschalttaste gedrückt halten und rechten Maustaste klicken, um es zu kopieren. Dann kann ich es hier einfach so einfügen. Oder was Sie tun können, ist, dass Sie diesen auch einfach kopieren können. Fügen Sie es hier ein und ändern Sie es. Oder zu oder Shaman für diesen Fall auch daran denken, hier zu wechseln oder Shaman, du kannst es auf beide Arten tun Jetzt ist es für mich viel schneller, einfach Aria auszuwählen. Halten Sie zum Beispiel die Umschalttaste gedrückt und klicken Sie mit der rechten Maustaste, um Steuerung V zu kopieren und hier einzufügen Und mach das auch für den Zauberer, so und so weiter. Ich mache es einfach für die. Du kannst das alles selbst als Übung machen. Nun zum Feindtyp: Wir haben entweder normale Gegner oder Busgegner. Dieser ist normal und ich werde ihn einfach hier kopieren und einfügen. Und ich denke, der Zauberer, wir können so einen Boss machen. Sie können auswählen, welche normale Feinde sind , und Bossgegner geben ihnen die Gesundheit. Für die Gesundheit würde ich gerne einfach eine Formel schreiben, zum Beispiel gleichwertig machen . Fangen wir bei diesem mit 100 an. Schreiben Sie eigentlich einfach 100 für diesen. Wir brauchen keine Formel für die erste, aber wenn die zweite dieser entspricht , kannst du hier klicken. Multipliziert mit 1,2 wird das automatisch berechnet Und ich kann darauf klicken und es bis zum letzten Punkt nach unten ziehen bis zum letzten Punkt nach unten Ich kann es hier oben auswählen und auf diese Schaltfläche klicken , um die Dezimalstellen zu entfernen. Auf diese Weise können Sie auch die Gesundheit verbessern. Du kannst es zum Beispiel mit 1,5 multiplizieren, du kannst es hierher ziehen , wir haben viel mehr Gesundheit, einfach so. Zum Beispiel können Sie für die Animation, genau wie zuvor, für die Adline-Maschine für die Adline-Maschine hier die Outline-Maschine auswählen Oder machen wir es stattdessen hier unten, für die Adline Mal sehen, der erste war der, wenn ich das schließe und den einen finde, kannst du mit der rechten Maustaste klicken und die Referenz kopieren Diese Referenz kopieren, ich gehe zurück und klicke auf Strg V und füge sie hier ein. Für diese kannst du sie vielleicht auf diese Weise etwas größer machen . Hier ist es. Nun zur Trefferanimation Ich kann mit der rechten Maustaste auf meinen Treffer klicken und die Referenz kopieren. Ich kann es hier für den Tod einfügen, ich kann mit der rechten Maustaste auf Referenz kopieren klicken. Dann kann ich es hier einfügen. Jetzt zeige ich es dir auch hier. Und ich werde das alles alleine machen. Hier, Rogue, kann ich auf Referenzen kopieren klicken. Klicken Sie mit der rechten Maustaste auf, klicken Sie auf eins, fügen Sie es hier ein. Und klicken Sie mit der rechten Maustaste auf den Rogue. Kopieren Sie die Referenz und fügen Sie sie in die endgültige ein. So fügen Sie all das hinzu und wieder, oder die Klasse geht zur Datentabelle über und kopiert die Klasse. Oder du kannst diesen Teil hier einfach in den Namen des Charakters ändern und du kannst definieren, ob es sich um des Charakters ändern und du kannst definieren, ob einen normalen oder einen Bossfeind handelt. In Ordnung, also hier habe ich meine Datentabelle fertiggestellt. Alle Informationen sind hier, hier unten. Ich gebe ihm nur gerne einen Namen. Nennen wir es DT me info. Lassen Sie uns auch eine neue Datentabelle erstellen. Ich klicke auf das Plus hier unten auf den Blättern und erstelle eine neue Datentabelle. Eigentlich löschen wir einfach diesen. Lass mich es einfach duplizieren, damit ich es nicht noch einmal mit der Schrift formatieren muss und so weiter. Klicken Sie mit der rechten Maustaste, das wurde dupliziert und lassen Sie uns eine Information zur DT-Ebene hinzufügen Dafür lösche ich alles, drücke mit einem Klick auf Löschen Dafür brauchen wir die ID, wir brauchen auch das Level. Denken Sie daran, dass Sie jederzeit zu Ihrer Struktur zurückkehren und die Level-Informationen öffnen können. Wir brauchen das Level und den Namen des Feindes. Wir öffnen es hier, wir brauchen das Level und den Namen des Feindes. Ich werde es hier nur kleiner machen, brauche nicht den ganzen Platz. Und es auf diese Weise auch für den Ausweis kleiner machen. Jetzt kopiere ich einfach die Level hier und füge sie ein. Level 1234, wir haben 11 Feinde. Ich klicke einfach und ziehe es nach unten bis 11. Ich werde das einfach kopieren und hier für den Namen des Feindes einfügen. Wir können im Grunde zu den Feindinformationen gehen, all das kopieren und wir können es auch hier einfügen. Wir müssen auf Stufe eins die Spanne auf Stufe zwei finden , den Roll-Spawn Wenn das E erscheint, müssen wir die Gesundheit der Schurken, den Gegnertyp der Büste, die Adle-Animation und all diese Informationen finden Gegnertyp der Büste, die Adle-Animation und Hier verwenden wir das um auszuwählen, welcher Feind auf einer Ebene erscheinen soll Wenn der Feind erscheint, haben wir die Informationen über diesen Feind , die wir verwenden können Mach weiter und automatisches Speichern kann hier nicht wirklich speichern. Lass uns weitermachen und auf Herunterladen klicken. Und lade es als CSV-Datei herunter, lade die Feindinformationen herunter und gehe auch zu den Level-Informationen. Klicke auf Datei und lade sie als CSV-Datei herunter. Wenn Sie jetzt Ihren Download-Ordner öffnen , sind sie hier. Ich werde sie umbenennen, es heißt nur T Level Info und ich benenne diese auch in T Enemy Info Bevor wir das tun, vergewissere dich einfach, dass im Inneren der Engine, wenn ich zurückgehe und das alles schließe, vergewissere dich, dass du in den Datentabellen die Feindinformationen hast und sie leer Ich werde diesen löschen. Klicken Sie auf Speichern. Ich muss auch einen für die Level-Info erstellen. Klicken Sie mit der rechten Maustaste. Gehen Sie zur Tabelle mit verschiedenen Daten, wählen Sie die Ebeneninformationen aus, klicken Sie auf OK und nennen Sie sie T-Ebeneninformationen. Ich habe diese, und was Sie tun müssen, ist beide anzuklicken, sie hierher zu ziehen und sie dort abzulegen, und sie sollten erfolgreich importiert werden. Wenn Sie nun in einem der Namen eine Ära definiert haben , wenn Sie zum Beispiel hier eine Ära im Namen des Feindes gemacht haben , nehmen wir an, Sie haben Feindname ohne E geschrieben. Das wird Ihnen sagen , dass es in Ihrer Datentabelle eine Ära gibt. Und keine Sorge, du kannst es hier im Grunde korrigieren, es erneut herunterladen und es einfach anklicken und hierher ziehen. Wenn du jetzt die Tabelle mit den Feindinformationen öffnest, hast du hier auch alle Informationen über jeden einzelnen Charakter, wie viel Gesundheit er hat, über jeden einzelnen Charakter, wie viel Gesundheit er hat, welchen Feindtyp er hat und alle seine Animationen. 31. 4.11 Einführung in Bibliotheken: In Ordnung, jetzt sind wir mit den Datentabellen fertig. Lassen Sie uns weitermachen und uns die Bibliotheken ansehen. Dies ist der letzte Schritt, bevor wir alles fertigstellen und den Feind spawnen Schauen wir uns das jetzt an und erstellen wir einen neuen Ordner. Nennen wir das Bibliotheken. Wenn ich Bibliotheken wieder einfach so buchstabieren kann, gehen wir jetzt in diesen Ordner. Klicken wir mit der rechten Maustaste und gehen wir zu Blueprint. Und Sie sehen diese Bibliothek, die als Blueprint-Funktionsbibliothek und als Blueprint-Makrobibliothek bezeichnet als Blueprint-Funktionsbibliothek und als Blueprint-Makrobibliothek und als Blueprint-Makrobibliothek Jetzt arbeiten wir mit Funktionen. Lassen Sie uns einfach eine Blueprint-Funktionsbibliothek erstellen. Und ich werde sie BP-Funktionsbibliothek nennen, weil ich normalerweise nur eine in meinem Spiel habe Also werde ich es einfach Funktionsbibliothek nennen. Öffnen Sie es jetzt in dieser Bibliothek. Sie können sehen, dass es sich, wie der Name schon sagt, im Grunde um eine Funktionsbibliothek handelt. Sie können hier also viele Funktionen erstellen. Das Gute an einer Funktionsbibliothek sind die Funktionen, die Sie hier erstellen. Sie können sie global für alle Blueprints verwenden. Lass uns einfach zum Spaß einen erstellen. Rufen wir zum Beispiel Funktion Get Health Test auf. Wir werden es nicht verwenden, aber wenn ich auf Kompilieren klicke. Wenn ich das nun minimiere und zum Beispiel einen anderen Blueprint öffne , öffnen wir den Spielmodus Hier drin kann ich schreiben, klicken und Get Health sagen Hier kannst du sehen, dass es aus meiner Funktionsbibliothek stammt. Wir müssen keine Blueprint-Schnittstellen und was auch immer erstellen. Wir können einfach schreiben, auf Get Health klicken, wir können diese Funktion verwenden Nun könnten Sie versucht sein, all Ihre Funktionen hier zu erstellen Denn vielleicht denkst du, warum erstelle ich überhaupt Blueprint-Schnittstellen und rufe sie Warum erstelle ich sie nicht einfach in einer Funktionsbibliothek Das liegt daran, dass das Spiel langsamer wird. Wie ich recherchiert habe, wird Ihr Spiel langsamer, wenn Ihre Funktionsbibliothek zu groß ist Benutze es, wann immer es Sinn macht. Füge hier nicht einfach Funktionen hinzu, denn wenn das zu groß ist, wird dein Spiel auch etwas langsamer. Benutze es einfach, wann immer es Sinn macht. Was ich normalerweise mache, verwende ich normalerweise immer dann, wenn ich Datentabellen erstelle, weil ich das in vielen Bauplänen verwenden muss in vielen Bauplänen Vielleicht kannst du es dir so vorstellen. Wenn Sie eine Funktion haben , die Sie in fast jedem einzelnen Blueprint verwenden müssen in fast jedem einzelnen Blueprint verwenden Zum Beispiel, um die Feindinformationen hier abzurufen. Dann ist es besser, es in einer Funktionsbibliothek zu erstellen , damit Sie in jedem Blueprint einfach darauf zugreifen können in jedem Blueprint einfach darauf zugreifen Normalerweise verwende ich es immer dann, wenn ich Strukturen und Datentabellen erstelle, und ich brauche diese Informationen, ich erstelle sie innerhalb von Funktionsbibliotheken Lass uns weitermachen und das löschen. Lassen Sie uns alles kompilieren und speichern. Und jetzt sind wir bereit, mit der nächsten Lektion fortzufahren. 32. 4.12 Erstellen der Bibliotheksfunktionen: Lassen Sie uns weitermachen und die Funktionsbibliotheken erstellen. Lass uns auf Ad klicken und hier eine Funktion erstellen. Die erste, die wir erstellen werden, dient der Feindinformation. Für diesen werde ich sagen bevor ich es wieder vergesse, lass mich einfach hier oben in den Tools Debug klicken , was Reflektor ist, und daraus Lodgust machen Wir können hier drinnen einfach besser sehen. Wie ich es nennen werde, ich nenne es „ Feindinformationen abrufen“. Und ich werde auch eine neue Funktion erstellen, eine neue Funktion namens Get Level Info. Wir brauchen die beiden. Fangen wir mit dem ersten an. Was wir tun müssen, ist mit der rechten Maustaste zu klicken und zu sagen, hol dir einen Tisch. Du siehst diesen hier unten. Zeile in der Datentabelle abrufen. Das ist die Funktion, die wir versuchen zu verwenden. Wir versuchen aus einem Namen eine Datentabellenzeile hier, aus einem Namen eine Datentabellenzeile abzurufen, damit wir die Informationen verwenden können. Lassen Sie uns weitermachen und es wird viel besser zu verstehen sein , wenn wir fertig sind. Sehen wir uns nun die Datentabelle an, wir sprechen über diese, in diesem Fall sind es die Feindinformationen. Lassen Sie uns die NM-Informationen für diesen Zeilennamen auswählen. Bevor wir es hier einfügen, klicke ich normalerweise gerne mit der rechten Maustaste und sage: Lass uns hier zuerst eine Zeichenfolge hinzufügen. Hinzufügen einer Eingabe und einer Zeichenfolge. Mach weiter und mach das. Hier benötigen wir die Eingabe des Feindesnamens. Denn wenn Sie zu Ihrer Datentabelle zurückkehren, sind dies die Namen der Feinde. Wir benötigen die Eingabe eines Feindesnamens. Aus diesem Namen wird es diese Information extrahieren, diese Zeile hier. Gehen wir von hier zurück. Bevor ich es anschließe verwende ich gerne die Ersetzungsfunktion . Bei einer Ersetzungsfunktion ist das, was sie tut, hier im Formular, Sie werden ein Leerzeichen wie dieses schreiben. Sie haben hier ein kleines Leerzeichen, wie Sie an den beiden sehen können. Du machst gar nichts. Du hast einen Platz hier oben und du hast nichts hier. Das bedeutet, dass dieser Name hier verwendet wird , wenn Sie ein Leerzeichen haben, denn wie Sie im Zeilennamen sehen können, können Sie kein Leerzeichen haben. Die Nal-Engine akzeptiert nicht, dass Sie ein Leerzeichen im Zeilennamen haben . Und das ist es. Das ist der Zeilenname. Sie müssen Informationen extrahieren, wenn Sie ihm einen Feindnamen geben und der Feindname später ein Leerzeichen hat . Ich werde Ihnen später zeigen, wie das geht. Wenn es ein Leerzeichen hat, wird es nicht lesen, es wird sich reissen. Was ich gerne mache, ist der Name des Feindes. Ich möchte das Leerzeichen entfernen, bevor ich etwas unternehme Dann kann ich das einfach hierher ziehen und es wird diese Zeichenfolge in eine Namensvariable umwandeln. Wir können das verbinden, dann können wir hierher ziehen und Return sagen , weil wir für diese Funktion einen Rückgabeknoten benötigen . Für den Rückkehrknoten werden diese feindlichen Informationsdaten ausgegeben. Nennen wir das eine Feindinformation und lassen Sie uns kompilieren. Und jetzt sind wir mit diesem fertig. So sieht es aus. Wir bekommen den Namen des Feindes, dann extrahieren wir diese Information. Nehmen wir zum Beispiel an, der Name des Feindes ist Skeleton Rogue, wodurch das Leerzeichen entfernt wird, sodass er tatsächlich von hier aus lesen kann Dann wird es all diese Informationen für Sie abrufen und es wird sie hier einlesen, damit Sie sie verwenden können Lassen Sie uns das auch für die Level-Informationen tun. Nun zu den Level-Informationen, du kannst es selbst machen, wenn du etwas anderes üben möchtest . Lass es uns zusammen machen, wenn du mehr Übung brauchst. Okay, lassen Sie uns hier mit der rechten Maustaste klicken, um eine Tabellenzeile nur für die Level-Informationen zu erhalten. Wenn Sie zu den Ebeneninformationen zurückkehren, sind die Ebeneninformationen Zahlen. Wir brauchen eine Zahl statt einer Zeichenfolge. Hier drüben werde ich Plus sagen. Und nehmen wir hier eine Ganzzahl. Nehmen wir für die Ganzzahl eine Ebene an. Lass uns weitermachen und es verbinden. In diesem Fall müssen wir nicht wirklich alles ersetzen, weil es nur eine Zahl ist. Und wir können das einfach in den Namen ziehen . Jetzt konvertiert es es nicht automatisch für uns, das liegt daran, dass es nur die Zeichenfolge konvertiert. Lassen Sie uns zwei Zeichenketten erstellen und diese auswählen. Und dann fahren Sie fort und ziehen Sie es hinein und es wird es für Sie konvertieren wieder einen Rückknoten erstellen. Bevor wir etwas tun, können Sie sehen, dass es grau ist. Das liegt daran, dass wir hier nichts ausgewählt haben. Wählen wir die Level-Informationen und fügen sie hier ein. Und nennen wir es Level-Info. Lassen Sie uns alles kompilieren und speichern. Wenn wir nun zum Beispiel versuchen, sie im Spielmodus zu verwenden , löschen wir get health. Das war eine alte Version für die Feindinformationen, die wir schreiben können, um Feindinformationen abzurufen. Und hier kannst du es sehen. Jetzt haben wir diese Funktion, die wir verwenden können, und wir haben die Feindinformationen. Im Grunde kannst du von hier aus ziehen und Pause sagen. Sie teilen diese Struktur in mehrere Pins auf, die Sie hier sehen können. Dies sind alle Variablen, die Sie hier in Ihrer Struktur erstellt haben. Dies sind alle Variablen, die Sie jetzt erstellt haben . Sie können jetzt von Ihnen verwendet werden. Sie können den Namen des Feindes, die Klasse, den Feindtyp, die Gesundheit des Feindes usw. angeben. Hier erhalten Sie im Grunde Informationen, Sie benötigen diese Hinrichtungsstifte nicht. Wie Sie sehen können, sind einige Funktionen grün. Sie sind nicht blau. Sie sind grün. Das liegt daran, dass sie im Grunde Informationen erhalten. Dieser sorgt für eine Transformation der Schauspieler. Wenn Sie einfach hier klicken, finden Sie Acta in Ihrer Nähe Es geht nicht wirklich darum, irgendwelche Informationen einzustellen, es geht nur darum, Informationen für Sie zu bekommen Wenn Sie Informationen erhalten, benötigen Sie diese Ausführungs-Pins nicht. Gehen wir zurück zur Funktionsbibliothek. Lass uns auf die Feindinformationen klicken und diese auf Pure setzen. Lass uns auch auf die Level-Info klicken und sie auf Pure setzen. Gehen wir jetzt zurück, und hier können Sie sehen wir es in eine grüne Funktion umgewandelt haben. Wir bekommen im Grunde nur Informationen. Wir bekommen Informationen über den Feind und sie benötigen den Namen des Feindes. Wenn wir dann den Namen des Feindes eingeben, zum Beispiel Skeleton Mage, schreibe ich hier ein Leerzeichen. Ich kann es einfach ganz normal schreiben, Skeleton Mage hier drinnen. Es wird das Leerzeichen automatisch entfernen , da wir einen Ersatz hinzugefügt haben. Wenn du es einfach so ohne Leerzeichen schreibst , ist es nicht wirklich wichtig. Es findet keine Leerzeichen. Es wird einfach weitergehen. Es ist eine Präferenz, aber normalerweise würde ich die Namen gerne komplett so schreiben. Dann kannst du von hier aus schreiben, Pause schreiben und schon hast du die Informationen über den Feind. So benutzt du es. Das Gleiche gilt für die Level-Informationen. Wenn Sie Level-Informationen abrufen sagen , fügen Sie ein Level ein, zum Beispiel Level drei, und Sie brechen diese Information. Und jetzt weißt du ab Stufe drei, dass du weißt, welcher Feind erscheinen wird. Denn in deiner Datentabelle auf Stufe drei hast du ihm gesagt, dass der Auktoman Jetzt weißt du, dass der Auktoman spawnen sollte. Und du kannst es quasi hier einstecken, jetzt kannst du sehen, wie du sie miteinander verbinden kannst Aber lassen Sie uns das vorerst löschen. Lassen Sie uns kompilieren und fahren wir mit der nächsten Lektion fort. 33. 4.13 Die Namen des Feindes hinzufügen: Ordnung, jetzt müssen wir die Namen der Feinde hinzufügen, weil wir diese Namen benötigen, um Informationen aus der Datentabelle mit feindlichen Informationen in den Bibliotheken zu extrahieren der Datentabelle mit feindlichen Informationen in den , die wir gerade hier erstellt Aber wir müssen die Namen der Feinde eingeben, wir müssen die Namen für jeden Feind hinzufügen. Wir machen das, indem wir zu den Feinden und hier in der feindlichen Basis zurückkehren . Öffnen wir das. Öffnen Sie hier den vollständigen Blueprint-Editor. Lassen Sie uns zum Beispiel eine Variable namens Name erstellen, oder Sie können sie Feindname nennen. Das ist in Ordnung. Ich werde daraus eine Schnur machen. Mach weiter und kompiliere. Und denk dran, wenn du eine Variable innerhalb der feindlichen Basis erstellst , sind das alles Kinder der feindlichen Basis. Wenn du hier eine Variable erstellst, werden sie auch für alle erstellt. Lass uns den ersten öffnen. Öffnen Sie den vollständigen Blueprint-Editor und die Standardwerte der Klasse Sehen wir uns hier die Klassenstandardwerte an. Wenn wir hier nach unten scrollen, können Sie die von uns erstellte Namensvariable sehen Jetzt kannst du diesem Charakter einen Namen geben. Nennen wir das zum Beispiel eine Nacht. Lass uns jetzt den nächsten öffnen. Es ist der Ork. den vollständigen Blueprint-Editor zu öffnen, können Sie es auch hier unten tun , um Ihnen das Detailfenster zu zeigen Dieser ist der Ork, der nächste ist der Schurke, der nächste ist der Schamane, und dann haben wir den und dann haben wir Dann haben wir den Schurkenzauber. Korrekt. Nun, wenn Sie es falsch buchstabieren, wird es nicht in der Lage sein , die Informationen aus der Datentabelle zu extrahieren. Manchmal, wenn etwas nicht funktioniert, werden keine Informationen extrahiert Stellen Sie einfach sicher, dass Sie diesen Namen richtig geschrieben haben. Da dieser Name mit dem übereinstimmen muss was Sie hier geschrieben haben , werden diese Informationen von hier extrahiert. Wie ich Ihnen bereits gesagt habe, können Sie ein Leerzeichen erstellen, weil wir das ersetzt haben. Es spielt keine Rolle, ob Sie ein Leerzeichen erstellen, es wird das Leerzeichen für Sie entfernen. Deshalb habe ich den Ersatz hier hinzugefügt. Das ist ein Skelettmagier. Ich gehe zurück zu den Feinden und öffne den nächsten , Skeleton Rogue Dann haben wir das Skelett wie dieses. Dann haben wir den Zauberer. Jetzt haben wir sie alle und gehen raus und klicken bei jedem von ihnen auf Kompilieren. Dann bist du hier fertig. Jetzt haben sie alle Namen. Jetzt funktioniert es so, dass es den Namen des Feindes annehmen wird . Zum Beispiel wird dieser Typ hier Krieger genannt. Das ist ein Krieger, er wird hier seinen Namen annehmen, ein Krieger. Und es nimmt diese Informationen und dann weiß es, welche Informationen der Krieger hat. Deshalb haben wir den Namen hinzugefügt. Wir werden ihn benutzen. Lassen Sie uns alles schließen und mit der nächsten Lektion fortfahren. 34. 4.14 Den Feind spawnen: Lass uns jetzt weitermachen und den Feind spawnen. Lass uns zum Spielmodus zurückkehren. Hier haben wir das letzte Mal aufgehört. Denkt daran, dass wir die Schauspielertransformation für den Spawn-Punkt haben für den Spawn-Punkt Wir wissen im Grunde, wo wir den Feind spawnen müssen. Lassen Sie uns jetzt weitermachen und ihm sagen, welcher Feind auf welchem Level erscheinen soll Jetzt haben wir diese Informationen, weil wir die Funktionsbibliotheken jetzt hier erstellt haben. Lassen Sie uns mit der rechten Maustaste klicken und sagen wir, wir benötigen tatsächlich die aktuelle Ebene und wir haben sie nicht als Variable Ich werde es im Spielmodus erstellen , weil es am sinnvollsten ist. Denken Sie daran, dass der Spielmodus die Spielregeln bestimmt. Er weiß, wie hoch das aktuelle Level ist. Lassen Sie uns eine neue Variable erstellen. Es ist eine Ganzzahl, weil es nur eine Zahl ist. Nennen wir es aktuelles Niveau. Lassen Sie uns kompilieren , weil wir den Standardwert sehen müssen. Lassen Sie uns für den Standardwert kompilieren. Wir beginnen auf Stufe eins. Ich werde das auf Stufe eins ändern. Lass uns das hier reinschlagen. Okay. Wir wollen damit arbeiten, Feindinformationen zu bekommen, weil wir die feindliche Klasse hier brauchen. Stecken Sie T ein und sagen Sie Pause. Nun zu dem Kurs, an den wir es hier anschließen können. Wenn du nicht all diese anderen Pins sehen möchtest, kannst du darauf klicken und „Nicht verbundene Pins ausblenden“ sagen Was nun den Namen des Feindes angeht, denkt daran, dass wir eine andere Funktion namens Levelinformationen abrufen haben namens Levelinformationen abrufen Von hier aus kannst du sehen, welcher Feind auf welcher Stufe spawnen sollte Von hier aus kannst du wieder Pause sagen. Jetzt kannst du diesen Feindnamen verwenden. Wir müssen ihm das aktuelle Level geben. Jetzt ist alles gut. Wir können hier klicken, nicht verbundene Pins ausblenden und das dann nach unten ziehen Du kannst sie alle auswählen und Q auf deiner Tastatur drücken , um sie wie folgt zu glätten Okay, lass uns das hier hinstellen. Und stell das hier hin. Und jetzt wird es funktionieren. Wie Sie sehen können, haben wir das aktuelle Level, wir bekommen die Informationen für Level eins. Es geht in die Datentabelle, Level-Informationen, schaut sich Level eins an und dann weiß es, dass es der Ork ist , den es ausgeben wird, und den Namen des Feindes Und das wird mit den Feindinformationen verknüpft, wodurch dann Informationen aus den Feindinformationen extrahiert werden wodurch dann Informationen aus den Feindinformationen extrahiert Oder jetzt haben wir alle Informationen über den Ork, einschließlich dessen, was als letztes erscheinen soll Denken Sie daran, dass wir ihm in der Google-Tabelle gesagt haben, dass die Klasse, mit der er spawnen muss, BP Orc ist Es wird den BP Orc-Blueprint hervorbringen. Und hier spawnen wir den Feind. Wenn ich jetzt darauf doppelklicke, werde ich zum Player Controller weitergeleitet, wo wir dieses Event gemacht haben Es wird den Ork spawnen, und es wird auch das Or an dem Spawnpunkt und es wird auch das Or an dem Spawnpunkt spawnen, den Lass uns weitermachen und alles kompilieren und speichern. Lass uns auf Play klicken. Und jetzt können Sie sehen, dass es das Oder ist, wir können das testen. Wenn ich auf die aktuelle Ebene klicke, habe ich die aktuelle Ebene auf beispielsweise Stufe drei geändert . Auf Stufe drei sollte es den Schamanen spawnen. Wenn ich kompiliere, nach oben klicke und spiele, siehst du, dass es der Schamane ist, der Das funktioniert korrekt. Um es ein bisschen übersichtlicher zu machen, können wir das alles nehmen und ich kann mit der rechten Maustaste klicken und zu einer Funktion zusammenklappen. Ich werde einfach eine Funktion daraus machen , nur um es sauberer zu machen. Nennen wir diesen einen Feind zum Spawn oder zum aktuellen Level. Lassen Sie uns eine reine Funktion daraus machen, denn denken Sie daran, dass wir nur Informationen zur reinen Funktion bringen Lass uns umbenennen, lass uns hier doppelklicken. Ich werde das so nach unten verschieben. Nun zum ersten ist es der Feind. Also finden wir heraus , welcher Feind wir spawnen sollen. Die zweite hier ist die Spawn-Transformation, genau wie diese Lass uns alles kompilieren und speichern. Jetzt hier draußen ist es viel sauberer und wir haben diese Leitung nicht hier draußen. Alles sieht gut aus. Okay, so spawnt man Feinde. Lass uns auf das aktuelle Level klicken und es auf eine Standardeinstellung zurücksetzen Jetzt funktioniert es also. Und lass uns der nächsten Lektion weitermachen. 35. 5.01 Die Benutzeroberfläche für den Namen des Feindes entwerfen: Jetzt, da die Gegner auf der Karte korrekt spawnen, machen wir weiter und arbeiten mit der Benutzeroberfläche Wir haben noch keinen Ordner. Wenn ich zum Inhaltsordner gehe und mit der rechten Maustaste klicke und einen neuen Ordner erstelle, nennen wir diese eine Benutzeroberfläche innerhalb dieses Ordners. Lassen Sie uns mit der rechten Maustaste klicken und zur Benutzeroberfläche gehen und einen Widget-Blueprint erstellen Jetzt hier, fahren Sie einfach fort und wählen Sie hier oben das Benutzer-Widget aus. Nennen wir diesen einen Feindnamen. In dieser Lektion werden wir nur den Namen des Feindes zu einer sehr einfachen Benutzeroberfläche machen . Hier ist er. In einem großen Blueprint haben Sie das Viewport, auf das Sie klicken können. Klicken Sie mit der rechten Maustaste, halten Sie einfach die rechte Maustaste gedrückt und drehen Sie mit dem Stift herum, fast genau wie Und hier können Sie sehen, was Sie zu Ihren UI-Elementen hinzugefügt haben zu Ihren UI-Elementen hinzugefügt Hier sind alle Elemente, die Sie hinzufügen können. Auch hier haben Sie ein Detailfenster, genau wie hier, in dem Sie auf Dinge klicken, zum Beispiel den Text, und es werden Details zu dem Ding in einem Widget-Blueprint angezeigt in einem Widget-Blueprint Sie haben den Designer , wo Sie die Benutzeroberfläche entwerfen. Und Sie haben das Diagramm, in dem Sie Dinge auf der Benutzeroberfläche programmieren. Was passiert zum Beispiel, wenn Sie die Taste drücken? Wenn ich jetzt zum Designer zurückkehre, lassen Sie uns einfach den Text entwerfen. Es ist nur der Name des Feindes, also ist es nur ein Text. Aber bevor wir entwerfen, müssen wir eine Leinwand hinzufügen. Bevor Sie in der Benutzeroberfläche, in Unreal Engine, etwas tun , müssen Sie ein Canvas-Panel hinzufügen Klicken Sie hier, ziehen Sie es und legen Sie es hier oben ab Jetzt hast du diese Leinwand. Jetzt können wir Dinge hinzufügen. In diesem Fall benötigen wir beispielsweise nur dann einen Text, wenn Sie nur nach Text suchen. Oder du kannst auch einfach hier runter gehen, du findest ihn hier. Dies sind die häufigsten Elemente hier. Sie können sich auch einfach umklicken, um zu sehen, was es gibt. Wenn du willst, nur zum Üben, kannst du es jederzeit anklicken und hierher ziehen. Du kannst sehen, was es macht. Du kannst versuchen, mit einigen Einstellungen zu spielen, tut nicht weh. Wenn du mit dem Training fertig bist, kannst du einfach hier klicken und auf deiner Tastatur auf Löschen klicken und es wird gelöscht. Wir haben das Canvas-Panel, lassen Sie uns etwas Text darüber hinzufügen. Sie können es entweder hier oben hinzufügen oder Sie können es hier hinzufügen. Das ist dasselbe. Normalerweise ziehe ich , es stattdessen einfach per Drag & Drop hierher zu ziehen, aber das ist vorerst nicht wirklich wichtig. Für diesen Text brauchen wir nicht wirklich den ganzen Platz. Was ich tun werde, ist auf Vollbild zu klicken. Und dann wollte ich, dass es nur um diesen Text herum ausgefüllt wird. Jetzt können Sie sehen, dass es nicht mittig ist. Sie können sehen, dass das daran liegt, dass an dieser Ecke ein sogenannter Ankerpunkt verankert Und was das bedeutet, der Ankerpunkt, was er ist, ist, sagen wir, das ist dein Spielfenster, du spielst das Spiel Wenn du jetzt das Spielfenster neu skalierst, wird der Text nicht hier unten bleiben Es war deine Absicht , dass der Text hier unten bleiben sollte Wenn Sie das Fenster neu skalieren, bewegt sich der Text in Richtung dieses Ankerpunkts Wenn Sie beabsichtigen, dass der Text hier unten auf dem Bildschirm bleiben soll, dann tun Sie das falsch, weil er sich bei der Größenänderung des Bildschirms nur langsam in diese Richtung bewegt Es ist sehr wichtig, die Ankerpunkte richtig zu setzen. Nun zu diesem Ankerpunkt wollte ich ihn nur auf dem Text zentrieren. Ich werde auf meinem Bildschirm auf die Mitte klicken . Das ist dein Bildschirm. Ich werde es auf meinen Bildschirm zentrieren und 00 in die Position von X und Y schreiben. Wenn Sie jetzt 00 schreiben, springt der Ankerpunkt in die obere linke Ecke Um dieses Problem zu beheben, können Sie mit der Ausrichtung spielen. Hier können Sie sehen, dass 0,5 die Mitte und eine die andere Seite ist. Normalerweise ist es 0-1 in der Ausrichtung. Das Gleiche gilt für das Y. 0,5 ist in der Mitte und einer ist auf der anderen Seite, 0,5 und 0,5. Dadurch wird es zum Sensor hinzugefügt Jetzt kannst du meinen Text sehen, und so möchte ich ihn haben Okay, klicken Sie auf Kompilieren und speichern Sie alles. Lassen Sie uns das nun stilisieren. Aber bevor wir das tun, müssen Sie beim Entwerfen der Benutzeroberfläche innerhalb der Neural Engine sicherstellen, Entwerfen der Benutzeroberfläche innerhalb der Neural Engine sicherstellen, dass Ihre Benutzeroberfläche auf Laptops gut aussieht. Sie sieht auf Noble-Monitoren, 24-Zoll-Monitoren und 27-Zoll-Monitoren gut aus 24-Zoll-Monitoren und 27-Zoll-Monitoren Es muss zum Beispiel auch auf meinem Vier-K-Monitor gut aussehen. Wenn Sie es auf meinem Vier-K-Monitor nicht gut designen , könnte es so aussehen. Und ich werde eine schlechte Zeit haben, wenn ich dein Spiel spiele. Wie stellen wir sicher , dass die Benutzeroberfläche auf allen Bildschirmen gut bleibt ? Sie tun das, indem Sie hier oben auf die Bildschirmgröße klicken. Normalerweise entwerfe ich meine Spiele für ein generisches 14-Zoll-Notebook. Fahren Sie fort und klicken Sie darauf, und wird es aussehen. Achten Sie jetzt einfach auf den Zoom hier oben , damit Sie nicht herangezoomt sind, plus acht Wenn ich rauszoome, kannst du jetzt sehen, dass es auch minus zehn ist. Wenn du einfach zoomst, bis es 11 ist, dann sieht es auf einem Laptop tatsächlich so aus. Wie sieht es auf meinen vier Monitoren aus? Nun, wenn du hier unten auf diese Einstellungsschaltfläche klickst, dann kannst du sehen, wie stark sie skaliert. Im Moment entwerfen wir es für einen 14-Zoll-Laptop, aber auf meinem Bildschirm, auf einem Vier-K-Monitor, wird es die Benutzeroberfläche um das 3,8-fache skalieren. Es wird das 3,8-fache skaliert sein. Jetzt ist es zu viel. Lass uns das einfach herunterskalieren. Und ich kann dir zeigen, wenn ich hier auf der Skala Acht nach oben klicke, kannst du es anklicken und dann kannst du es hier reduzieren. Normalerweise finde ich es auf meinem Vier-K-Monitor gut. Wenn ich es auf 2,5 setze, wird es auf allen Bildschirmen gut skaliert. Es wird auf meinem Bildschirm nicht schlecht aussehen, denn für einen Laptop oder für meinen Vier-K-Monitor skaliert es um das 1,6-fache und es wird auf meinem Bildschirm gut aussehen. Das habe ich gefunden, es wird gut aussehen. Normalerweise sind drei zu groß. Auf meinem Vier-K-Monitor die USA zu groß. 2,5 ist wirklich gut. Okay, jetzt wird es auf allen Bildschirmen korrekt skaliert. Lass uns weitermachen und kompilieren und speichern. Klicken wir nun hier auf den Text. Und lass es uns ein bisschen stilisieren, oder? Wir stilisieren es so, dass wir einen Fonds auswählen müssen. Sie können sehen, dass wir momentan keine Fonds haben, wir haben den normalen Fonds und wir müssen einen benutzerdefinierten Fonds herunterladen, um ihn zu stilisieren Lassen Sie uns also vorerst in der nächsten Lektion weitermachen und diesen Text stilisieren Wir können einen benutzerdefinierten Fonds herunterladen und ihn zur echten Engine hinzufügen. 36. 5.02 Eine benutzerdefinierte Schriftart hinzufügen: Ordnung. Wenn Sie also zu Google gehen und nach Google-Fonds suchen, sehen Sie diese Website namens Funds.google.com. Und hier können Sie jeden beliebigen Fonds herunterladen Jetzt können Sie auch einfach nach Geldern suchen und sogar kostenlose Gelder herunterladen . Es gibt auch eine Website namens The Fund, The Fund. Dieser ist auch gut. Es hat eine Menge Geld, von dem Sie herunterladen können. Es gibt auch bezahlte. Jetzt liebe ich die Google-Fonds, sie haben viele coole Styles. Von hier aus habe ich einen namens Playpen gefunden. Suche nach Playpen, und das ist der, den ich benutzen möchte. Jetzt kannst du wählen, welchen Fonds du willst, es muss nicht derselbe sein wie ich Und Sie können den Fonds jederzeit testen. Wenn du hier zum Beispiel etwas schreibst, können wir sagen, Skeleton Mage für unser Spiel. Und du kannst es verkleinern, um zu sehen, wie es aussieht, wenn es so wäre und es fett ist und so weiter. Also ich mag diesen Fonds. Ich werde auf Herunterladen klicken und es hier öffnen, hier ist es. Nun, für diesen Fonds muss ich ihn herausholen. Ich nehme einfach diesen statischen Ordner und entpacke ihn in meinen Download-Ordner. Und ich gehe in meinen Download-Ordner und doppelklicke darauf. Dieser, den ich hier extrahiert habe , ich habe alle Mittel. Jetzt werde ich den dünnen nicht brauchen. Normalerweise sind sie innerhalb der anfälligen Engine zu dünn für Spiele, die ich mag Nehmen wir vielleicht auch die regulären. Mittel, halbfett, extra fett, fett. Das ist es. Wenn ich zu meiner Engine zurückkehre, minimiere ich das hier, und ich minimiere es auch. Lassen Sie uns das jetzt minimieren. Lass uns meinen Ordner öffnen. Jetzt kann ich das alles in den UI-Ordner importieren. Ich möchte, dass du einen neuen Ordner erstellst und ich nenne ihn Fonds. Wenn ich in diesem Fonds-Ordner buchstabieren kann, werde ich alles anklicken und es hierher ziehen. Denken Sie daran, dass Sie zuerst das Geld abheben müssen. Bevor Sie das tun, wie wir es getan haben, möchten Sie ein neues Fondsvermögen anlegen? Ich sage nur, gilt für alle DS. Und hier haben wir es. Sehr einfach, Gelder zu importieren. Mach weiter und speichere alles. Wenn Sie jetzt zum Namen des Feindes zurückkehren, klicken wir darauf. Jetzt können wir diesen maßgeschneiderten Fonds dafür auswählen. Nun, ich glaube, ich werde diesen namens Extra Bolt wie diesen hier verwenden . Das sieht gut aus für mich. Hier. Zur Rechtfertigung werde ich es zentrieren. Ich werde hier auch tatsächlich auf diesen Text klicken. Ich werde Größe zum Inhalt sagen. Es wird nur so groß sein, wie groß dieser Text auch sein mag. Ich muss mir keine Gedanken über die Größe von X und Y machen. Du musst es in deinem Spiel testen Aber ich glaube, für mich werde ich 28 nehmen . Und was die Frontgröße angeht, können wir ihr auch eine Farbe geben Wenn du hier oben auf die Farbe und Deckkraft wird es eine Farbe. Ich gebe ihm einfach eine leicht rote Farbe, etwa so Und wenn ich auf Okay klicke, werde ich es skizzieren. Wenn ich hier in der Gliederung klicke, kann ich eine schreiben. Sie können zum Beispiel sehen, dass der Text eine Gliederung enthält. Ich denke, ich werde mich für zwei entscheiden , weil man es fast nicht sehen kann , wenn man zwei herauszoomt Ich werde auch die Farbe ändern, damit es einfach die Farbe von der ersten Farbe kopiert Was Sie eigentlich tun können, Sie können auch die Umschalttaste gedrückt halten und mit der rechten Maustaste klicken, um die Umschalttaste zu kopieren, und mit der linken Maustaste, um sie hier einzufügen. Ich werde es einfach machen, Daca und ich denke, das ist gut für mich Nun, ein sehr cooler Effekt, den Sie mit Oral Engine erzielen können , ist hier im Schatten-Offset Wenn du dieselbe Farbe kopierst, also ich das kopiere, klicke auf die Schattenfarbe und ich kann sie auch hier in die Schattenfarbe einfügen , hier im Offset. Ich werde Null in das X schreiben. Lass uns so etwas wie drei in das Y schreiben. Du kannst einen sehr coolen Effekt sehen, du hast den Text und dann hast du einen coolen braunen Hintergrund dahinter Wir können es jederzeit im Spiel testen , um zu sehen, wie es aussieht. Manchmal warte ich sogar mit dem Entwerfen bis ich es im Spiel habe damit du sehen kannst, wie es im Spiel aussieht. Aber im Moment finde ich das wirklich gut. Nur um sicherzugehen, dass der Text nichts im Spiel blockiert. Du musst runter gehen und in der Sichtbarkeit musst du einstellen, nicht auf Testbar. Das heißt, wenn Sie versuchen, mit der Maus auf etwas hinter dem Text zu klicken Maus auf etwas , wird es funktionieren Wenn Sie es auf sichtbar gesetzt haben, blockiert der Text Ihre Mausklicks, und wenn sich hinter dem Text etwas befindet , können Sie nicht darauf klicken. Jetzt haben wir die Blockierung hier verhindert. Fahren Sie fort und klicken Sie auf Datei und speichern Sie alle. Und hier ist der Name des Feindes. Jetzt sind wir bereit, es in der nächsten Lektion hinzuzufügen. 37. 5.03 Hinzufügen der Enemy Name-Benutzeroberfläche: Fügen Sie nun den Namen des Feindes hinzu. Gehen wir zu den Bauplänen. Lasst uns die Feinde öffnen. Und wir müssen es der feindlichen Basis hinzufügen. Denkt daran, dass die feindliche Basis die Grundlage für all diese Kinderpläne Gehen wir zu einer feindlichen Basis. Und wenn wir es hier hinzufügen, wird es zu allen hinzugefügt. Ich werde bei den Komponenten auf Hinzufügen klicken. Und wenn Sie nach einem Widget suchen, hier ist es. Mach weiter und füge das Widget zu diesem Feind hinzu. Wir können es einfach Feindname nennen. Vielleicht nenne ich es sogar Feindnamen-Widgets. Also wissen wir es. Also lass uns weitermachen und alles speichern. nun für dieses feindliche Widget Gehen Sie nun für dieses feindliche Widget zum Viewport Und jetzt müssen wir es auch nur ein bisschen nach unten drücken, damit es unter dem Feind ist Der Name steht unter dem Feind. Was das Feind-Widget im Detailbereich angeht, stelle ich es auf den Bildschirm. Der Text kann Welt oder Bildschirm sein. Ich werde dir hier tatsächlich ein Beispiel zeigen, Sophie Klicke einfach auf die Widget-Klasse und wähle unser Widget aus, das wir gerade erstellt Das wird der Name des Feindes sein. Hier ist es. Mach weiter und kompiliere. Ich werde dir tatsächlich zeigen, wie es aussieht. Nur damit du sehen kannst, wenn ich das Roe einziehe, schreibe ich Null in das Y. Hier ist der Name des Feindes Sie können sehen, ob ich den Feind so betrachte . Wir können den Text nicht sehen, weil er so angezeigt wird Was passiert, wenn du auf den Bildschirm klickst, ist, dass du diesen Text einfach in Richtung Bildschirm zeigst, einfach so. Wenn ich auf Jetzt abspielen klicke, siehst du , dass er zum Bildschirm hin angezeigt wird. Das sieht jetzt gut aus. Lass es uns öffnen. Lass uns noch einmal darauf klicken. Ich werde einfach auf Eine gewünschte Größe zeichnen klicken. Und jetzt sind wir mit diesem fertig. Lass uns auf Compile klicken. Und du kannst es auf diese Weise noch weiter nach unten drücken. Sie können jederzeit einfach auf Play klicken und sehen, was es ist. Jetzt denke ich, den Namen des Feindes werde ich auf vielleicht -22 erhöhen , nur ein bisschen mehr. Hier ist es Sieht gut aus. Lass mich diesen einfach löschen, damit nicht zwei Feinde spawnen. Das ist der Name des Feindes , den wir angezeigt haben, und alles sieht gut 38. 5.04 Die Enemy Info-Benutzeroberfläche programmieren: Ordnung, anstatt nur den Namen des Feindes zu haben, habe ich beschlossen, auch das Feind-Level hinzuzufügen Es wird ein bisschen cooler aussehen. Lass uns den Feind wieder öffnen, hier drinnen. Lass uns tatsächlich zur Benutzeroberfläche gehen und den Namen des Feindes öffnen. Ich werde es stattdessen einfach in Feindinfo umbenennen. Wenn du jetzt hier draufklickst, brauchen wir hier drinnen eigentlich nichts zu tun weil wir den Text programmieren werden. Wir müssen hier nichts ändern. Aber jetzt gehen wir zur feindlichen Basis. Anstatt den Namen des Feindes zu verbreiten. Ich werde es einfach in Info Widget umbenennen. Und das liegt daran, dass wir den Namen und das Level angezeigt haben. Beschlossen. Okay, wir müssen hier nicht wirklich viel tun. Aber was wir jetzt tun müssen, um es zu programmieren, ist, zur Grafik zu gehen. Lassen Sie uns jetzt all diese Ereignisse löschen. Klicken wir mit der rechten Maustaste auf Benutzerdefiniertes Ereignis erstellen. Nennen wir das Update Enemy Info I für dieses. Wenn du jetzt etwas im Code machst, musst du darüber nachdenken , was du versuchst zu tun. Ich versuche diesen Text zu aktualisieren. Dieser Text hier. darauf klicke, muss ich es auf seine Variable setzen, sonst kann ich es hier nicht als Variable sehen und ich kann nichts damit anfangen. Also nenne ich diesen einen Text Enemy Info und setze ihn auf ist variabel. Und dann gehe ich zur Grafik. Jetzt kann ich es sehen, ziehen Sie es hinein. Wir versuchen, den Text festzulegen, den Text festzulegen. Und Sie können diese Funktion auswählen, die als Text festlegen bezeichnet wird. So legen Sie hier einen Text fest. Nun, das versuchst du zu tun. Wir versuchen, aus diesem Text den Namen des Feindes zu machen. Offensichtlich haben wir hier nicht den Namen des Feindes. Denken Sie daran, wir haben den Namen des Feindes. In der Bibliotheksfunktion, die wir erstellt haben, benötigen wir auch das Level des Feindes. Was nun das Level angeht, so haben wir es im Spielmodus. Wenn du zu Blueprint gehst, um den Spielmodus zu öffnen, denke daran, dass wir hier auch das aktuelle Level haben Die beste Methode, dies zu tun, besteht darin , den Namen des Feindes jedes Mal zu aktualisieren, wenn der Feind erscheint. Ich denke, hier in der feindlichen Basis wird jedes Mal, wenn der Feind erscheint , dieses Startspiel abgespielt Es ist schön, diesen Code hier einzufügen. Wir müssen das tun, anstatt den Text hier zu schreiben. Jetzt brauchen wir zwei Eingaben. In dieser Funktion benötigen wir den Namen des Feindes, und das ist eine Zeichenfolge. Machen wir es etwas größer, damit wir sehen können, dass dies der Name des Feindes ist. Nennen wir diesen einen Feind Namen. Dann müssen wir das Level des Feindes hier suchen und Ganzzahl auswählen. Und das ist das gegnerische Level, genau wie der Name dieses Feindes und das Level des Feindes. Um das hier einzufügen, wie Sie sehen können, haben wir nur einen Textblock. Um zwei dynamische Werte zu einem Textblock hinzuzufügen, müssen Sie etwas verwenden, das als Formattext bezeichnet wird. Auf diese Weise können Sie mehrere Eingaben hinzufügen oder mehrere Eingaben in den Text einfügen, wenn Sie hierher ziehen und Text wie diesen formatieren sagen. Wie du das jetzt benutzt, ist, dass du mit einer ecuren Klammer anfängst. Als Erstes brauchen wir den Namen des Feindes. Sagen wir den Namen des Feindes. Das muss nicht präzise sein. Du kannst hier schreiben , was du willst. Lass uns die geschweiften Klammern schließen. Wenn Sie das tun und die Eingabetaste drücken, können Sie sehen, dass Sie hier einen Einstiegspunkt haben , an den Sie es wie folgt anschließen können Jetzt brauchen wir auch noch das Level des Feindes, wie wir es anzeigen wollen. Zum Beispiel, nur um es zu visualisieren, sagen wir zum Beispiel Ork, wir haben ein Komma und es steht Level eins oder Level 12, ungefähr so Hier müssen wir es auch formatieren. So hier haben wir den Namen des Feindes. Dann haben wir A. Hier drüben gehe ich nach rechts und nivelliere. Dann haben wir das Level. Ich öffne wieder die geschweifte Klammer und sage Feindeslevel Und schließe es wieder so. Jetzt kann ich diese Eingabe hinzufügen , jetzt wird sie mir direkt angezeigt. In Ordnung, diesen können wir jetzt der feindlichen Basis hinzufügen. Wenn ich kompiliere und zur feindlichen Basis zurückkehre, löschen wir das alles vorerst. Und wie wir das machen, nehmen wir das feindliche Info-Widget. Zuerst musst du ein Widget schreiben und dieses auswählen, das als Get User Widget Object bezeichnet wird. Jetzt koste ich hier normalerweise, sagen wir, zwei. Normalerweise verwende ich keinen Widget-Blueprint für die Benutzeroberfläche, weil ich finde, dass es zu viel ist, einen Widget-Blueprint für jede einzelne Benutzeroberfläche zu erstellen . Sie müssen nur die Benutzeroberfläche kosten, die sich innerhalb eines Feindes befindet Zum Beispiel die Benutzeroberfläche des Hauptmenüs, Sie werden jedoch nicht zwei kosten Das Menü, das hier eingerückt ist, ist eine Komponente, die Sie kosten werden, um User Bridge auf mehr als zwei zu bringen Und wir nannten es Enemy Info. Wählen Sie es hier aus, und lassen Sie uns weitermachen und es verbinden. Okay, hier haben wir es. Jetzt können wir das Update Enemy Info, Update Enemy Info Ui nennen . Jetzt müssen wir den Namen des Feindes eingeben. Und denk dran, das haben wir schon hier. Denken Sie daran, dass wir auf jeden einzelnen Feind klicken und den Namen des Feindes angeben, alle hier. Und das ist, wenn wir es benutzen. Jetzt schlagen wir das an, schließen wir es an, das ist der Name des Feindes. Nun zum Level der Gegner Wir haben dieses als aktuelles Level im Spielmodus. Ich kann mich nicht erinnern, dass wir in den Benutzeroberflächen ein Interface für den Spielmodus erstellt haben, wir haben es nicht getan. Lassen Sie uns also weitermachen und das Blueprint-Interface erstellen. Lassen Sie uns hier nach rechts schauen, gehen Sie zu Blueprint und wählen Sie Blueprint-Schnittstelle Nennen wir das BPI. Ich nenne es einfach Spielmodus, weil wir nur einen im Spiel haben. Lass es uns öffnen. Lass es uns hier drinnen die Spielmodus-Referenz abrufen nennen , weil wir genau das versuchen. Für die Ausgaben müssen Sie im Variablentyp auswählen, worauf Sie verweisen möchten. Jetzt versuche ich, auf meinen Spielmodus zu verweisen. Ich werde nach dem GM Dungeon Clicker suchen. So habe ich es genannt, das ist mein Spielmodus. Und ich werde hier Objektreferenz auswählen. Ich nenne es einfach Spielmodus. Fahren Sie fort und kompilieren Sie, speichern Sie alles. Und jetzt sind wir hier drinnen fertig. Lassen Sie uns das schließen. Jetzt müssen wir diese Blueprint-Oberfläche zum Spielmodus hinzufügen Wenn ich zu Blueprints zurückkehre, öffne meinen Spielmodus hier drin Gehen wir zu den Klauseleinstellungen in den implementierten Schnittstellen Fügen wir die Blueprint-Schnittstelle und den Spielemodus hinzu. Wenn Sie dies tun, wird diese Funktion angezeigt. Doppelklicken wir darauf, klicken von hier aus und sagen wir Selbst. Jetzt definieren wir diese Variable. Wir sagen ihr, dass diese Spielmodus-Variable selbst ist. Das heißt, egal in welcher Blaupause wir uns gerade befinden und der Engine sagen, dass diese Spielmodus-Variable GM ist, Dung Clicker Okay, jetzt sind wir fertig. Lass es uns schließen. Lasst uns den Feind noch einmal öffnen. Und lassen Sie uns die Arbeit fortsetzen. Anstatt das zuerst zu tun, lassen Sie mich einfach alles hierher verschieben. Lassen Sie uns die Verbindung trennen, indem wir die Alt-Taste gedrückt halten und der rechten Maustaste klicken und „Spielemodus abrufen“ sagen. Für diesen Spielmodus erhalten wir nun den allgemeinen Spielmodus, den Standardspielmodus und Unreal Engine Anstatt von Kosten für GM zu sprechen, statt das zu tun, können wir es jetzt sagen, Referenz zum Spielmodus. Und wir können die Blueprint-Schnittstellenfunktion verwenden. Und du weißt das, weil es am Ende Botschaft heißt. Sie wissen, dass es von einer Blueprint-Schnittstelle stammt. Lass uns den Sound schließen. Lass uns jetzt rausgehen und es verbinden. Jetzt können wir mit der rechten Maustaste darauf klicken und zu unserer Variablen hochstufen und es Spielmodus nennen. Wir müssen das alles nicht noch einmal machen . Es ist viel sauberer. Jetzt können wir einfach die Spielmodus-Variable verwenden. Lass uns das verbinden, lass uns alles zusammen angehen. Lass uns weitermachen und es benutzen. Jetzt können wir also das aktuelle Level verwenden. Wenn Sie in den Spielmodus zurückkehren und sich nicht erinnern, haben wir diese Variable, die als aktuelles Level bezeichnet wird. Genau das versuchen wir hier im Break-Game-Modus zu verwenden. Suchen Sie nach dem aktuellen Level und fahren Sie fort und rufen Sie das aktuelle Level ab. Und jetzt kannst du es verbinden und alles sollte perfekt funktionieren. Was gerade passiert, ist, dass wir das Update Enemy Info UI bekommen . Wir geben diese Informationen, den Namen des Feindes und die Stufe des Feindes ein Es wird das hier in die Benutzeroberfläche übernehmen . Ich gehe zur Grafik. Wenn ich das hier einstecken werde, sollte es korrekt angezeigt werden. Wenn ich auf Play klicke, heißt es jetzt Orc Level One. Das ist richtig Wenn ich jetzt zum Spielmodus zurückkehre und die aktuelle Stufe zum Beispiel auf etwa fünf ändere und auf Spielen klicke, heißt es Wizard Level 5. Alles funktioniert perfekt, okay. Alles funktioniert. Lass uns weitermachen und speichern. Und lass uns weitermachen. 39. 5.05 Dem Feind Schaden zufügen: Lasst uns jetzt weitermachen und dem Feind Schaden zufügen. Wenn wir jetzt auf Spielen klicken, möchte ich jedes Mal, wenn ich auf diesen Ork klicke, Schaden zufügen Denken Sie übrigens daran, in den Spielmodus zu wechseln und das aktuelle Level standardmäßig auf eins zurückzusetzen, weil wir es beim letzten Mal auf eins gesetzt haben, auf fünf gesetzt haben Jetzt möchte ich zuerst dass Sie sehen können, wie unsere Maus verschwindet. Immer wenn ich im Spiel klicke, verschwindet meine Maus. Gehen wir also zum Player-Controller. Und hier in den Standardeinstellungen der Klasse klicken wir auf Show Mouse Ursa Lassen Sie uns das kompilieren. Lasst uns die feindliche Basis öffnen. Bevor ich irgendwas mache, lassen Sie uns den Debug-Widget-Reflektor ihn auf 1,25 stellen, damit Sie hier sehen können, was ich möchte, ist für die Kapselkomponente, der wir interagieren werden mit der wir interagieren werden, wann immer wir darauf klicken Was wir tun wollen, ist, in die Kapselkomponente zu gehen Und hier siehst du einige Ereignisse, die du nutzen kannst. Ich möchte, dass du diesen benutzt, der Klick genannt wird, weil wir den Feind anklicken werden, ohne ihn anzuklicken Fahren Sie fort und wählen Sie das aus. Und hier, was ich möchte, dass du auch ziehst und „Zeichenfolge drucken“ sagst. Print String ist sehr mächtig. Dies druckt einfach eine Zeichenfolge auf den Bildschirm und druckt eine Nachricht auf den Bildschirm. Es kann zum Beispiel sagen, dass es funktioniert hat. Und ich verwende das, um meinen Code zu debuggen. Ich möchte sehen, ob mein Event tatsächlich funktioniert Auch das ist super mächtig. So debugge ich meinen Code. Wenn ich zum Beispiel einen Fehler habe, sagen wir, dass hier irgendwo etwas nicht funktioniert, würde ich das nehmen und es zum Beispiel hier einfügen Ich würde es hier daneben oder zwischen diesen beiden platzieren. Wenn es gedruckt wird, bedeutet das, dass dieser Teil funktioniert, dann würde ich es hier ausdrucken und schauen, ob dieser Teil funktioniert und so weiter. Drucken Sie weiterhin Nachrichten auf dem Bildschirm aus und so debuggen Sie effektiv Hier unten auf den Klick, mal sehen, ob das funktioniert. Wenn ich auf Play und dann auf den Ork klicke, wird wirklich nichts auf dem Bildschirm angezeigt Das bedeutet, dass dieses Event nicht wirklich funktioniert. Etwas stimmt nicht. Das liegt daran, dass wir in der Kapselkomponente die Kollisionseinstellungen hier unten überprüfen. Wir haben es auf keine Kollision eingestellt. Natürlich wird es nicht funktionieren, wenn ich darauf klicke, weil dieser Typ keine Kollision hat. Wenn die Kollision voreingestellt ist und nicht keine Kollision, klicken wir darauf und sagen wir, Benutzerdefiniert für die Kollision ist aktiviert Ich werde es so einstellen, dass nur jetzt Physik abgefragt wird. Immer wenn ein Charakter auf dem Boden läuft und es Physik gibt, fällt er nicht durch den Boden und so weiter. Wir brauchen nicht wirklich eine physikalische Abfrage. Zum Beispiel interagiert Ihre Maus mit der feindlichen Abfrage auf. Wir brauchen keine Physik. Was die Antwortkanäle angeht, ignoriere alles. Wir wollen nicht mit statischen Objekten, Figuren und Fahrzeugen usw. anderer Welten interagieren mit statischen Objekten, Figuren und Fahrzeugen usw. anderer Welten und Fahrzeugen usw. Das Einzige, womit wir intakt bleiben wollen, ist die Sichtbarkeit. Sichtbarkeit ist deine Maus, der wir interagieren wollen. Wenn du jetzt auf Play klickst, klicken wir hier. Du siehst, dass nichts passiert. Immer noch stimmt etwas nicht. Lassen Sie uns jetzt den Play-Controller wieder öffnen. Und hier siehst du, wie du Klickereignisse aktivieren kannst. Das musst du auch nehmen. Kompilieren Sie, klicken Sie auf Abspielen und jetzt können Sie darauf klicken. Jetzt sehen Sie, dass unsere Nachricht auf dem gedruckt wird. Jetzt funktioniert es wieder. Ihr könnt die Trefferbox testen, je nachdem wie groß eure Kollisionskugel ist, unsere Kapsel. Du kannst sehen, wenn ich hier rausklicke, es funktioniert auch. Ich denke, das ist eine faire Trefferbox, aber wenn du deine Trefferbox reparieren willst, kannst du jederzeit zur gegnerischen Basis gehen , auf die Kapselkomponente klicken und die halbe Höhe und den Radius vergrößern und verkleinern, je nachdem, wie groß der Kreis sein soll. Wir wollen nur Schaden anrichten. Lassen Sie uns hier sagen: Schaden anwenden. Dafür gibt es eine Funktion, mit der Sie die Option Angewendeter Schaden für die beschädigte Handlung auswählen können. Um uns selbst Schaden zuzufügen, wollen wir dieser feindlichen Basis Schaden zufügen, egal auf welchen Feind wir drängen. Wie groß soll der Schaden sein? Wir können einfach einen statischen Schaden hinzufügen , den wir später im Shop verbessern können. Was den Schaden angeht, möchte ich ihn eigentlich dem Spieler hinzufügen. Das macht am meisten Sinn. Wenn ich zu Blueprints gehe, gehe ich hier zum Player. Fügen wir eine neue Variable hinzu, die als Schaden bezeichnet wird. Lassen Sie uns das in eine Float-Kompilierung ändern. Lassen Sie uns es einfach standardmäßig auf 15 setzen, wir können es später ändern. Kompilieren. Wenn ich zur feindlichen Basis zurückkehre, brauchen wir jetzt einen Hinweis auf den Spieler. Sehen Sie hier, wenn wir eine Schnittstelle haben, haben wir keine Blueprint-Schnittstelle Wenn ihr euch mit den Blueprint-Interfaces erneut selbst herausfordern wollt , legt los und erstellt eine für den Spieler Aber jetzt machen wir es zusammen. Klicken wir mit der rechten Maustaste, gehen wir zu Blueprint, Blueprint-Oberfläche. Nennen wir es PPI-Ebene. Lass es uns hier öffnen. Sagen wir, holen Sie sich die Ebenenreferenz. Also, was auch immer wir hier unten meinen, wir versuchen, auf BP Player zu verweisen. Lass uns danach suchen Fahren Sie fort und wählen Sie es aus. Nennen wir es Player. Lassen Sie uns jetzt kompilieren. Denken Sie daran, jetzt zu kompilieren gehen wir zurück zum Player und fügen diese Blueprint-Schnittstelle in den Cloud-Einstellungen hier unten hinzu, suchen Sie nach BPI, fügen Sie den Player hinzu, kompilieren Sie hier unten Öffnen wir es und erstellen wir eine Selbstreferenz. Genau wie zuvor definieren wir, dass dieser Variablentyp dieser Spieler ist. Jetzt, wo wir das getan haben, gehen wir zurück zur feindlichen Basis. Lass es uns nach dem Spielmodus machen. Wenn ich hier einfach zuschlage, lass mich mit der rechten Maustaste klicken und „Spielercharakter holen“ sagen. Wähle dann „Lass uns von hier aus zuschlagen“ und sage „Spielreferenz holen“. Wähle das aus, mach weiter und verbinde dich. Klicken wir mit der rechten Maustaste darauf und bewerben wir es und nennen es Player. Ich nenne es einfach Play Upon. Lass uns hier eine Verbindung herstellen. Zieh das einfach rüber. Jetzt haben wir diese Referenz fertig und können weitermachen und die Variable s daraus verwenden. Lassen Sie uns weitermachen und den Cursorschaden hier unten verwenden. Lassen Sie uns das Spiel fortsetzen, Cursorschaden suchen nach Cursorschaden suchen, ihn auswählen und ihn hier verbinden. Einfach so. Jetzt müssen wir mit denen nichts anfangen, um zu sehen, ob das funktioniert, und wir werden es später verwenden. Aber was Sie tun können, ist schreiben, klicken und nach Schäden suchen. Wir werden es später benutzen. Von hier aus können Sie eine Zeichenfolge drucken. Sie können einfach die Höhe des Schadens ausdrucken , den wir verursachen. Lass uns, lass uns klicken. Und wenn ich klicke, siehst du, dass ich 15 Schaden anrichte und alles wie erwartet funktioniert. Lass uns weitermachen und das vorerst einfach löschen. Lass uns das tatsächlich löschen. Wir können es in einer anderen Lektion schaffen. Lass uns kompilieren, lass uns alles speichern und lass uns weitermachen. 40. 5.06 Gesundheit berechnen: Lassen Sie uns nun mit dem Ereignis „Jeder Schaden“ arbeiten. Wenn du hier in der Feindbasis mit der rechten Maustaste klickst, suchst du nach Schäden. Lass uns den benutzen. Das wird verwendet, wenn Sie Schaden anrichten, Sie gehen hier hin und berechnen dann den Schaden, und dann fügen Sie den Schaden hinzu , den Sie angerichtet haben. Lassen Sie uns das tun. Lassen Sie uns eine neue Variable erstellen. Wir brauchen eine namens Current Health. Lassen Sie uns nun diesen in einen Float umwandeln. Lass uns kompilieren. Für diese aktuelle Gesundheit brauchen wir Gesundheit. Weil wir nicht wirklich bei Null anfangen können. Der Feind hat keine Null, also müssen wir sie irgendwo platzieren. Denken Sie daran, dass wir in den Datentabellen , die wir in den Feindinformationen erstellt haben, den Feinden Gesundheit hinzugefügt haben. Lass uns das verwenden und es als Standard festlegen, wann immer sie spawnen Der beste Weg, das zu tun, ist hier im Startspiel , wann immer der Feind spawnt Nehmen wir diese aktuelle Gesundheit und stellen sie ein. Du hältst die Alt-Taste gedrückt und ziehst, um sie einzustellen. Setzen wir es auf das, was in der Datentabelle stand . Lass uns mit der rechten Maustaste klicken. Denken Sie daran, dass wir eine Bibliotheksfunktion namens Get Enemy Info erstellt haben. Jetzt braucht es den Namen des Feindes. Und das haben wir. Denken Sie daran, wir befinden uns in der feindlichen Basis und wir haben den Namen hier. Ziehen wir es und stecken es ein. Lasst uns von hier aus zuschlagen und Pause sagen. Wenn wir unterbrechen, können wir alle Variablen für diese Funktion zur Feindinformation sehen . Jetzt stellen wir es hier einfach auf „Gesundheit“ ein. Wir beginnen mit der Gesundheit, die wir hier geschrieben haben. Gehen wir zurück zur feindlichen Basis. Klicken Sie hier, um unverbundene Pins auszublenden , damit es übersichtlicher aussieht Und lassen Sie uns es verbinden. Jetzt funktioniert das hier unten. Jetzt haben wir den aktuellen Gesundheitssatz korrekt eingestellt. Immer wenn wir Schaden anrichten, möchte ich, dass du die aktuelle Gesundheit nimmst, sagen wir, die aktuelle Gesundheit ist 100. Für die erste hier sagen wir 100 minus. Wenn Sie einfach Minus schreiben oder subtrahieren und den Schaden, den wir angerichtet haben, abziehen, würde es 100 -15 heißen . Das entspricht dem, was auch immer es ist Wir müssen das nochmal nehmen und wieder hier reinstellen. Es ist aktualisiert, jetzt sagen wir, 100 -15 ist 85. 85 wird hier sein. Jetzt nur um sicherzugehen, dass wir nicht unter Null fallen. Weil du dir vorstellen kannst, wenn ich dauernd Schaden anrichte und es Null erreicht und ich wieder Schaden anrichte, dann heißt es Null, -15, das ist -15. Anstatt auf minus Lebenspunkte zu gehen, verwenden wir eine sogenannte Klammer Wenn Sie hier ziehen und Klammer sagen, wählen Sie diese Variante namens Clamp Float, weil wir mit Floats arbeiten. Clamp Float Was Klammer ist, ist im Grunde, dass man den Wert festklemmt, sodass er niemals unter Null fallen kann und er niemals einen Wert überschreiten kann, den Sie hier hinzufügen. Ich füge einfach die aktuelle Gesundheit hinzu, weil wir den Spieler nicht wirklich heilen. Ich werde es zwischen dem, was auch immer es gerade ist, festmachen und wir können nicht unter Null gehen. Ich werde es so einstecken. Lass uns weitermachen und es hier verbinden. Jetzt, wo das tatsächlich fertig ist, können Sie jetzt darauf doppelklicken, damit es besser aussieht. Mach weiter und mach das. Lassen Sie uns einfach wieder eine Druckzeichenfolge verwenden und prüfen, ob wir es richtig machen. Wenn ich kompiliere, klicke ich auf Play und ich füge Schaden zu. Also jetzt ist es 85, und dann ist es 70, 505-402-0510, und Und du kannst sehen, wann immer ich klicke, es Jetzt berechnen wir es richtig. 41. 5.07 Den Gesundheitsbalken entwerfen: Um die Gesundheitsleiste zu entwerfen, gehen wir zum UI-Ordner. Lass uns schreiben. Klicken Sie jetzt, lassen Sie uns zur Benutzeroberfläche gehen und ein Widget, einen Blueprint, erstellen Auch hier ein Benutzer-Widget. Nennen wir das mal WB Health Bar. Lass uns hier reingehen. Nochmals, genau das, was ich zuvor gesagt habe, Bildschirmgröße. Lass uns hier klicken. Stellen Sie es auf einen generischen Laptop ein, den wir für alle Bildschirme entwickelt haben. Lassen Sie uns dieses Canvas-Panel erstellen. Denken Sie daran, dass wir immer eine Leinwand hinzufügen müssen. Nun zur Gesundheitsleiste Ich habe etwas für dich hinzugefügt. Wir haben es noch nicht importiert. Gehen wir also hier in den Kostenmaterialien zu den Kostenmaterialien. Ich möchte, dass Sie erneut zur Benutzeroberfläche wechseln. Sie haben vielleicht viel mehr Benutzeroberfläche als das, was ich jetzt habe. Das liegt daran, dass ich ihn immer weiter ergänze , wenn ich diesen Kurs weiterentwickle. Nehmen wir jetzt diesen und diesen. Das ist es, was wir bisher brauchen. Lassen Sie mich hier mit der rechten Maustaste klicken, einen neuen Ordner erstellen, ihn Bilder nennen. Lass es uns öffnen. Öffnen wir nun noch einmal die Kostenmaterialien und ziehen sie in diesen Ordner. Und jetzt sind sie hochgeladen. Jetzt sind das viele Picks, also möchte ich nicht, dass es verschwommen Denken Sie daran, Sie könnten einfach beide auswählen. Klicken Sie mit der rechten Maustaste und gehen Sie zu Spot Actions und tragen Sie Papier auf die Einstellungen auf. Jetzt ist es nicht mehr verschwommen, es sieht gut aus. Gehen wir zurück zur Gesundheitsleiste. Lasst uns hier drinnen erstmal suchen. Ich möchte, dass der Text oben ist und dann möchte ich, dass die Gesundheitsleiste darunter ist. Dafür brauchen wir eine vertikale Box. Nimm eine vertikale Kiste dazu. In der vertikalen Box benötige ich etwas Text. Ich werde den Text, den wir hier gemacht haben, tatsächlich kopieren. Ich finde, es sieht gut aus. Und wir können einfach die Farbe ändern. Klicken Sie auf das Textsteuerelement C, um es hierher zu kopieren. Klicken Sie auf das vertikale Feld Steuerelement V. Nun zur Gesundheitsleiste, es geht nur darum, wenn Sie nach dem Fortschrittsbalken suchen und das ist es. Ziehe es in das vertikale Feld. nun die Größe des vertikalen Felds ändern, Lassen Sie uns nun die Größe des vertikalen Felds ändern, damit wir tatsächlich sehen können, was vor sich geht Anstatt dass es den ganzen Bildschirm ausfüllt, wollen wir einfach nur diese Feindinformationen haben, wir wollen einfach, dass sie so groß sind , wie sie sind Weil wir sie hier einfach im Spiel verwenden werden. Wir brauchen es nicht, um das Ganze wieder zu füllen. Klicken Sie auf Bildschirm füllen. Hier oben bis zum gewünschten Bild auf dem Bildschirm. Anstatt dass sich der Ankerpunkt hier oben befindet, ändern wir ihn in die Mitte des Bildschirms. Ändern wir die Ausrichtung des vertikalen Felds auf 0,5 0,5 und die Position auf Null um Null. Jetzt ist es hier in der Mitte. Okay, sieht gut aus. Nun zu diesem Fortschrittsbalken, ich werde darauf klicken. Und für den Stil ändern wir das Hintergrundbild. Das Hintergrundbild ist dieser Fortschrittsbalken. Das Vollbild und das Markierungsbild sind beide diese Rechnung, die wir haben, diese und diese Und lassen Sie uns auf Compile klicken. Und wir können sehen, dass es nicht besonders gut aussieht, wenn wir es uns ansehen. Und das liegt daran, dass es hier, glaube ich, das Festzelt Ich vergesse immer die Bildgröße im Y. Wir können sie ändern. Und jetzt können Sie sehen, dass es sich tatsächlich ändert Wir können jede Größe ändern, die wir wollen. Ich glaube, für diesen werde ich einfach 45 draus machen. Sie können es auch hier im X und y im X skalieren. Sie können es auch skalieren. Jetzt können wir keinen wirklichen Unterschied erkennen , weil dieses vertikale Feld es blockiert. Weil wir es hier skalieren können. Aber ich werde es hier von der Größe bis zum Inhalt skalieren . Ich werde darauf klicken. Ich werde das vertikale Feld skalieren, je nachdem, wie groß der Inhalt ist. Nun werde ich für diesen Balken die Größe auf etwa 250 reduzieren. Wir können ihn später immer noch vergrößern, aber jetzt sieht er gut aus. Lassen Sie uns jetzt sehen, ob diese Füllung funktioniert. Lass uns runtergehen und du siehst dir diesen Prozentsatz an. Sie können klicken und ziehen, um den Prozentwert einzugeben. Sie können jedoch sehen, dass die Farbe nicht korrekt ist. Es ist hier unten in der Füllfarbe. Anstatt blau zu sein, werde ich es einfach auf weiß einstellen. Und mach weiter und klicke. Okay. Jetzt siehst du, dass es gut aussieht. Okay, jetzt haben wir das entworfen. Lassen Sie uns die Farbe des Namens hier oben ändern oder nicht den Namen, es geht im Grunde darum, wie viel Gesundheit für die Menge an Gesundheit steht. Ändern wir es vielleicht in eine eher rote Farbe. Ich habe diese Farbe hier gewählt. Ich finde, es sieht gut aus. Lass uns das jetzt kopieren. Halten Sie im Grunde einfach Shift, Rechtsklick, Shift, Linksklick auf diesen und diesen gedrückt. Anstatt diese Farbe zu haben, machen wir es einfach zu Daka Ich finde, diese Farbe sieht als Umriss gut aus. Lass mich das einfach kopieren . Geh hier rein und füge es in der linearen Hex-Farbe ein. Klicken Sie. Okay, ich finde, diese Farbe ist gut für die Gesundheit. Jetzt sind wir damit fertig, du kannst ihm etwas Platz geben. Sie können sehen, dass es zu nah ist, vielleicht an der Gesundheitsleiste. Du kannst hier nach oben klicken, du kannst zur Polsterung hier oben nach unten gehen zur Polsterung hier oben nach unten Wir können ihm eine Polsterung von sechs geben. Es ist ein bisschen von der Gesundheitsleiste weggeschoben , jetzt sieht es gut Auch hier klicke ich auf die Gesundheitsleiste und auf den Text und ändere die Sichtbarkeit auf nicht testbar Wir können also nicht damit interagieren , mit der Maus. Sie blockieren die Maus im Spiel nicht. Ich werde zuschlagen. Okay. Jetzt ist das erledigt, also lasst uns weitermachen und mit der nächsten Lektion fortfahren. 42. 5.08 Den Gesundheitsbalken hinzufügen: Um die Gesundheitsleiste hinzuzufügen. Gehen wir zu Blueprints und öffnen wir den Feind. Gehen wir noch einmal zum Aussichtspunkt. Lass uns weiterklicken, klicke einfach hier oben. Gehe zu Komponenten. Suchen Sie erneut nach Widget, genau wie wir es mit dem Namen gemacht haben. Es ist das gleiche Konzept. Sie können versuchen, es zum Üben selbst zu machen. Lass uns weitermachen und auf Widgets klicken. Hier können wir einfach Health Bar sagen. Klicken Sie jetzt auf, ich werde nur Gesundheits-Widget sagen. Vielleicht Gesundheits-Widgets. Denn wenn man das Spiel weiter programmiert und es ein sehr großes Spiel wird, ist es immer schön, sehr aussagekräftige Namen zu haben , damit es nicht zu verwirrend ist Klicke auf das Health Par Widget. Lassen Sie uns den Abstand zum Bildschirm ändern. Es zeigt immer die Benutzeroberfläche auf dem Bildschirm an. Lassen Sie uns die Klausel so ändern , dass die Gesundheitsleiste angekreuzt wird. Dieser heißt Draw a Desired Size. Ordnung, lassen Sie uns auf Play klicken und sehen, wie es aussieht. Und hier ist es. Lass es uns unter dem Namen notieren. Klicke darauf, Wrike. Schlag es hier ein bisschen runter. Klicke auf Abspielen. Und lassen Sie uns das noch weiter reduzieren. Klicken Sie auf Abspielen. Das ist vielleicht zu viel. Sagen wir statt -40 minus 37. Klicke auf Abspielen. Ich finde, es sieht gut aus. Vielleicht minus 36, jetzt ist es zu viel OCD. Klicke auf Abspielen. Das sieht viel besser aus. Vielleicht können wir uns dafür entscheiden. Wie Sie sehen können, müssen wir die Gesundheitsleiste noch aktualisieren, sowohl den Text als auch die Gesundheitsleiste hier. Lassen Sie uns das in der nächsten Lektion tun. 43. 5.09 Den Gesundheitsbalken aktualisieren: Ordnung, um die Gesundheitsleiste zu aktualisieren, gehen wir zuerst zur Benutzeroberfläche Und lassen Sie uns die Gesundheitsleiste öffnen. Lass uns hier zuerst auf den Text klicken. In diesem Fall heißt es Text Health, anstatt Feindinformationen zu texten. Den zweiten hier, den Fortschrittsbalken, nenne ich ihn Fortschrittsbalken. Nennen wir es einfach auch „variabel machen“, damit wir es können. Gehen wir jetzt zur Grafik. Lass uns das alles löschen. Lass uns ein neues benutzerdefiniertes Ereignis schreiben, klicken und erstellen. Nennen wir dieses eine Update. Nun zu dem, was wir versuchen, wieder zu tun, wenn wir programmieren, denken Sie einfach daran, was Sie gerade versuchen zu tun? Ich versuche, diesen Gesundheitsbalken auf den neuesten Stand zu bringen. Okay. Wie aktualisieren wir diesen Gesundheitsbalken? Wir aktualisieren es so, dass Sie versuchen, diesen Prozentsatz zu ändern, Sie versuchen, das zu ändern. Es gibt immer eine gute Aktie, um einfach zu analysieren, was Sie mit diesem Prozentsatz erreichen wollen. Gehen wir zur Grafik und nehmen wir diesen Fortschrittsbalken. Wenn Sie nicht wissen, wie es heißt, versuchen Sie einfach, nach Prozent zu suchen. Sie können hier schon sehen, dass Sie diese Funktion in Prozent setzen können. Lassen Sie uns weitermachen und dieses festgelegte Prozent verbinden. Du musst hier mal nachschauen. Die Prozentzahl ist nicht 0-100 0-1 Wir müssen hier tatsächlich eine Aufteilung vornehmen Denn hier im Gesundheitsupdate wird dieser innerhalb der gegnerischen Basis jederzeit aufgerufen innerhalb der gegnerischen Basis Denken Sie daran, dass wir hier die Gesundheit berechnen , nachdem wir Schaden angerichtet haben. Von hier aus können wir dieses Update Health UI nennen. Hier können wir uns mit dem aktuellen Status verbinden. Ich klicke hier, mache hier eine neue Variable, nur regulär, damit wir sie sehen können, mache sie zu einem Float, nenne sie Current Health. Nun, wie teilen wir das wenn du nicht so gut in Mathe bist? Nehmen wir zum Beispiel an, Gesundheit ist 100 geteilt durch, also können wir dieses Zeichen oder die richtige Division durchführen. Wir teilen das durch eine Zahl, die der maximalen Gesundheit entspricht. Weil du zum Beispiel sagen kannst, sagen wir, ich füge diesem Feind Schaden zu und der Feind hat 100 Lebenspunkte. Der aktuelle Schaden für den Cursor ist 15, er sagt 100 -15, es ist 85. Dann kannst du 85/100 sagen und du bekommst die Prozentzahl. Wenn du nicht so gut in Mathe bist, kannst du hier jederzeit deinen Browser Sie können sagen, sagen wir, wir haben 85/100 Enter. Und dann können Sie sehen, dass es tatsächlich korrekt angezeigt wird. Okay? Also so wollen wir es machen, weil das Maximum 100 ist, was eins ist. Dieser Prozentsatz geht von 0-1 Nehmen wir an, die aktuelle Gesundheit geteilt durch die maximale aktuelle Gesundheit geteilt durch die maximale Gesundheit. Das ist der Prozentsatz Jetzt wird es korrekt sein Lass uns jetzt kompilieren. Gehen wir zur NM-Basis und versuchen, diese zu verwenden. Denken Sie daran, Sie müssen jetzt die Kosten berechnen , weil Sie sich in der Gesundheitsleiste befinden Das ist das gleiche Konzept wie das, was wir mit dem Namen gemacht haben. Lass uns das machen. können Sie weitermachen und eine Blueprint-Schnittstelle dafür erstellen Das ist keine schlechte Idee. Du schaffst es, es ist in Ordnung. Aber ich denke, etwas, das ich nur einmal kosten werde, zum werde ich diese Funktion nur in meinem ganzen Spiel verwenden , vielleicht zwei davon. Ich möchte nicht für jede einzelne Benutzeroberfläche, die ich erstelle , eine Blueprint-Oberfläche erstellen Lassen Sie uns weitermachen und diesen Druckknoten löschen. Was wir jetzt tun können, lassen Sie uns hier einfach ein neues benutzerdefiniertes Ereignis erstellen. Lassen Sie uns ein benutzerdefiniertes Ereignis namens Update Health erstellen. Und dieses wird das Update Health UI aufrufen. Lassen Sie uns dieses Widget ziehen. Lassen Sie uns wie zuvor ein Widget-Objekt besorgen. Nehmen wir an, es kostet zwei und wir nennen es Health Cost to Health Connected. Hier wollen wir das Update Health Drag Update nennen. Ich mache weiter und verbinde alles. Jetzt brauchen wir Plug-ins für die aktuelle, aktuelle Gesundheit und Gesundheit, die aktuelle Gesundheit, die wir bereits hier haben. Lass uns weitermachen und es verbinden. Weil wir es hier drüben hinstellen, damit wir das für die maximale Gesundheit tun können , brauchen wir die maximale Gesundheit des Feindes. Wie machen wir das? Denken Sie daran, wir haben hier eine Feindinformation erstellt, es ist im Grunde diese. Du kannst im Grunde einfach dieses Steuerelement C kopieren, hier runter, Steuerung V, oder du kannst es umschreiben, wenn du etwas Übung willst Versuche das nochmal zu schreiben und schau, wie du es gemacht hast. Lass uns weitermachen und es hier verbinden . Jetzt aktualisieren wir die Gesundheit. Denken Sie daran, wir müssen dieses Event veranstalten, bevor es funktioniert. Ich werde dieses Gesundheitsupdate einfach jedes Mal ausführen , wenn ich Schaden anrichte. Hier können wir Update Health aufrufen und es hier aufrufen. Jetzt richten wir Schaden mit der Maus an, wir fügen Schaden zu. Und den Schaden, den wir anrichten , berechnen wir und aktualisieren die aktuelle Gesundheit des Feindes. Dann aktualisieren wir das I hier. Eigentlich hier, aktualisiere die Gesundheit. Vielleicht können wir das hier unten haben, nur damit es mehr Sinn macht. Was die Programmierung angeht, werde ich das hier rausnehmen. Ich werde hier unten eine Eingabe machen, einen Float namens Current Health. Ich werde es stattdessen so einstecken. Wir können hier drüben anschließen. Ich denke, es macht mehr Sinn. Wir können es auf beide Arten machen, aber manchmal, wenn Sie programmieren, können Sie Dinge auf verschiedene Arten tun. Aber manche Methoden eignen sich besser als andere. Ich denke, dieser ist ein bisschen besser, weil wir den aktuellen Zustand hier aktualisieren. Okay, Update Health wird hier aktualisiert, und dann aktualisieren wir die Benutzeroberfläche, wodurch die Gesundheitsleiste aktualisiert wird. Zuerst werden es 100 sein, aber wenn wir auf Play klicken, können Sie sehen, dass der Status immer noch Null ist. Das liegt daran, dass es nur aktualisiert wird. Wenn du jetzt auf den Feind klickst, wie du hier siehst, wenn du nicht auf den Feind klickst, ist er immer noch Null. Das liegt daran, dass wir diesen Code jedes Mal ausführen müssen , wenn wir den Feind spawnen Wenn wir hier oben die gegnerische Benutzeroberfläche aktualisieren und die aktuelle Gesundheit aktualisieren, möchte ich auch sagen, Gesundheit aktualisieren Und mach das, anstatt es hier zu tun. Denk daran, dass wir es bereits im Rahmen dieses Events eingerichtet haben. Wir können das löschen und wir können es stattdessen einfach hier einstecken und verbinden. Lass uns kompilieren und auf Play klicken. Und jetzt siehst du, dass es immer voll ist, wenn der Feind spawnt Immer wenn ich klicke, geht es runter. Jetzt funktioniert es, jetzt brauchen wir nur noch das Letzte, und das ist, den Text zu aktualisieren. Das ist für diesen Text viel einfacher . Ziehen wir es raus und ziehen es hierher und sagen wir Text festlegen. Lassen Sie uns hier Text setzen. Für den Text müssen wir ihn nun auf den aktuellen Zustand einstellen . Zieh es hierher. Und zieh das wieder runter. Doppelklicken Sie darauf, damit es besser aussieht. Kompiliere und klicke auf Play. Jetzt siehst du, dass die Gesundheit 100 ist. Wenn wir klicken, geht es runter. Jetzt können wir es noch einmal mit etwas anderem versuchen. Wenn wir zu den Bauplänen gehen, den Spielmodus öffnen, das aktuelle Level auf etwa Stufe drei Immer wenn ich auf den Feind klicke, wird die Gesundheit korrekt aktualisiert Auch hier funktioniert jetzt alles , und lassen Sie uns die aktuelle Stufe wieder auf eins setzen, alles kompilieren, speichern und weitermachen. 44. 5.10 Enemy Hit Flipbook: Jetzt, wo der Schaden wirkt, wird der Feind beschädigt, wenn wir auf den Feind klicken wenn wir auf den Feind klicken. Um es ein bisschen besser zu machen, lassen Sie uns den Treffereffekt spielen , wenn der Feind getroffen wurde. Das wird viel besser aussehen. Denken Sie daran, dass wir in der Datentabelle wir bereits in den Feindinformationen erstellt haben, hier bereits die erfolgreichen Animations-Flipbooks hinzugefügt haben. Lass uns die benutzen. Lass uns das schließen. Gehen wir zurück zu den Feinden. Öffne die feindliche Basis. Innerhalb der feindlichen Basis. Lass uns hier runter gehen und ein neues benutzerdefiniertes Event erstellen. Nennen wir das One-Hit-Effekt. Lass uns das hier machen. Wir wollen einfach das Flipbook spielen. Der Feind hat wieder auf das Flipbook gedrückt, genau wie bevor wir das Flipbook nehmen können. Es ist im Grunde dieser Geist hier. Nimm den Sprite, der von den Sprites gezogen wird, und du kannst Du kannst versuchen zu lesen. Was du mit all dem machen kannst. Das, was wir verwenden wollen, ist dieses eine Set Flipbook, weil wir es auf das Flipbook setzen wollen, wir haben das Flipbook bereits in der Feindinformation. Ich werde das eigentlich einfach hier oben kopieren. Fügen Sie es ein und lassen Sie uns hier nicht verbundene Pins verstecken Lass uns hier unten klicken. Und ich werde nur die Hit-Animation zeigen. Und dann werde ich es hier verbinden. Jetzt wird die Hit-Animation abgespielt. Jetzt der Hit-Effekt. Wann immer wir jetzt klicken, musst du sehen, wo es Sinn macht, dieses Ereignis auszurufen? Es macht am meisten Sinn, wenn der Feind Schaden erleidet. Nachdem du die Gesundheit aktualisiert hast, spielst du hier unten auch das Treffereffekt-Event. Und es wird es abspielen. Ich klicke auf Spielen und dann auf den Feind. Du kannst sehen, dass er es spielt. Im Moment läuft es jedoch für immer. Das müssen wir reparieren. Wir müssen es wieder auf das normale Flipbook umstellen , nachdem der Feind getroffen wurde. Was ich tun werde, ist, diesen Treffer nur zum Flipbook zu lassen, einmal zu spielen und dann werde ich wieder zum normalen Flipbook wechseln. Wir können das so machen, dass wir dieses Monster hierher nehmen, hierher ziehen und Flipbook sagen Sie können versuchen, hier zu lesen, was Sie verwenden können, das ist dieses Ermitteln Sie die Länge des Flipbooks. Dann werde ich es um diese Zeit verzögern. Ich werde es um die Länge des Flipbooks hinauszögern. Wenn das erledigt ist, können wir es hierher bringen. Anstatt das zu kopieren und einzufügen, werde ich hier einfach die Leerlaufanimation verwenden Lassen Sie es uns so zurückstellen. Kopieren Sie das einfach, legen Sie das Flipbook hierher und Sie können es wieder hier ablegen. Ich werde klicken, um einen hinteren Routenknoten und so etwas zu erstellen. Das sollte einfach gut funktionieren. Wir können jetzt versuchen, zu spielen, wenn wir auf den Feind klicken, und hier ist es jetzt, ich werde die Zeit erhöhen , in der dieser Treffereffekt abgespielt wird, weil er zu langsam abgespielt wird und komisch aussieht. Ich gehe zurück zu meinem Vermögen und öffne die Charaktere. Für diesen Hit müssen wir die Frames pro Sekunde erhöhen, damit er viel schneller abgespielt wird. Das können wir tun, indem ich hier einfach auf Control Z klicke. Wenn ich einfach alle Treffer auswähle, halte einfach die Strg-Taste aller getroffenen Flipbooks gedrückt. Sie können erneut mit der rechten Maustaste klicken, Asset-Aktionen ausführen und es über die Eigenschaftsmatrix auswählen. Sie können also alle auf einmal bearbeiten. Und dann legen wir die Frames pro Sekunde fest. Ich werde auf 40 Bilder pro Sekunde einstellen. Lass mich einfach alles speichern und sehen, wie es aussieht. So sieht es aus. Es sieht viel besser aus, als ob der Feind getroffen wird. Das war's mit dem Treffereffekt. Sehr, sehr einfach. Lassen Sie uns jetzt weitermachen und mit dem Tod des Feindes arbeiten. 45. 5.11 Feindlicher Tod: Nun zum Tod des Feindes. Offensichtlich stirbt der Feind immer dann, wenn die Lebenspunkte Null sind Es ist am sinnvollsten, es hier zu tun. Immer wenn wir dem Feind Schaden zufügen, überprüfen wir, ob die aktuelle Gesundheit hier ist, wir überprüfen eigentlich gar nichts. Wir berechnen im Grunde nur die aktuelle Gesundheit und aktualisieren die Gesundheit. Bevor ich die Gesundheit überhaupt aktualisiere, möchte ich überprüfen, ob mein Feind tot ist oder nicht. Lass uns weitermachen und es hier machen. Wann immer die Gesundheit stimmt, sollte der Feind hier drüben sterben. Null sind, sage ich einfach, ob die Lebenspunkte größer als Null sind und mache einen Zweig und verbinde das. Immer wenn der Gesundheitszustand größer als Null ist, wollen wir einfach das fortsetzen, was wir zuvor getan haben. Wenn der Gesundheitszustand jedoch nicht größer als Null ist, bedeutet das, dass der Zustand Null ist , weil wir ihn auf Null beschränken, sodass er nicht negativ sein kann. Wenn sie Null ist, lasst uns weitermachen und den Feind sterben lassen. Ich mache einfach eine neue Variable, ein Goldbarren namens B ist tot Normalerweise füge ich vor meinen Bullion-Variablen ein B hinzu. Und du kannst sehen, wenn du es hierher ziehst, du kannst das B nicht sehen. Das passiert normalerweise in C plus und es ist auch viel einfacher, danach zu suchen, wenn du ein größeres Spiel hast Fügen wir es jetzt hinzu und setzen es auf true. Wenn die Gesundheit nicht größer als Null ist, bedeutet das, dass der Feind tot ist. Also können wir das für wahr erklären. Fahren Sie außerdem einfach mit der Aktualisierung der Gesundheit fort, da wir auch die Gesundheit aktualisieren müssen, um den Treffereffekt zu erzielen. Für diesen können wir jetzt doppelklicken und hintere Routenknoten erstellen, es sieht nicht schlecht aus, einfach so. Was können wir nun mit diesem machen? Mit diesem. Offensichtlich hier im Treffereffekt, wann immer wir den Feind treffen , wie wir es zuvor getan haben. Ich möchte die Idle-Animation nicht immer dann abspielen , wenn der Feind stirbt. Nehmen wir den Tyrannen hier rein. Nachdem wir das verschoben haben, um die Länge des Sprite-Buchs, verzögern wir es Anstatt die inaktive Animation sofort abzuspielen, müssen wir überprüfen, ob der Feind tot ist oder nicht Lasst uns hier zuschlagen und eine Verzweigung machen und fragen, ob der Feind tot ist. Ja, der Feind ist tot. Okay, dann wollen wir ein Death Event spielen. Wir haben noch kein richtiges erstellt, also gehen wir einfach hier runter, klicken mit der rechten Maustaste und erstellen ein neues benutzerdefiniertes Ereignis namens Tod. Wir können später etwas damit anfangen, aber wenn der Feind tot ist, möchte ich das Death-Event hier unten spielen. Wenn der Feind nicht tot ist, möchte ich die Idle-Animation wie zuvor abspielen. Lass uns einfach diesen löschen und ihn hier wieder verbinden. Und doppelklicken Sie noch einmal. Okay, hier drüben im Death Event wollen wir einfach nur die Todesanimation abspielen. Also lassen Sie uns wieder, genau wie zuvor, all das hier zusammen mit der Verzögerung betrachten. Ich werde es kopieren. Ich werde es hier einfügen. Und ich werde es so verbinden. Anstatt die Hit-Animation abzuspielen, werde ich die Verbindung trennen, alles ausblenden und nur die Todesanimation anzeigen. Mach weiter und verbinde das. Stattdessen werden wir es verzögern. Nachdem wir es verzögert haben, möchte ich Acta vernichten. Ich möchte diesen Acta von der Karte entfernen. Lass uns weitermachen und auf Flugzeug klicken. Wenn ich jetzt auf den Feind klicke, stirbt der Feind. Du kannst sehen, wie der Feind verschwindet. Und das sieht gut aus. Im Grunde kann man sehen, dass die Todesanimation auch seltsam ist, der Feind fällt. Das müssen wir reparieren. Bevor wir das tun, müssen wir auch das Level erhöhen, denn wenn der Feind stirbt, wollen wir, dass der nächste Feind da ist Ich kann auch sehen, dass ich gerade einen Bock gesehen habe. Wenn du zu oft klickst, kannst du weiterklicken und das möchte ich nicht tun Wir müssen das auch hier im Ungeklickten überprüfen. Wir wollen nicht auf den Feind klicken, wenn der Feind tot ist Lass uns das verschieben und sagen, ob der Feind tot ist. Und ich werde schreiben , nicht schikanieren Das heißt, wenn der Feind nicht tot ist, wenn tot ist falsch, das ist es, was es hier bedeutet. Wenn der Feind nicht tot ist, dann können wir uns hier abzweigen und fragen, ob der Feind nicht tot ist. Wir können weitermachen und Schaden anrichten. Wenn der Feind tot ist, wollen wir nichts tun. Lass uns auf Jetzt planen klicken und sehen, ob dieser Fehler behoben ist. Und ich kann spammen, du kannst die Box dort sehen, also funktioniert alles wieder. Die Animation des Todes ist seltsam. Das müssen wir reparieren. Aber lassen Sie uns in der nächsten Lektion weitermachen und an der Erhöhung des Levels arbeiten an der Erhöhung des Levels 46. 5.12 Das Level erhöhen: Okay, um das Level zu erhöhen, ist es meiner Meinung nach am besten, es im Spielmodus zu tun, weil hier das aktuelle Level gesteuert wird Lass es uns hier machen, hier drüben. Lass uns ein neues benutzerdefiniertes Event erstellen. Nennen wir das hier Increment Current Level . Sehr einfach Wir wollen nur das aktuelle Level nehmen wir hierher ziehen wollen, und Plus sagen, weil Plus Plus bedeutet, dass Sie um eins erhöht werden und es dann einstellen Das ist dasselbe wie das zu tun und plus eins zu sagen und es dann so einzustellen Es ist dieselbe Methode. Das ist viel kürzer. Denken Sie auch hier daran, dass Plus Plus bedeutet, dass Sie eins hinzufügen. Wenn Sie in Zukunft zwei hinzufügen müssen, können Sie das nicht so machen, Sie müssen es so machen. Aber es macht nicht wirklich Sinn. Unser Level steigt nur um eins. Lass es uns so machen. Jetzt haben wir das Level um eins erhöht, aber wir müssen sicherstellen, dass wir das maximale Level nicht überschreiten Ich werde eine neue Variable namens Max Level erstellen und ich werde sie auch als Ganzzahl verwenden Hier kannst du schreiben , was das maximale Level ist. Bisher kann ich in der Datentabelle sehen, dass mein maximaler Level hier 11 ist. Ich werde hier 11 als mein maximales Level schreiben. Ich ziehe nach unten und sage, wenn die aktuelle Stufe kleiner oder gleich meiner Maximalstufe ist, dann können wir weitermachen und den Feind spawnen Denn wenn du das Level erhöhst, musst du auch den nächsten Feind spawnen Ich werde hier nachfragen, mein aktuelles Level weniger oder gleich dem Maximallevel ist, wir haben das maximale Level nicht überschritten Wenn das stimmt, möchte ich den nächsten Feind spawnen. Denkt daran, dass wir das für den Spawn-Feind bereits im Play-Controller gemacht haben Wenn ich zum Play-Controller gehe, haben wir diesen Spawn-Feind Lass uns weitermachen und das nutzen. Eigentlich verwenden wir das auch hier. Also kannst du das kopieren. Oder wenn du dich daran erinnern willst, wie du es gemacht hast, kannst du den Player-Controller nehmen. Und tatsächlich sehe ich, dass wir für diese keine Variable erstellt haben. Lass uns das hier einfach zu einer Variablen hochstufen und sie Player-Controller nennen. Und verbinde und verbinde stattdessen diesen mit diesem. Eigentlich sollten wir die Verbindung trennen, denn jetzt sind beide verbunden Halten Sie die Alt-Taste gedrückt und klicken Sie, um die Verbindung zu trennen und nur diese Mach weiter und setze sie so zusammen. Lass uns jetzt den Play-Controller nehmen und sagen, Spawn Enemy connected Denkt daran, dass wir hier diese Funktion namens Gegner zum Spawnen bringen für das aktuelle Level eingerichtet haben Gegner zum Spawnen bringen für das aktuelle Im Grunde war das so, dass wir gerade das aktuelle Level erreicht haben, wir haben den Namen des Feindes bekommen, weil es ein neuer Feind ist Denken Sie daran, dass wir das Level um eins erhöht haben. Die aktuelle Stufe wird um eins erhöht. Es wird den nächsten Feind in der Datentabelle nehmen , wenn es der wäre Es wird jetzt das Level um eins erhöhen. Jetzt wird es den Roe nehmen, der Schurke wird hier eingesperrt und Lass uns weitermachen und hier. Das sollte jetzt gut funktionieren. Lass uns das Level erhöhen. Wir müssen es irgendwo laufen lassen. Und lass es uns beim Feind überfahren. Wenn ich den Feind erneut öffne, wann immer der Feind stirbt, kurz bevor wir die Acta zerstören Lass uns weitermachen und das Level erhöhen. Increment Level ist im Spielmodus. Wir haben bereits eine Referenz. Nehmen wir es, sagen wir inkrementiert. Wenn ich hier buchstabieren kann, die aktuelle Stufe erhöhen kann, dann machen wir den Akt zunichte Klicken wir auf „Beschweren“. Siehst du , was passiert, wenn ich auf Play klicke? Ich töte den Feind, der Feind stirbt. In den nächsten Feldern kann ich erneut klicken, der Feind stirbt. Sie können sehen, dass die Todesanimationen repariert werden müssen. Und das können wir auf einfache Weise tun, aber wie Sie sehen, funktioniert alles einwandfrei. Und jetzt sieht es aus wie ein Spiel. Jetzt kannst du danach auf die nächsten gegnerischen Spawns klicken und so weiter Fantastisch, das ist ein wirklich guter Fortschritt. Lassen Sie uns weitermachen und alles speichern und die Todesanimationen in der nächsten Version korrigieren. 47. 5.13 Animationen des Feindes Tod reparieren: Um die Todesanimationen zu korrigieren. Gehen wir zu den Vermögenswerten und Charakteren über. Wir müssen sie reparieren, weil etwas mit diesen Todesanimationen nicht stimmt , wenn wir sie anklicken. Anstatt es hier zu machen, glaube ich, müssen wir es im Sprite machen, die Texturen öffnen und wir öffnen zum Beispiel die Nacht, und es ist der Tod eines Todes Öffne es, du kannst sehen, dass O-Punkt hier ist, zum Beispiel, lass uns die Nacht überprüfen, die Nacht, lass uns die Nacht hier drüben Level 11 für die Nacht Ich stelle die Gesundheit einfach auf eins, ich lasse sie einfach hier sein. Ich werde meinen Schaden ausgleichen. Das ist viel einfacher, wenn ich den Player-Controller oder eher den Player öffne . Und der Cursorschaden. Ich werde es einfach auf etwas Superhohes einstellen, damit wir den Sofortspielmodus starten können . Lass uns hier in den Spielmodus gehen. Lass uns das aktuelle Level auf 11 Play setzen. Ich kann hier klicken, der Feind wird zur Seite geschoben. Das liegt daran, dass sich der Drehpunkt an einer falschen Stelle im Drehpunkt befindet und nicht in der Mitte. Sie müssen diesen in Benutzerdefiniert ändern. Jetzt musst du hier mit dem Drehpunkt spielen. Du kannst damit spielen und du kannst sehen, was passiert. Aus diesem Grund müssen wir nicht damit spielen. Eine, die wir spielen wollen, ist diese. Jetzt ist es bei 24. Wenn ich es nur noch einmal zur Gewohnheit sagen würde, 24, dann möchte ich, dass du sagst, dass so etwas wie minus acht normalerweise eine gute Zahl ist. Minus acht. Man kann sehen, dass es in der Mitte ist. Versuchen Sie nun, um acht zu erhöhen oder sagen Sie minus acht. Normalerweise ist es für Piloten plus acht. Minus acht, Minus acht scheint zu funktionieren. Wir müssen es bei allen machen. Wenn ich die Assets, Charaktere, Texturen, wieder öffne Charaktere, Texturen, muss ich das jetzt für alle tun. Anstatt das zu tun, kann ich mit der rechten Maustaste klicken und in der Eigenschaftsmatrix für das Sprite zur Auswahl von Asset Action It wechseln Eigenschaftsmatrix für das Sprite Lassen Sie uns den Drehpunkt so einstellen, dass er benutzerdefiniert ist. Jetzt kann ich den benutzerdefinierten Drehpunkt hier aus irgendeinem Grund nicht ändern . Ich muss es manuell machen. Ich glaube nicht, dass wir das schaffen können. Wir müssen es manuell machen. Aber wir haben den Drehpunkt auf Benutzerdefiniert gesetzt. Klicken wir nun auf den ersten. Sagen wir minus acht, genau wie zuvor, wir müssen das mit allen machen. Der nächste minus acht, der nächste minus acht, der nächste minus acht und der letzte minus acht. Lassen Sie uns jetzt sehen , ob das funktioniert. Lass uns auf Play klicken. Wenn wir diesen Feind jetzt töten, sieht die Animation gut aus. Ich kann auch einen Bug sehen. Wenn du merkst, wenn ich auf Play klicke und der Feind stirbt, der Feind wieder und verschwindet So kannst du den Feind sehen oder ein Frame erscheint, bevor er verschwindet. Lassen Sie uns das auch hier beheben, solange wir den Fehler sehen Gehen wir zu Blueprint. Gehen wir zum Feind, zur feindlichen Basis Es passiert hier im Tod, weil wir es hinauszögern. Dann erhöhen wir den Level und dann zerstören wir den Schauspieler. Wenn du willst, kannst du dieses Monster herbringen, lass mich das alles wegbringen Wir können hier sagen und sagen, es ist Looping, oder eher Set Looping Set-Looping, wir können das Looping auf False setzen. Dann kannst du versuchen, hier zu sehen, wann ich dafür den Feind töte Aber vielleicht wird es jetzt auch dafür sorgen , dass das Looping beim nächsten Mal falsch ist Lassen Sie uns tatsächlich sehen, was es macht. Das wird es wahrscheinlich tun, wenn ich in den Spielmodus gehe. Öffne jetzt den Spielmodus. Stellen Sie das aktuelle Level auf etwa neun Spiele ein. Wenn ich diesen Kerl töte, dann den nächsten, okay, es ist okay. Jetzt funktioniert alles in Ordnung. Das behebt das Problem. Gehen wir zurück zu Level 11. Sie können sehen, dass es den Drehpunkt repariert, die Todesanimation für diesen Kerl repariert. Hier musst du sie alle für Level eins testen. Lass mich dir nur ein paar davon zeigen und ich muss es in meiner Zeit machen, sonst wird das Video zu lang. Aber lass mich dir nur zwei davon zeigen. Ist der nächste, dieser hier. Gehen wir zu Texturen. Lasst uns den Tod hier unten finden. Ich werde sie alle auswählen. Klicken Sie mit der rechten Maustaste darauf. Auswahl in der Eigenschaftsmatrix, hier im Sprite Lassen Sie uns den Drehpunkt auf Benutzerdefiniert ändern. Lassen Sie uns, lassen Sie uns das schließen. Öffnen Sie jetzt jedes einzelne hier. Nun, was diesen angeht, kannst du sehen, dass er hier oben ist. Vielleicht müssen wir Y und X korrigieren . Ich sage minus acht. Es ist nicht minus acht, es ist plus acht. Plus acht, um wieder zur Standardeinstellung zurückzukehren. Und plus acht, vielleicht muss ich das. Und wieder acht, so wie hier, es sind 48. Lass uns einfach versuchen, das zu tun. Plus 16 im Grunde insgesamt. Plus 16, plus 16. Ich muss raten und sehen , dass das hier richtig ist. Plus 16. 16 auch für diesen. Lass uns auf Play klicken. Sie können sehen, dass die Todesanimation korrekt ist. Im Moment ist der Tod richtig. Wir müssen das noch einmal für sie alle tun. Plus acht minus acht Pixel ist immer die beste Option. Der nächste ist der Roe. Lass uns das E probieren. Den Rest kannst du selbst ausprobieren. Tod, wir klicken auf Auswahl in der Eigenschaftenmatrix. Gehen wir hier zu Sprite. Ändern Sie den Drehpunkt oder den Drehmodus auf Benutzerdefiniert. Öffnen wir es wieder in der ersten , sagen wir plus acht. Ich glaube, es ist wieder plus acht. Plus 16. Machen wir es für den Rest von ihnen. Sagen wir mal plus 16 hier drüben. Plus 16, glaube ich, ist dieselbe Zahl. Lassen Sie uns diese Zahl kopieren und diese Zahl im Grunde so in alle einfügen. Sei vorsichtig, es ist nicht immer dieselbe Zahl im X. Pass einfach lass uns spielen und schauen: Jetzt ist der erste Tod richtig, der zweite Tod ist richtig. Okay, lass es uns machen. Ich werde es jetzt alleine machen. Bearbeiten Sie sie im Grunde einfach in der Eigenschaftsmatrix auf Benutzerdefiniert und sagen Sie dann plus acht oder minus acht, bis das Problem behoben ist. In Ordnung, jetzt bin ich fertig. Wenn ich jetzt klicke, kannst du sehen, wann immer ich die Feinde töte, sie sind alle repariert, was die Todesanimation angeht. Es sieht also alles gut aus. Ich werde es einfach schließen. Das war es jetzt. Denken Sie daran, zum Player-Controller zurückzukehren , den Spielmodus zu steuern und das aktuelle Level auf eins einzustellen , wenn Sie möchten. Stellen Sie außerdem die Player-Controller so ein, dass sie nicht spielen. Kontrolliere den Cursorschaden des Spielers auf etwa 15. Kompilieren Sie erneut und jetzt sind wir damit fertig und fahren wir mit dem nächsten fort. 48. 5.14 Klicke auf VFX: Ordnung, was wir jetzt tun können, ist, einen Treffereffekt zu erzielen, wann immer wir den Feind treffen So können wir einen Effekt haben, der auftaucht. Also visueller Effekt , wann immer wir treffen. Lass uns weitermachen und das machen. Nun, was den Hit-Effekt angeht, habe ich dir etwas aus dem Kursmaterial gegeben. Wenn du es hier in den Kursmaterialien öffnest, möchte ich, dass du die Benutzeroberfläche öffnest. In der Benutzeroberfläche habe ich Ihnen hier einen Hit-Effekt gegeben. Lass es uns einfach in die Bilder einfügen. Lass es mich einfach hier reinziehen. Füge es jetzt hinzu, es ist Pixel. Ich klicke mit der rechten Maustaste auf Aktionen und trage Papier auf die Einstellungen auf. Das werden wir hinzufügen. Nur ein einfacher Effekt dafür. Auch das sind ein paar Sprites zusammen. Lass uns einfach wie zuvor mit der rechten Maustaste klicken und Sprites extrahieren. Fahren Sie fort und wählen Sie hier Grid aus. Für das Grid müssen wir erraten, was es ist. Vielleicht 64 mal 64. Sie können sehen, dass es tatsächlich weniger als das ist. Aber was wir tun können, ist, dass Sie sehen können, dass es zwei mal zwei ist. Also können wir das tatsächlich teilen, wir können sagen geteilt durch zwei, oder du kannst 32 schreiben. Das ist auch in Ordnung, geteilt durch zwei und es wird richtig sein, 32 mal 32. Lassen Sie uns weitermachen und das alles extrahieren. Lass mich einfach schreiben, hier klicken, damit es nicht mit all dem überfüllt Lassen Sie mich einen neuen Ordner erstellen, und ich nenne ihn Texturen Und mach weiter und wähle all das aus. Und wähle das auch aus. Und füge es hier und hier hinzu. Lass uns einfach ein Flipbook daraus machen. Ich wähle das alles aus und ich kann schreiben Klick, ich kann das, beende das Flipbook. Nennen wir es Flipbook. Hit-Effekt. Lass es uns öffnen. Und so sieht es jetzt mit dem Hit-Effekt aus. Ich denke, die Zahl der Bilder pro Sekunde bei 15 ist für mich in Ordnung. Sieht gut aus. Wir können es immer im Spiel anpassen. Lass es uns vorerst schließen. Und ziehen Sie das in den Bilderordner. Es ist hier draußen und wir können es jetzt benutzen. Sie können das auf zwei Arten tun. Die erste Art, wie Sie das tun können, ist wie zuvor im Bauplan Genau wie bei den anderen Sprites können Sie das Sprite hier hinzufügen Immer wenn du auf den Feind klickst, kannst du den Sprite so spielen, dass er Schaden anrichtet Der Nachteil ist jedoch, dass du den Schadenseffekt nur einmal spielen kannst den Schadenseffekt nur einmal wenn du zweimal hintereinander klickst Es wird den letzten Effekt annullieren und der neue wird abgespielt. Das gefällt mir nicht. Ich möchte so viele Effekte erzeugen, wie ich will, je nachdem, wie schnell der Spieler ist Wenn wir auf das klicken, machen wir weiter mit den Bauplänen. Und hier klicken wir mit der rechten Maustaste, um einen neuen Blueprint-Kurs und einfach einen einfachen Schauspieler zu erstellen , der dieses Flipbook enthält Schauspieler erstellen. Nennen wir das einen BP-Hit-Effekt. Lass es uns hier öffnen. Lass uns ein Flipbook hinzufügen. Wenn Sie nach einem Flipbook suchen, können Sie es hinzufügen. Ich nenne es einfach Hit Effect. Jetzt können wir das Flipbook hier hinzufügen. Es ist dieses eine Flipbook. Hit Effect. Fahren Sie fort und wählen Sie es aus. Und hier kannst du es sehen. Was diesen Treffereffekt angeht, gehe ich einfach runter zur Kollision und stelle sicher , dass es keine Kollision gibt, weil ich das nicht will Ich werde bei der Kollision diese Kollision entfernen und Überlappungsereignisse erzeugen. Ich sage hier nein zu den Kollisions-Presets. Ich sage einfach keine Kollision, es gibt überhaupt keine Kollision Ich kompiliere und lass es uns schließen. Jetzt möchte ich das immer dann spawnen , wenn ich auf den Feind klicke. Und denken Sie daran, dass das Spawnen immer unter der Spielersteuerung erfolgt Also werde ich dafür einfach hier reingehen. Ich werde einfach ein neues benutzerdefiniertes Event erstellen. Ich nenne es wie zuvor Spawn-Effekte, ziehe es hierher und sage Spawn Acta Nun, welche Klausel wollen wir spawnen? Wir müssen es hier nicht verbinden, weil es nur ein statischer Wert ist und es der Treffereffekt ist, eine Blaupause, die wir hier spawnen wollen Ich würde sagen, immer spawnen, Kollisionen ignorieren. Was nun die Spawn-Transformation angeht, hängt es davon ab, wo wir mit der Maus darauf drücken , um diesen Wert zu finden Was wir tun können, ist rechten Maustaste zu klicken und diese Funktion zu verwenden Wenn du nur nach Mäusen suchst, wenn du nicht weißt, wie sie heißen, dann mache ich das. Manchmal kann man sich all diese ansehen. Was wir für diese Instanz verwenden können, können wir auch für diese verwenden. Konvertiert die Position der Maus in den Weltraum. Wo auch immer sich die Maus befindet, wir werden den Effekt dort erzeugen, wo der Spieler geklickt Lass uns weitermachen und das machen. Lass es uns hier so verbinden. Es wird es für uns zu einer Transformation machen und es verbinden. Lass uns versuchen, das zu tun. Vorerst müssen wir den Treffereffekt irgendwo erzeugen. Lassen Sie uns ihn hier im Feind spawnen. Immer wenn wir auf den Feind klicken und der Feind nicht tot ist, fügen wir den Schaden zu, aber wir wollen auch den Treffereffekt spielen Lass uns hier vom Player-Controller aus zuschlagen. Und wir haben nicht wirklich einen Hinweis auf den Player-Controller. Lassen Sie uns das tun. Lass mich diesen Spielmodus einfach hierher ziehen. Lass mich Controller sagen. Und wähle es aus. Wir haben das schon einmal gemacht. Wir können per Drag-and-Say die Player-Controller-Referenz abrufen. Wir haben bereits diese Blueprint-Schnittstelle. Lassen Sie uns das zu Recht zu einer Variablen namens Player-Controller heraufstufen einer Variablen namens Player-Controller Lass uns weitermachen und es hier verbinden. Wir haben das sehr schnell. Jetzt können wir diesen Player-Controller hierher bringen und sagen, wie wir ihn nennen. Wenn ich einfach zurückgehe, kann ich mich nicht erinnern, gehe ich zurück hierher. Wir nannten es Spawn Hit Effect, Drag Here. Und sagen wir Spawn-Treffereffekt, der jedes Mal darauf reagiert, wenn wir Schaden anrichten und kompilieren und speichern Wenn wir jetzt einfach auf den Feind klicken, sehen wir, dass wir ihn tatsächlich hier spawnen Aber jetzt kannst du sehen, dass es für immer in einer Endlosschleife läuft. Das müssen wir auch reparieren. Ihr habt auch gesehen, dass der Effekt im Grunde im Inneren des Feindes liegt. Ich möchte nicht, dass das auch behoben wird, da der Effekt im Inneren des Feindes liegt. Das liegt daran, dass wir mit zwei D arbeiten und diesen grünen Wert im Grunde kontrollieren. Denken Sie daran, dass der grüne Wert das Y ist, Sie bewegen Dinge nach hinten oder vorne, anstatt dass er an der Mausposition Null ist. Nehmen wir das und sagen Plus, versuchen wir, plus eins im Y zu sagen. Lassen Sie uns weitermachen und es wieder hier umrechnen. Spielen Sie und sehen Sie, wie Plus dem Feind hinterherläuft. Wenn du es stattdessen einfach löschst und Minus, minus eins sagst , mach weiter und verbinde es erneut. Abspielen. Jetzt kannst du sehen, dass es vor dem Feind ist. Okay, jetzt lass uns weitermachen und wir müssen zerstören. Denn vergiss nicht, dass es sehr wichtig ist , dass du die Handlung zerstörst. Denn wenn du weiter klickst, denk daran, dass wir Acts erzeugen Schau einfach hier, wie viele Schauspieler du hervorbringst. Jedes Mal, wenn ich klicke, spawne ich einen Schauspieler. Stellen Sie sich vor, wenn Sie 2 Stunden später weiter klicken, haben Sie so viele Schauspieler , dass Sie Ihr eigenes Spiel zum Absturz bringen Achte darauf, dass du jedes Mal, wenn du etwas spawnst, es auch wieder entfernst, wenn du es nicht mehr benötigst Innerhalb dieses Treffereffekts zu Beginn des Spiels werde ich einfach diesen Treffereffekt verwenden Das ist im Grunde dieses Flipbook hier. Jetzt werde ich sagen, Looping-Set ist Looping falsch, ich möchte nicht, dass es ewig wiederholt wird Außerdem, genau wie zuvor verwenden wir diese Flipbook-Länge, ermitteln die Flipbook-Länge, und dann erstelle ich einen Delay-Node Nachdem der Effekt einmal abgespielt wurde, werde ich den Schauspieler vernichten. Zu welchem Schauspieler werde ich gehen? Ich werde mich selbst zerstören, das heißt, ich werde diesen Bauplan hier zerstören Und wenn ich auf „Jetzt abspielen“ klicke und auch auf die Schauspieler hier oben achte , klicke ich hier, ich spawne einen Schauspieler, aber es geht zurück auf 15 und es wird nur einmal abgespielt, wie Sie hier sehen können Obwohl ich hier spamme und klicke, richte ich Schaden an. Es sieht nett aus. Es wird immer auf 15 zurückgehen, weil es jeden Effekt zerstört , den ich kreiere und der perfekt funktioniert. Gehen wir nun zum nächsten über. 49. 5.15 Die Floating-Text-Benutzeroberfläche entwerfen: Lassen Sie uns nun weitermachen und die schwebende Text-Benutzeroberfläche entwerfen, die immer dann erscheint, wenn Sie den Feind treffen Und es wird dir sagen, wie viel Schaden du angerichtet hast. Bevor wir das tun, lassen Sie mich kurz HP hinter dem Gesundheitsnamen hinzufügen . Wir wissen, dass es Gesundheit ist. Lass uns das einfach ganz schnell machen, bevor wir weitermachen. Wenn du das Widget für die Gesundheitsleiste öffnest, Blueprint, den wir zuvor im Diagramm erstellt haben, haben wir hier die Gesundheit hinzugefügt Denken Sie jetzt daran, dass Sie, wenn Sie neben dynamischem Text auch statischen Text verwenden möchten , das Textformat ganz einfach verwenden müssen Schreiben Sie einfach Formattext von hier aus. Lass uns offene geschweifte Klammern schreiben und ich nenne es einfach Gesundheit und schließe geschweifte Klammern Jetzt erscheint das, dann können wir Leerzeichen HP schreiben. Wir haben HP dahinter. Und ich werde das alles einfach löschen. Und wir können es tatsächlich einfach von hier ziehen und einstecken, und es wird diese Integer-Variable verwenden. Das ist jetzt behoben und das ist alles, was wir tun mussten. Jetzt kannst du sehen, ob ich auf Play klicke. Wenn ich das einfach neu organisiere und auf Play klicke. Jetzt siehst du, dass ich am Ende auch HP habe, und ich finde, es sieht viel besser Okay, lass es uns schließen. Lass uns jetzt mit der rechten Maustaste hier klicken. Gehen Sie zur Benutzeroberfläche und erstellen Sie ein neues Widget, Blueprint. Erstelle ein neues Nennen wir diesen einen schwebenden Text. Nun zu diesem, lassen Sie uns ihn noch einmal öffnen. Lassen Sie uns zuerst eine Leinwand hinzufügen. Dann fügen wir etwas für den Text hinzu. Wir können es tatsächlich einfach aus den Feindinformationen kopieren. Wir können hier dasselbe verwenden, Steuerung für den Text. Gehen Sie hier zum Canvas-Panel und drücken Sie V. Und hier haben Sie es für den gesamten Bildschirm. Ich werde es stattdessen so ändern, wie es auf dem Bildschirm gewünscht ist. Dann wieder die Bildschirmgröße und wie zuvor auf ein generisches Laptop-Modell umstellen. außerdem sicher, dass der Text hier ist. Das liegt schon daran, dass wir ihn von hier kopiert haben. Aber stellen Sie einfach sicher, dass die Ausrichtung 0,50 0,5 und die Position 00 ist Es ist hier perfekt zensiert und auch, dass die Größe zum Inhalt angekreuzt ist Okay, hier ist der Text , den wir brauchen. Und das war eigentlich, ich meine, da ist nicht wirklich viel dran , weil wir den Schaden hier haben werden. Aber du kannst einfach einen Fülltext schreiben wenn du willst, zum Beispiel. Du kannst zum Beispiel schreiben, dass dies der Schaden ist, den der Spieler angerichtet hat. Offensichtlich wird der Spieler am Anfang nicht so viel tun. Aber auch das ist nur ein Füllstoff. Lass es uns schließen und lass uns weitermachen. 50. 5.16 Floating-Text-Animation: Es ist jetzt an der Zeit, einige UI-Animationen zu machen. Wenn Sie Ihre schwebende Text-Benutzeroberfläche öffnen, haben Sie die Animation wieder hier unten. Wenn Sie sie jetzt nicht geöffnet haben, können Sie jederzeit hier unten und auf die Registerkarte Animation klicken. Und dann können Sie im Layout auf Duck klicken. Und es wird die ganze Zeit aktiv bleiben . Um nun eine UI-Animation zu erstellen, müssen Sie uns zuerst die Animation erstellen lassen. Wenn ich hier unten auf den Link klicke, nenne ich es hier einfach schwebenden Text. Zuerst musst du auf das klicken, was du willst, um diesen Text zu animieren Zum Beispiel diesen Text, ich werde den Namen tatsächlich ändern Es sind keine Feindinformationen, es ist ein schwebender Text wie dieser. Sie müssen dabei auf die Plus-Spur klicken und schon haben Sie den schwebenden Text ausgewählt. Sie können sehen, dass es hier unten erscheint. Wenn Sie auf den schwebenden Text klicken, klicken Sie erneut hier. Dann haben wir etwas, das als Transformation bezeichnet wird. Und hier ändern Sie, wo es sich auf dem Bildschirm befindet, sowie die Drehung des Textes. Wenn Sie nur die Transformation und die Übersetzung öffnen, möchten wir dies bearbeiten. Was ich hier machen möchte, ist sehr, sehr einfach. Ich möchte nur, dass dieser schwebende Text immer nach oben fliegt, wenn ich den Feind treffe. Also lasst uns hier bei Null anfangen, es ist in Ordnung, nichts wird passieren. Es ist Null. Wenn ich jetzt auf, sagen wir 0,6 Sekunden, dann mache ich etwa -100 und das Y, es ist hier oben. Jetzt können Sie sehen , dass der Text nach oben fliegt, wenn Sie ihn ziehen Text nach oben fliegt Jetzt musst du es im Spiel testen wie schnell es tatsächlich fliegt. Aber wenn du einfach auf Leertaste klickst, wenn ich nur diese Zeilen hier für den schwebenden Testtext entferne , kannst du einfach auf Leertaste klicken, um ihn abzuspielen. Dadurch siehst du, wie schnell es tatsächlich abgespielt wird. Ich denke, es ist in Ordnung. Wir können es immer anpassen, wenn wir nicht zufrieden sind. Als Nächstes möchte ich, dass es in dieser Phase der Animation verschwindet. Und dann erscheint es und dann verschwindet es wieder hier oben. Lass uns hier oben klicken. Finden wir die Opazität hier unten, die Rendo-Opazität. Lass uns weitermachen und darauf klicken. Am Anfang möchte ich, dass es Null ist. Es beginnt ohne Opazität und dann geht es vielleicht bis etwa 15. Hier bei 15 möchte ich, dass die Opazität eins ist. Auch hier erscheint es Jetzt kannst du es sehen, oder es erscheint hier für uns, es ist am Anfang unsichtbar. Dann glaube ich, um 0.45 Uhr möchte ich, dass es eins ist. Auch hier klicken Sie einfach auf diesen kleinen Punkt , um einen Animationspunkt hinzuzufügen Dann möchte ich, dass es am Ende Null ist. Sie können wieder sehen, dass es so aussieht. Und dann verschwindet es wieder hier drüben. Klicken Sie auf das Leerzeichen und sehen Sie , wie die Animation aussieht. Eine sehr einfache Animation, aber professionell aussieht. Irgendwie, sehr schnell. Man kann viel Zeit damit verbringen, manchmal verbringe ich eine halbe Stunde, 1 Stunde, 2 Stunden damit, etwas sehr Komplexes zu machen. Sie können den Text immer nicht nur nach oben fliegen lassen, sondern er kann auch so in einem Bogen zur Seite fliegen , so wie hier. Sie können versuchen, so viel mit der Animation zu spielen , wie Sie möchten. Es sieht immer professionell aus , wenn ein Spiel richtig gut ist. Ich zum Beispiel Animation, Textanimation. Das war alles, was wir jetzt tun mussten , da wir die Animation haben. Lass uns mit dem nächsten weitermachen. 51. 5.17 Den Floating-Text generieren: Ordnung, für schwebenden Text müssen wir ihn in das Level spawnen Nun, wir können es nicht zum Feind hinzufügen, normalerweise sind wir in den Feind gegangen und haben hier ein Widget wie die Gesundheitsleiste und so weiter hinzugefügt Was den Text betrifft, da wir so wird viel Text als Kampftext erscheinen, da wir den Feind spammen und wir hier klicken viel Text als Kampftext erscheinen Wir können ihn nicht dem Feind hinzufügen, denn wenn wir ihn dem Feind hinzufügen, erscheint nur eine Instanz dieses Textes Es wird ein bisschen dämlich aussehen, wenn hier nur ein Text fliegt, genau wie der Treffereffekt hier. Wenn wir auf den Feind klicken, müssen wir den Text spawnen, genau wie wir es hier getan haben. Denken Sie daran, dass wir den Treffereffekt tatsächlich einem Akteur zugeordnet spawnt , und er löscht sich dann später Wir müssen dieselbe Methode anwenden. Klicken wir mit der rechten Maustaste hier und erstellen Sie eine neue Blueprint-Klasse Wählen Sie einfach einen einfachen Akteur Nennen wir diesen einen BP-Floating-Text Jetzt hier drinnen, lass uns diesen öffnen. Für den schwebenden Text klicken wir auf ein Widget für die Suche nach einem Widget. Fahren Sie fort und wählen Sie Widget eins aus. Nennen wir es einfach schwebenden Text. nun darauf klicken, ändern wir den Bereich auf Bildschirm, weil wir möchten, dass er in Richtung des Bildschirms für die Widget-Klasse angezeigt wird. Ändern wir es in den schwebenden Text. Zeichne die gewünschte Größe, dann sollte es in Ordnung sein. Machen Sie weiter und kompilieren Sie das Nächste, was wir tun wollen. Denken Sie jetzt daran, dass wir es jedes Mal spawnen müssen , wenn wir auf den Feind klicken Sehen wir uns hier die Feinde und die Basis Immer wenn wir auf den Feind klicken und Schaden zufügen, wollen wir diesen Akteur spawnen Denkt jetzt an das Spawnen. Wir machen das im Player-Controller Gehen wir zum Player-Controller, öffnen ihn, hier spawnen wir hier drinnen Lass uns weitermachen und ein neues Event dafür machen. Klicken wir mit der rechten Maustaste und erstellen Sie ein neues benutzerdefiniertes Ereignis für dieses Event. Nennen wir es Spawn-Floating-Text. Auch hier klicken wir mit der rechten Maustaste und verwenden den sogenannten Spawn-Schauspieler aus dem Unterricht Dieser, das Ding, das wir genauso wie zuvor spawnen wollen. Wir müssen es nicht so dynamisch in das Event integrieren weil es nur eine Klasse ästhetischer Klasse ist , die wir hervorbringen Genau wie der Hit-Effekt hier. Wir wählen den schwebenden Text aus, den wir erzeugen möchten, und verbinden ihn dann Wo wollen wir ihn jetzt spawnen? Wir brauchen einen Spawn-Ort, wir brauchen die Transformation nicht wirklich Stattdessen nehme ich das und sage „Transformieren durchführen“. Wenn wir das tun, brechen wir die Transformation. Denken Sie an eine Trans. Wenn Sie sich das Detailfenster ansehen etwas auswählen, besteht es aus der Position, Drehung und Skalierung des Elements, wenn wir es aufschlüsseln. Und es heißt machen, denken Sie daran, dass es Pause heißt, wenn es in diese Richtung geht, aber es heißt, es geht so. Kann immer von hier aus schleppen. Sagen wir zum Beispiel Break Vector. Aber ich kann nicht sagen, dass man den Vektor auf diese Weise erstellen kann. Das ergibt keinen Sinn. Diesen Weg durchbrechen, diesen Weg gehen. Wir machen die Transformation. So können wir auch die Position, die Rotation und den Maßstab sehen . Jetzt, wo wir den Standort haben, ziehen wir ihn einfach hierher und schauen, was passiert. Wir können ihn später jederzeit bearbeiten. Dafür nenne ich es Spawn-Standort. Dann brauchen wir auch den Text, den wir brauchen, was sollte der Text sein Lassen Sie uns das einfach später bearbeiten. Wir müssen es jetzt nicht tun, aber jetzt veröffentlichen wir den Text zumindest auch hier unten. Stellen Sie sicher, dass Sie „Immer spawn, Kollisionen ignorieren“ auswählen und mit der Kompilierung fortfahren Stellen wir sicher, dass die Kollisionen nicht da sind. Wenn ich zum schwebenden Text gehe und auf das Widget klicke, gehe ich zum untersten Zeichen, gehe nach oben auf Nein , entferne, generiere Überlappungsereignisse Und auch für die Kollisions-Voreinstellungen stelle ich Einstellung „Keine Kollision Wir wollen hier keine Kollision mit diesem Schauspieler. Mach weiter und speichere alles. uns jetzt hier in der feindlichen Basis versuchen, Lasst uns jetzt hier in der feindlichen Basis versuchen, es hier für den Play-Controller zu spawnen Das haben wir schon hier. Lasst uns zuschlagen und sagen, schwebenden Text erzeugen. Fahren Sie fort und wählen Sie jetzt aus, wo wir einen Ort angeben müssen , an dem wir ihn spawnen möchten Jetzt, wo wir ihn spawnen wollen, ist genau dort, wo sich dieser Feind gerade befindet Und denkt daran, dass wir im Feind sind. Und ich übertreibe das Ganze und sage, suche dir einen Standort. Oder den Standort des Feindes ermitteln, ich werde ihn also einfach spawnen Jetzt klicken wir einfach auf Spielen und schauen, was passiert, wenn ich hier auf den Akt klicke oder auf den Feind Ihr könnt sehen, dass es tatsächlich spawnt, aber wir müssen es auch entfernen So sieht es nicht fehlerhaft aus, aber damit machen wir in einer anderen Lektion weiter Zumindest spawnen wir jetzt den Text, wenn wir auf den Feind klicken Wie du hier sehen kannst, spielen wir im Grunde diesen schwebenden Spawn-Text Was ich hier auch für den Spawn-Treffereffekt tun möchte, ist, im Grunde jedes Mal gespielt wird, wenn wir den Feind treffen Und wir erzeugen den schwebenden Text , weil wir den Feind treffen Was wir jetzt tun können, da ich derzeit kein Problem damit sehe, können wir den Treffereffekt immer hier drin Jedes Mal, wenn wir Schaden anrichten, müssen wir dies und das spielen Ich spiele gerne so wenig Funktionen wie möglich, damit du dein Spiel nicht verwirrst. Später werde ich X kontrollieren, um das zu entfernen. Dann werde ich diesen schwebenden Spawn-Text verbinden. Erst dann gehe ich hier rein. Hier können wir diesen Treffereffekt erzeugen. Wir haben diese Veranstaltung bereits hier drinnen. Einfach ziehen und sagen, Spawn-Treffereffekt. Jetzt können wir den Treffereffekt jedes Mal erzeugen , wenn wir den schwebenden Text erzeugen Wenn es später im Spiel eine Instanz gibt, in der wir den schwebenden Text ohne den Treffereffekt erzeugen müssen, können wir jederzeit zurückkommen und ihn hier hinzufügen Aber im Moment müssen wir nicht wirklich ständig zwei Ereignisse hinzufügen Wir können das immer spielen und alles wird gut sein. Okay, das war für den Moment. Lass uns mit dem nächsten weitermachen. 52. 5.18 Aktualisieren der Floating-Textanzeige: Okay, jetzt werden wir den schwebenden Text korrekt aktualisieren Jetzt kannst du versuchen , es selbst zu machen , weil es eigentlich eine einfache Aufgabe ist. Versuche also darüber nachzudenken, wie ich diesen schwebenden Text korrekt aktualisieren kann . Wenn ich auf den Feind klicke, sollte dieser Text korrekt angezeigt werden. Es ist immer schön, es selbst zu machen , wenn man sich immer noch nicht sicher ist, wie man es macht. Lass uns jetzt versuchen, gemeinsam weiterzumachen. Ich fange manchmal gerne rückwärts an. Anstatt vom Player-Controller aus zu starten und zu versuchen, die Dinge hier zu aktualisieren. Ich möchte mit dem letzten Schritt beginnen, weil er am Ende am sinnvollsten sein wird. Gehen wir zur Benutzeroberfläche. Lassen Sie uns den schwebenden Text öffnen. Im Grunde ist das Ziel, diesen Text hier zu aktualisieren. Wir haben es Text Floating Text genannt und dann haben wir dafür gesorgt, dass es hier in der Grafik variabel ist. Lass uns das alles einfach löschen. Was wir tun wollen, ist, einfach diesen Text zu nehmen und den Text zu verwenden, der als Festtext bezeichnet wird. Das ist im Grunde unser Ziel. Wir wollen dem Text einen Wert geben, der dem Schaden entspricht, den wir mit der Maus anrichten. Was wir tun können, ist, mit der rechten Maustaste zu klicken und ein benutzerdefiniertes Ereignis durchzuführen. Und dann können wir sagen, schwebenden Text aktualisieren. Wir können einfach dieses benutzerdefinierte Ereignis verwenden. Lassen Sie uns weitermachen und es jetzt für den Text verbinden , mit dem wir es aktualisieren möchten Wir können es jederzeit einfach in das Ereignis einbinden und später dynamisch aktualisieren. Nennen wir es einfach Text, oder Sie können es auch schwebenden Text nennen. Ich nenne es einfach Text. Eigentlich müssen wir es nicht Floating Text nennen und dann kompilieren. Jetzt müssen wir dieses Update verwenden, Floating Text. Ich werde es über meinen Schauspieler aktualisieren , weil das für mich am sinnvollsten ist. Ich gehe zu den Bauplänen. Ich gehe zum schwebenden Text. Öffne es hier drinnen, wir wollen dieses Update verwenden, schwebenden Text. Ich, ich werde es immer benutzen, wenn wir den Schauspieler spawnen. Jedes Mal, wenn ich klicke und wir diesen Schauspieler spawnen, möchte ich, dass er sofort aktualisiert wird Ich werde einfach den Anfang benutzen. Spiel hier im schwebenden Text, Schauspieler hier. Lassen Sie uns diesen schwebenden Text verwenden. Wir haben das Widget hinzugefügt, ziehen wir es hierher. Und sagen wir, holen Sie sich Benutzer-Widget-Daten. Oder holen Sie sich lieber ein Benutzer-Widget-Objekt, keine Daten. Nun, das werden wir noch einmal sagen, kostet zwei. Lassen Sie uns die Kosten auf den schwebenden Text hier drüben reduzieren. Mach weiter und verbinde es. Jetzt werden wir ziehen und jetzt können wir das Update Floating Text, UI, verwenden. Wir ziehen und sagen Floating-Text I aktualisieren. Wir benötigen einen Wert aus diesem Text, weil Sie jetzt sehen können, ob ich zum Beispiel einfach Hallo schreibe. Und ich kompiliere und klicke auf Play. Und ich klicke hier, du kannst sehen, dass es jetzt korrekt aktualisiert wird. Aber wie komme ich hier an den Schaden? Weil wir nicht wirklich eine Textvariable haben und ich auch keine Plug-ins dafür habe, wie bei allen Eingaben. Jetzt können Sie eine neue Variable erstellen. Wenn ich hier eine neue Variable erstelle und sie einfach Text nenne, werde ich sie in eine Zeichenfolge ändern. Was wir jetzt tun können, ist, dass wir runtergehen und den Player Controller öffnen können . Denken Sie daran, dass dies der nächste Schritt ist, wenn wir rückwärts gehen, da wir im Play-Controller diesen schwebenden Text Da du es zu einer editierbaren Instanz gemacht hast und beim Spawn offenlegst, was jetzt passiert, wenn du kompilierst, erscheint es manchmal nicht, also musst du auf Datei klicken und Wenn Sie das tun, können Sie sehen, dass dieser Text erscheint. Das liegt daran, dass Sie hier eine Instanz einstellen , die editierbar ist und beim Spawn verfügbar ist, wodurch diese Instanz dann hier angezeigt wird, wenn wir den Schauspieler spawnen Was wir jetzt tun können, ist, diesen Text zu nehmen und ihn wieder hier einzufügen Ich werde es einfach über diesem Spawn-Ort platzieren und wir können es einfach Text nennen Das ist in Ordnung. Wenn ich jetzt zum schwebenden Text zurückkehre, lassen Sie mich einfach diesen Text hier nehmen und ihn hier einfügen. Es wird meinen Text automatisch in eine Zeichenfolge wie diese ändern . Okay, jetzt fügen wir es dem Player-Controller hier hinzu, also sollte es in der feindlichen Basis erscheinen. Also lasst uns weitermachen und die Feinde einchecken und die feindliche Basis öffnen . Und jetzt können wir sehen, dass wir eine Texteingabe haben. Nun zur Texteingabe Was wir einfach anzeigen wollen, ist der Schaden an der Maus. Und das haben wir schon. Das haben wir in der Spielfigur, wir haben den Cursorschaden Du kannst immer C V kontrollieren. Kopiere es hierher und verbinde es einfach Jetzt wird es deinen Float in eine Textvariable umwandeln . Okay, das sollte jetzt eigentlich perfekt funktionieren , wenn wir einfach auf Play klicken und es testen. Wenn ich mit der Maus auf My Damage is 15 klicke, und das ist richtig, funktioniert alles einwandfrei. Aber wie Sie sehen können, steckt es immer noch hier in der Mitte fest, weil wir mit der Animation spielen müssen. Und das werden wir in der nächsten Lektion tun. Aber nur um es schnell durchzugehen, Sie können sehen, wie wir rückwärts arbeiten manchmal sogar sinnvoller ist fange damit an, ob Sie das wirklich tun wollen, ich möchte meinen Text festlegen, und hier habe ich angefangen Dann gehe ich rückwärts und versuche das zu tun. Und manchmal macht es sogar mehr Sinn , wenn wir in der Animate-Basis den Cursorschaden einbauen Es geht bis zum schwebenden Spawn-Text, der sich im Play-Controller befindet und auf den Schauspieler reagiert Und wir fügen diese Textinformationen hier ein, die im Grunde erscheinen, weil wir hier auf den Text geklickt haben und ihn beim hier ein, die im Grunde Spawnen dieser Textinformationen sichtbar gemacht Spawnen dieser Textinformationen sichtbar Jetzt, wo wir das getan haben, fügen wir sie in die schwebende Text-Benutzeroberfläche des Updates Und es wird die Benutzeroberfläche so aktualisieren. Okay, das war es vorerst. Lass uns mit dem nächsten weitermachen. 53. 5.19 Die Floating-Text-Animation spielen: In Ordnung, lassen Sie uns weitermachen und die Animation abspielen. Gehen wir zurück zur Benutzeroberfläche und öffnen die schwebende Text-Benutzeroberfläche hier die schwebende Text-Benutzeroberfläche . Gehen wir zur Grafik. In der Grafik sehen wir diese schwebende Textanimation, die wir zuvor erstellt haben, wie Sie hier sehen können nun zu dieser Animation Gehen wir nun zu dieser Animation zur Grafik. Ziehen wir es hinein. Lassen Sie uns von dieser Animation ausgehen und einfach sagen, Animation abspielen. Jetzt können wir diese Funktion verwenden, Animation abspielen. Mach weiter und verbinde es. Für diese Play-Animation ist diese Zeit jetzt Null. Das ist in Ordnung. Die Häufigkeit, mit der es wiederholt wird, ist für alles in Ordnung. Hier ist gut. Wir müssen wirklich nichts ändern. Wenn ich jetzt auf Abspielen und dann darauf klicke, kannst du sehen, dass die Animation abgespielt wird. Eigentlich funktioniert alles, und das sollte es sein. Denken Sie jedoch daran, dass wir den Schauspieler nicht zerstören. Und das wird ein großes Problem für dein Spiel sein , wenn du es nicht tust. Denn jetzt kannst du sehen, wie viele Schauspieler ich spawne , wenn ich klicke Schauspieler ich spawne , wenn ich Im Moment sind es 32, ich klicke weiter, jetzt sind es 42, weil wir nur den Treffereffekt entfernen Denken Sie daran, dass wir diesen Treffereffekt jetzt auch erzeugen. Und wir spawnen immer wieder Darsteller des schwebenden Textes, und wir entfernen sie nie Das wird ein Problem sein und dein Spiel wird abstürzen, wenn du oft genug darauf klickst Lassen Sie uns den schwebenden Text öffnen. Wie zerstören wir diesen schwebenden Text? Ich, das können wir tatsächlich wieder drinnen machen . Geh zurück zu den Bauplänen, öffne den schwebenden Text Lass es uns hier drinnen machen. Nun, da wir diesen schwebenden Text haben, können wir ihn ziehen und nach dem schwebenden Text suchen, den wir zuvor erstellt haben Jetzt können wir hier ziehen und sagen, Endzeit abrufen Wir können eine Verzögerung wie zuvor gebrauchen. Sie können sogar den Treffereffekt öffnen und sehen, was wir hier gemacht haben. Wir haben im Grunde dasselbe gemacht. Dies war jedoch ein Flipbook. Wir haben die Länge der Flipbooks. Nun zur Animation, wir haben die Endzeit. Wir wissen, wann es endet. Wenn Sie das tun, können Sie eine Verzögerung verwenden , nachdem die Animation abgespielt wurde. Sobald Sie weitermachen können diesen schwebenden Textakteur direkt von hier aus löschen. Und sag Schauspieler zerstören. Und jetzt wird es zerstört. Lassen Sie uns alles sagen. Und klicken Sie auf Abspielen. Und ich werde das einfach minimieren. Und wieder sehe ich, wie viele Schauspieler ich hervorbringe. Jetzt klicke, klicke und klicke, ich sollte wieder bei 15 sein, weil ich hier meinen gesamten Text lösche , meinen schwebenden Text Ich werde die Position des Textes anpassen , weil ich nicht möchte, dass er in der Mitte des Feindes Ich werde den Player Controller öffnen und hier haben wir den Spawn-Standort Ich werde es hierher ziehen. Stattdessen nehme ich das und sage Break Vector, damit ich es in X, Y und Z aufteilen kann Das Gleiche gilt auch für diesen. Ich ziehe und sage, dass Make Vector auch X, Y und Z sehen kann. Wenn Sie das tun, können Sie immer hier im Darstellungsfenster die Achse und ihre Position sehen die Achse und ihre Position Was das X hier angeht, müssen wir es nicht wirklich ändern weil es bereits zentriert auf den Akteur für das X ausgerichtet ist auf den Akteur für . Ich werde es einfach direkt hineinziehen Ich möchte diesen Wert jetzt nicht für das Y anpassen, Y ist dieser, der grüne. Y steuert, wie viel Hin und Her es ist. Ich werde hier nur eins für das Y sagen , weil eins nur bedeutet, dass ich es dem Feind ein bisschen vor die Nase stellen werde. Der Text erscheint nicht im Feind und wir haben einen visuellen Effekt wie einen Bug Statt zehn können Sie hier sehen, dass es zehn sind. Anstatt nur einen Text im Y zu schreiben, stelle ich sicher, dass dieser Text vor dem Feind liegt. Für den Wert ist das jetzt wichtig, der Z-Wert ist dieser. Und ich wollte hier über dem Feind spawnen. Was ich tun kann, ist, vielleicht so etwas wie das Z zu nehmen, das wir schon haben, und ich werde sagen und es hinzufügen Ich werde 22 hinzufügen und dann werde ich es wieder einstecken. Was wir jetzt tun, wir nehmen im Grunde den Z-Wert, fügen 22 hinzu und dann fügen wir ihn ein Wir machen weiter und spielen. Ich kann hier über dem Charakter sehen, wo es sich über die Pfoten erstreckt. Ich denke, das ist viel besser als zuvor. Sie können die Position jederzeit anpassen je nachdem, wo sich der Text befinden soll. Okay, das war es vorerst. Lass uns weitermachen und alles speichern und lass uns jetzt weitermachen. 54. 6.01 Die Timer-Benutzeroberfläche entwerfen: In Ordnung, jetzt ist es an der Zeit, den Timer hinzuzufügen. Wenn wir das Spiel spielen und versuchen, diesem Feind Schaden zuzufügen, möchte ich einen Rundentimer haben, damit du nicht ewig Zeit hast, diesen Feind zu füllen. Wenn der Rundentimer vorbei ist, wird dieser Feind real sein. Wenn du es zu langsam machst, heilt es wieder ab und du musst vielleicht ein Level zurückgehen, um den anderen Feind zu besiegen , bevor du weitermachen kannst. Lass uns das vorerst einfach schließen . Jetzt befindet sich der Timer in der Haupt-Benutzeroberfläche. Es ist nicht wirklich eine Benutzeroberfläche für sich. Lassen Sie uns weitermachen und die Haupt-Benutzeroberfläche erstellen. Klicken wir mit der rechten Maustaste und gehen wir damit zu Benutzeroberflächen, Blueprint Nennen wir das B-Main. Dies ist die Haupt-Benutzeroberfläche für das Spiel. Lass es uns öffnen und hier drinnen, noch einmal auf einer Leinwand. Jetzt, in diesem Leinwand-Panel, möchte ich, dass der Timer hier horizontal ist. Ich suche einfach ein horizontales Kästchen. Ich werde es hier hinzufügen. Und dann dieses horizontale Feld, ich werde es in der Mitte ausrichten, hier oben, in der oberen Mitte. Ich klicke auf die Ankerpunkte, Tender, obere Mitte. Wenn du 00 in X und Y schreibst, kannst du sehen, dass es nicht zentriert ist, wie ich es hier im X habe, ich muss 0,5 schreiben, also ist es jetzt in der Mitte. Okay, das ist jetzt mit dem Bild oder dem Symbol fertig . Ich werde nach einem Bild suchen Fahren Sie fort und fügen Sie es dem horizontalen Feld hinzu. Nun zu den Symbolen, wir haben noch nichts importiert, und ich habe das für Sie hier in die Benutzeroberfläche aufgenommen. Ich habe hier eine Uhr, fetter Klick, erstelle einen neuen Ordner namens Icons. Lass uns weitermachen und von hier wegziehen, lass uns dieses Symbol hineinziehen. Vergewissern Sie sich einfach, dass Sie erneut darauf doppelklicken. Vergewissern Sie sich, dass die Texturgruppe auf UI und die Komprimierungseinstellungen auf Benutzeroberfläche zwei D eingestellt sind. Fahren Sie fort und speichern Sie. Gehen wir wieder rein und suchen nach der Uhr, oder sie ist jetzt einfach hier vor uns. Anstatt das hier für die vertikale Ausrichtung gestreckt zu machen , werde ich auf die Mitte klicken. Dann lassen Sie uns etwas Text hinzufügen. Nun zum Text, ich werde ihn einfach von unseren anderen Benutzeroberflächen kopieren. Vielleicht dieser hier. Ich werde das kontrollieren, geh zurück. Steuerung V auf der horizontalen Box. Zentrieren Sie es vertikal. Hier haben wir es. Geben wir ihm etwas Platz, suchen wir nach einem Abstandshalter Füge es dazwischen hinzu. Den Abstandshalter, vielleicht gebe ich ihm so etwas wie 12 D X. Ich finde, er sieht gut aus. Nun, der Text, wir können ihn immer verkleinern Nun zum Text, ich weiß nicht, ob wir die Größe reduzieren sollen oder nicht, weil es eigentlich ein wichtiger Timer ist. Ich denke, die Größe ist in Ordnung. Lassen Sie uns einfach die Größe dieses Bildes hier unten erhöhen. Statt 32 mal 32 schreibe ich 40 mal 40, ungefähr so. Du kannst es hier auch mit einem Block nach unten streichen. Ich denke nicht, dass es zu zentriert ist. Vielleicht, wenn ich hier klicke und es unten mit einer Polsterung versehen würde, etwa zwei Und das sollte in Ordnung sein. Wir können es später jederzeit anpassen. Ich mache mir momentan keine allzu großen Sorgen um die Benutzeroberfläche. Sie können auch hier im horizontalen Feld oben auf „Größe an Inhalt anpassen “ klicken , wir können es verschieben. Schauen wir uns hier an, was wir mit dem Y machen können . Normalerweise schreibe ich 30, 35, hier ist es an den Rändern Nun, so sieht es aus. Ich finde, es sieht gut aus. Bei Clicker-Spielen mag ich es jedoch, wenn die Uhr hier oben steht. Weil es sehr wichtig ist, dass du siehst, wie viel Zeit du noch hast, wenn du klickst Und du musst nicht ganz nach oben schauen , statt hier. Jetzt füge ich es einfach hier zusammen. Im Moment können wir die Benutzeroberfläche jederzeit ändern. Es dauert nicht, wenn Sie alles programmiert haben, was Sie sich vorstellen können , wenn Sie ein großes Spiel haben, sondern Sie können die gesamte Benutzeroberfläche ändern. Vielleicht wird es an einem Tag nicht mehr lange dauern, und dieses Spiel hat offensichtlich nicht viel UI. Also können wir es innerhalb einer Stunde ändern. Aber vorerst lassen wir die Uhr einfach hier oben stehen. Und lass uns alles speichern. Lassen Sie mich auf den Text klicken und sicherstellen, dass die Sichtbarkeit so eingestellt ist, dass sie nicht testbar ist. Dieser auch. Wir können es einfach so einstellen, dass es auch testbar ist, damit die Maus nicht damit interagiert Das war es. Speichern wir alles und fahren wir mit dem nächsten fort. 55. 6.02 Anzeigen der Haupt-Benutzeroberfläche: Lassen Sie uns nun fortfahren und die Haupt-Benutzeroberfläche auf dem Bildschirm anzeigen. Wenn wir mit der Benutzeroberfläche arbeiten, machen wir das normalerweise innerhalb des Player-Controllers. Öffnen wir den Player-Controller und machen wir das hier drinnen. Jetzt haben wir noch nichts mit der Benutzeroberfläche gemacht , wo wir sie auf dem Bildschirm haben. Normalerweise haben wir es bisher an einen Schauspieler angehängt, aber jetzt müssen wir tatsächlich eine Benutzeroberfläche erstellen und es an den Bildschirm statt an den Schauspieler anhängen. Lassen Sie uns weitermachen und das tun. Ich werde sie einfach alle hier runterschieben. Lass uns anfangen. Normalerweise klicke ich jetzt mit der rechten Maustaste hier und erstelle ein benutzerdefiniertes Ereignis. Und ich werde Ihnen eine intelligente Methode zeigen falls Sie sie noch nicht getan haben. In einem meiner anderen Kurse erstelle ich normalerweise ein Ereignis namens Widget anzeigen , ausblenden oder öffnen. Widgets öffnen und schließen, du kannst es nennen, wie du willst. Widget einblenden, Widget öffnen, schließen. Das ist hier. Jetzt müssen wir angeben, über welches Widget wir sprechen? Und ich glaube nicht, dass wir dafür noch eine Aufzählung erstellt haben dafür noch eine Aufzählung Wenn du es Come Blueprints, Aufzählungen nennst. Jetzt werde ich hier eine Liste erstellen, welche Benutzeroberfläche ich in meinem Spiel haben werde Ich werde es Spiel-Widgets nennen, weil ich später auch eines habe , das als Hauptmenü-Widgets bezeichnet werden kann. Dieses wird also Spiel-Widgets genannt. Jetzt müssen wir hier eine Liste angeben , welche Widgets du im Spiel hast. Ich kann zum Beispiel eine Haupt-Benutzeroberfläche haben. Ich kann zum Beispiel einen Upgrade-Shop usw. einrichten. kannst du später haben, aber Moment benötige ich nur die Haupt-Benutzeroberfläche. Ich nenne es einfach Main. Wenn Sie jetzt zum Play-Controller zurückkehren, können wir hier in der Eingabe nach der Aufzählung suchen , die wir Spiel-Widgets genannt haben Und wir können rausgehen und es auswählen. Ich nenne das einfach Widgets. Wenn wir ein Widget öffnen und schließen, müssen wir angeben, über welches Widget wir sprechen. Ich kann diese Funktion tatsächlich hier oder dieses Ereignis aufrufen , damit Sie sehen können, wie es aussieht. So wird es aussehen wenn ich diese Funktion später aufrufe. Jetzt können wir auswählen, über welches Widget wir sprechen. Außerdem möchte ich noch einen Input, einen Bullen. Ein Goldbarren ist einfach, wiederum, nur ein Ja oder Nein. Nur falsch oder wahr. Für diesen werde ich offen sagen, ich nenne es einfach Show. Ich nenne es normalerweise gerne Einblenden/Verstecken. Ich verwechsle mich nicht mit diesem. Ich werde es in Show Hide Widgets umbenennen. Wir müssen angeben, über welches Widget wir jetzt sprechen. Wir haben nur die Haupt-Benutzeroberfläche und können sie dann ein- oder ausblenden. Wenn ich das Häkchen nicht gesetzt habe, heißt es Ausblenden. Und wenn ich das angekreuzt habe, ist es Show. So mache ich das normalerweise. Das hier, wir können einen Zweig bauen. Wenn es jetzt angezeigt wird, wollen wir das Widget zeigen. Weil das wahr ist. Lassen Sie uns zwei Funktionen erstellen. Lassen Sie mich eines namens Show-Widget erstellen und ein anderes Widget erstellen. Normalerweise füge ich für meine Funktionen ein als Präfix hinzu. Es ist viel einfacher, danach zu suchen , denn wenn Sie mit der rechten Maustaste klicken und tatsächlich suchen, , denn wenn Sie mit der rechten Maustaste klicken und tatsächlich suchen, können Sie in Zukunft all Ihre Funktionen nutzen. Für die Widgets zum Anzeigen klicke ich, ich habe eine Eingabe von Spiel-Widgets und wähle das aus und nenne es Widget. Das Gleiche gilt hier für das Hyde Widgit, mach weiter und klicke darauf, füge das hinzu und nenne es Was wir jetzt hier in der Sendung Widgit machen wollen, wollen wir von hier ziehen und sagen, Enumeration einschalten Was wir hier tun werden, wir sagen ihr im Grunde , ob die Aufzählung oder ob dieser Wert main ist, was wollen wir tun? Stellen Sie sich vor, wir hätten ein anderes, zum Beispiel, wir hätten ein Einstellungsmenü und gehen raus und speichern Jetzt können Sie hier sehen, dass dies hier hinzugefügt wird. Wenn der Wert, der hier ankommt, im Grunde von hier oben ausgewählt wird, wählen wir aus, welcher Wert sein soll , wenn er hier in das Show-Widget kommt. Und der Wert ist main, zum Beispiel wird er den Code hier unten ignorieren und nur den Code hier oben ausführen. Das ist es, was die Aufzählung einschaltet. Wird der Code hier ausgeführt? Und dieser wird nicht ausgeführt, wenn der Wert hier main ist. Lassen Sie mich diese Einstellungen vorerst löschen. Was wir hier tun wollen, ist im Grunde das Widget zu erstellen und es dem Bildschirm hinzuzufügen. Klicken wir mit der rechten Maustaste und sagen Widgets erstellen Wählen Sie aus, welches Widget Sie erstellen möchten. Ich möchte die Haupt-Benutzeroberfläche erstellen und mit der rechten Maustaste darauf klicken und sie zu einer Variablen heraufstufen. Nennen wir es im Grunde das Haupt-Widget. Dann wollen wir von hier aus ziehen und „Zum Viewport hinzufügen“ sagen So fügen wir die Benutzeroberfläche zum Bildschirm hinzu, denn es reicht nicht aus, dass Sie sie erstellt haben, sondern Sie müssen sie auch zum Viewport hinzufügen , bevor Sie sie sehen können, okay Jetzt können wir es so verbinden und alles ist gut Was ich jedoch gerne mache, ist nur der Optimierung halber, wir können diese Variable, die wir gerade erstellt haben, nehmen, klicken und in ein validiertes GET konvertieren. Was wir jetzt tun können, ist, das Ganze trennen, indem wir die Alt-Taste gedrückt halten und klicken, und wir können das verbinden. Wenn dies nun nicht gültig ist, ist diese Variable nicht gültig. Das bedeutet, dass dies noch nicht erstellt wurde. Wir haben die Benutzeroberfläche noch nicht erstellt. Es wird als nicht gültig angezeigt. Wenn es nicht gültig ist, wollen wir weitermachen und die Benutzeroberfläche erstellen. Wenn wir die Benutzeroberfläche jedoch bereits einmal erstellt haben, bevor sie gültig ist, müssen wir sie nicht ständig erstellen und diese Variable weiterhin setzen, wenn wir dies bereits einmal getan haben. Sie ist gültig, wenn wir sie einmal erstellt haben. Und dann werde ich es stattdessen einfach zum Viewpoint hinzufügen, wir müssen es nicht ständig erstellen Okay, lassen Sie uns jetzt für das Hyde-Widget kompilieren. Lass uns genauso hierher zurückkehren. Sagen wir, schalten Sie die Aufzählung ein, schalten Sie die Spiel-Widgets ein Dann hier, was ich möchte, dass du einfach diese Variable ziehst, einfach diese Variable ziehst erneut mit der rechten Maustaste klickst und wie zuvor in ein validiertes GET umwandelst wie zuvor in ein validiertes GET umwandelst Dann lassen Sie uns ziehen und sagen „Aus den Eltern entfernen“. Es vom Bildschirm entfernen. Das wurde von den Eltern entfernt, jetzt entfernen wir es vom Bildschirm. Okay, wie verwenden wir diese Funktionen, die wir gerade erstellt haben? Wenn wir nun zum Ereignisdiagramm zurückkehren, können wir die Funktionen, das Widget zum Ein- und Ausblenden, hineinziehen . Lass uns weitermachen und sie verbinden. Wenn das Mobbing wahr ist, wollen wir das Widget zeigen, wir machen weiter und verbinden dieses Wenn das falsch ist, wollen wir das Widget verstecken, wir verbinden das andere Nun, das Widget, das hineingeht, ist einfach das, was wir hier oben ausgewählt haben. Aber wir können diese Eingabe einfach in diese Funktionen ziehen, und die Daten werden hier in diese Funktionen übernommen. Jetzt ist es tatsächlich fertig. Was wir tun können, ist , wir können dieses Ereignis hier aufrufen , wann immer wir ein Widget ein - und ausblenden möchten. Ich kann also sagen, Widget anzeigen, ausblenden. Ich kann angeben, von welchem Widget ich spreche. Ich kann auch angeben, ob wir dieses Widget ein- oder ausblenden möchten . Super intelligente Funktion , die wir verwenden können. Das ist im Grunde so, dass wir nicht den ganzen Code hier rausschreiben müssen, es ist viel einfacher, einfach diesen zu verwenden. Lassen Sie uns weitermachen und die Haupt-Benutzeroberfläche anzeigen. Lass uns das einfach hier im Player Controller machen. Lass uns Ereignisse schreiben und mit dem Spielen beginnen. Was sollte passieren, wenn ich anfange, das Spiel zu spielen? Ich möchte dieses Widget nur ein-/ausblenden. Also möchte ich mein Hauptmenü oder meine Haupt-Benutzeroberfläche anzeigen. Im Grunde. Das ist es hier. Wenn wir kompilieren und ich auf Play klicke, kannst du sehen, dass ich jetzt meinen Timer hier oben sehen kann. Denn jetzt zeigen wir das Widget. Wenn Sie das Widget ausblenden möchten, können Sie jederzeit hier klicken . Und du kannst auf Play klicken. Und Sie können sehen, dass das Widget weg ist, weil wir es jetzt verstecken. Das Haupt-Widget wird angezeigt, und so wird es gemacht. Lassen Sie uns weitermachen und alles schließen und dann weitermachen. 56. 6.03 Den Runden-Timer einstellen: Es ist jetzt an der Zeit, den Rundentimer hinzuzufügen. Bei Einzelspieler-Spielen werden wir nicht wirklich dafür verantwortlich gemacht , wo wir den Code hinzufügen wollen Ich könnte den Rundentimer zum Spieler hinzufügen, ich könnte ihn zum Spieler-Controller und ich könnte ihn zum Spielmodus hinzufügen Im Mehrspielermodus hättest du grundsätzlich ein Problem, weil du die Dinge richtig machen müsstest. Aber im Einzelspielermodus können wir tatsächlich alles programmieren , zum Beispiel innerhalb des Players, obwohl es im Spielmodus sein sollte. Und das Spiel würde gut funktionieren einfach bleiben und gute Programmierübungen machen würden. Lass uns den Rundentimer im Spielmodus machen. Denken Sie daran, dass der Spielmodus die Spielregeln bestimmt. Ich denke, so etwas wie ein Rundentimer ist so etwas wie eine Regel in einem Spiel. Lassen Sie uns statt hier den Roundtimer machen. Ich möchte versuchen , ein anderes benutzerdefiniertes Ereignis durchzuführen. Lassen Sie uns mit der rechten Maustaste klicken und ein benutzerdefiniertes Ereignis durchführen. Nennen wir diesen einen Startrunden-Timer. Wir wollen den Runden-Timer starten. Ich möchte hier hauptsächlich etwas verwenden , das als Timer by Event bezeichnet wird. Klicken Sie ganz mit der rechten Maustaste und suchen Sie Timer nach Ereignis, wählen Sie diesen aus. Jetzt ist der Timer nach Ereignis einfach ein Timer, der immer wieder wiederholt wird. Anstatt den Event-Tick zu verwenden, weißt du vielleicht schon, was ein Event-Tick ist. Wenn Sie das nicht tun, läuft dieser 60 Mal pro Sekunde. Wenn ich einfach hierher ziehen und eine Zeichenfolge ausdrucken und einfach Hallo sagen könnte. Du kannst sehen, wenn ich auf Play klicke, wird es tatsächlich 60 Mal pro Sekunde gedruckt. Hier heißt es Hallo. Normalerweise ist es sehr schlecht, das in einem Spiel zu verwenden. Wenn ich mir eines Tages dein Spiel ansehe, möchte ich nie ein Event in deinem Spiel tickt, weil es extrem schlecht ist , es zu benutzen, es sei denn, du musst es wirklich benutzen. Für Fun Tail habe ich zwei Jahre lang entwickelt, dieses habe ich noch nie benutzt. Und ich denke auch nicht, dass Sie ihn verwenden sollten, weil er wirklich dafür optimiert ist , diesen Code so oft auszuführen. Stattdessen richten wir dafür einen Timer ein. Bei einem Timer können Sie wählen, wie oft Sie ihn pro Sekunde wiederholen möchten , anstatt ihn 60 Mal pro Sekunde zu wiederholen Was ich hier schreiben kann, ist zum Beispiel 0.1 Wenn du nicht wirklich gut in Mathe bist, kannst du hier im Grunde sagen, was ist 1/0 0.1 Das ist zehn Das heißt, es läuft zehnmal pro Sekunde. Was ist, wenn ich es auf 0,03 setze? Dann wirst du es 33 Mal pro Sekunde ausführen Manchmal musst du es so oft machen , weil zum Beispiel in einem Echtzeitstrategiespiel, in dem du Gebäude baust , genau wie Die Sims, du in Die Sims ein Gebäude oder einen Gegenstand ziehst, um ihn platzieren kannst Um das Baugespenst, das du mit der Maus herumschleppst, zu aktualisieren , ist es sehr wichtig, dass es glatt aussieht Du musst es zum Beispiel auf etwa 0,03 setzen. Aber Sie können sehen, dass es viel besser ist, es 33 Mal pro Sekunde laufen zu lassen, als es 60 Mal pro Sekunde laufen Du lässt es im Grunde nur halb so schnell laufen wie dieses. Und es wird schon stark optimiert sein , wenn Sie nur einen Timer verwenden und dies hier tun. Zum Beispiel müssen wir den Timer für jedes Ereignis nicht wirklich aktualisieren. Zum Beispiel 33 mal pro Sekunde. Wir können mit etwa 0,1 beginnen. Wir können den Timer grundsätzlich zehnmal pro Sekunde aktualisieren. Lass uns versuchen, das zu tun. Lass uns das hier unten löschen. Lass uns das hier oben verbinden. Für die Veranstaltung hier brauchen wir eine Veranstaltung. Ich kann hier nach unten ziehen und ein benutzerdefiniertes Ereignis erstellen. Normalerweise nenne ich es am Ende einfach Loop, also nenne ich es einfach Round Timer, Loop. Dieses Ereignis hier läuft im Grunde in einer Endlosschleife ab. Wir werden es auf Looping einstellen. Ich möchte im Grunde einen Timer einstellen. Lassen Sie uns zwei Variablen erstellen. Lassen Sie mich einen namens Initial Round Timer erstellen. Lass es uns auf Float setzen, kompilieren. Das wird jetzt unser erster Rundentimer sein. Nehmen wir zum Beispiel an, wir haben zunächst 5 Sekunden Zeit , um diesen Feind zu töten. Lassen Sie uns eine neue mit dem Namen Current Round Tim erstellen. Dies ist der, der aktualisiert wird. Der Timer der ersten Runde wird sich nicht ändern, aber wir werden zuerst unseren aktuellen Rundentimer ändern. Bevor wir diese Schleife hier starten, stellen wir sicher, dass der aktuelle Rundentimer Timer der ersten Runde entspricht, andernfalls ist er Null. Sie möchten nicht, dass die Zeit in einer Schleife läuft , wenn die Zeit Null ist Lassen Sie uns den Timer der aktuellen Runde auf den ersten Wert setzen. So haben wir jetzt etwas Zeit, um damit anzufangen. Die Zeit beträgt 5 Sekunden, weil wir diese auf fünf eingestellt haben, jetzt sind es 5 Sekunden. Was wir hier machen wollen, wir wollen den Timer der aktuellen Runde nehmen. Ich möchte Minus sagen. Wir wollen es im Grunde mit 0,1 subtrahieren . Wenn das zehnmal pro Sekunde läuft, bedeutet das, dass es im Grunde 1 Sekunde pro Sekunde entfernt , falls das Sinn macht Weil das zehnmal ausgeführt wird, anstatt einen statischen Wert zu haben Auch hier mag ich keine statischen Werte, weil es mühsam ist, sie zu ändern, wenn das Spiel nicht mehr funktioniert. Stattdessen können Sie mit der rechten Maustaste auf diesen Wert klicken und ihn zu einer Variablen heraufstufen, und Sie können ihn so etwas wie Round Timer Time nennen Ich hoffe, dass es in Zukunft nicht zu verwirrend wird oder mich verwirrt, denn das ist der Rundtimer, das ist im Grunde die Zeit hier. Ziehen wir es einfach hierher. Anstatt diesen statischen Wert, diesen -0,1 zu haben, kompilieren wir und stellen sicher, dass die Zeit des Rundentimers 0,1 ist. Auch hier oben. Klicken wir mit der rechten Maustaste auf diesen Timer und machen daraus eine Variable, denn später müssen wir diesen Timer stoppen , wenn wir ihn nicht mehr verwenden wollen Und das tun wir, indem wir diese Variable haben. Nennen wir das Tim Handle. Wenn Sie die Maus darüber halten, ist es im Grunde ein Timer-Griff, ein runder Timer-Griff. Was wir jetzt tun können, ist , diese aktuelle Zeit -0,1 zu sagen . Ich muss sie wieder festklemmen, weil ich sichergehen will , dass sie nicht unter Null fällt Was wir sagen, ist der aktuelle Timer, Rundentimer -0.1 Wenn wir diesen Wert, auch diesen Wert, wiederholen, wird er im Grunde genommen jede Sekunde minus eins Ich stelle den aktuellen Rundentimer erneut ein, wir sagen im Grunde minus eins pro Sekunde Lassen Sie uns jetzt weitermachen und eine Zeichenfolge drucken. Sie können tatsächlich sehen, was vor sich geht und lassen Sie uns das hier hineinziehen. Lass uns die Runde zusammenstellen. Tim kann es im Grunde einfach hier starten , wenn das Spiel beginnt Lass uns einfach von hier aus zuschlagen und Start gegen Tim sagen. Lass uns kompilieren und spielen. Jetzt können Sie sehen, dass der Timer jetzt funktioniert. Er wird unter den Nullpunkt fallen, weil wir ihn noch nicht festgeklemmt Lassen Sie uns das tatsächlich tun. Lasst uns hier wieder zuschlagen. Ziehen Sie von hier und sagen Sie Clamplamp Float Der Mindestwert ist Null unter Null Der Maximalwert entspricht im Grunde dem aktuellen Rundentimer Lassen Sie uns nun weitermachen und das verbinden. Alles sollte in Ordnung sein , wenn ich kompiliere und auf Play klicke. Und schau jetzt hier oben nach, es sollte nicht unter Null gehen, und alles funktioniert einwandfrei. Jetzt müssen wir nur noch diese Benutzeroberfläche hier oben aktualisieren , damit sie richtig funktioniert. In Ordnung, das war es vorerst. Wir haben einen funktionierenden Timer, und wir können ihn einfach hier stehen lassen, denn wir müssen den Timer starten, alles funktioniert gut. Und wir müssen in der nächsten Lektion weitermachen. 57. 6.04 Den Timer der Hauptbenutzeroberfläche aktualisieren: In Ordnung, hier haben wir aufgehört. Gehen wir zurück und aktualisieren den Timer in der Haupt-Benutzeroberfläche. Was wir tun wollen, ist , zur Haupt-Benutzeroberfläche zurückzukehren. Wir wollen auf diesen Text klicken. Nennen wir es so etwas wie Round Timer. Runder Timer. Gehen wir zurück zur Grafik hier. Lass mich das alles einfach löschen. Nun zu diesem Timer, ich möchte im Grunde wieder Text einstellen, genau das, was wir bisher gemacht haben. Lassen Sie uns ein benutzerdefiniertes Ereignis für dieses benutzerdefinierte Ereignis erstellen. Nennen wir das ein Update, Tim. Lass uns einfach weitermachen und es verbinden. Lassen Sie uns nun weitermachen und anstatt es einfach direkt anzuschließen, wollte ich auch sagen, dass es Sekunden dahinter gibt. Ich möchte ein Textformat verwenden, genau wie das, was wir bisher gemacht haben. Für diesen Formattext möchte ich eine Variable. Nennen wir es einfach Round Timer Remaring. Lassen Sie uns die geschweiften Klammern schließen. Und wenn du Inter drückst, erscheint diese Eingabe, dann will ich nur sec dahinter schreiben. Wir wissen, dass es Sekunden sind. Jetzt ist diese Variable ein Float. Ich füge hier einfach eine Eingabe von Float hinzu und nenne es Round Timer Remaining . Jetzt können wir weitermachen und das hier einstecken und wir sind im Grunde fertig. Lassen Sie uns jetzt weitermachen und es aktualisieren. Lassen Sie uns diese Update-Timer-Benutzeroberfläche verwenden. Jetzt kannst du versuchen, es nur zum Üben selbst zu machen , weil es eigentlich einfach ist, wenn du nur darüber nachdenkst. Aber wenn Sie immer noch Schwierigkeiten damit haben, lassen Sie uns weitermachen und es gemeinsam tun. Wenn wir zu den Bauplänen zurückkehren, öffnen Sie den Modus, in dem wir den Code erstellt haben Jetzt wollen wir hier, wann immer es in einer Schleife läuft, auch die Benutzeroberfläche aktualisieren Nachdem wir den Rundentimer eingestellt haben, möchten wir die Benutzeroberfläche aktualisieren Nun, wie bekommen wir die Benutzeroberfläche? Denken Sie daran, dass sich die Benutzeroberfläche hier im Haupt-Widget befindet. Das ist das Event, das wir nutzen wollen. Wir brauchen eine Variable oder die Haupt-Benutzeroberfläche. Denken Sie daran, wir haben das bereits im Player-Controller, weil wir es hier in einer Variablen gemacht haben. Lass uns weitermachen und den Player-Controller anrufen. Haben wir eine Variable für den Play-Controller? Ja, das tun wir. Das haben wir schon einmal gemacht. Lassen Sie uns weitermachen und den Player-Controller hineinziehen. Ziehen wir WB Main rein und holen uns das. Lassen Sie uns dann die UI-Ereignisse des Update-Timers abrufen UI-Ereignisse des Update-Timers Wir können das jetzt nennen, lass es uns verbinden. Das ist der verbleibende Rundentimer, und das ist das. Lassen Sie uns im Grunde kompilieren. Und wenn ich auf Play klicke, kannst du jetzt sehen, dass es einwandfrei funktioniert. Jetzt können Sie sehen, dass es ein Problem gibt , weil ich diese Dezimalstelle nicht entfernen möchte , wenn sie Null ist. So wollte ich zum Beispiel 0,0 sagen, oder 1,0, ich möchte nicht, dass es sie entfernt. So wie du das machst, anstatt den Float direkt einzufügen, kannst du ihn tatsächlich zuerst in eine Zeichenfolge konvertieren und es wird nicht gelöscht, was auch immer du schreibst, du schreibst einfach zwei Zeichenketten Fahren Sie fort und wählen Sie Float mit zwei Zeichenketten aus. Anstatt einen Float zu haben, trennen wir ihn jetzt. Und lassen Sie uns die Zeichenfolge einstecken. Lass uns kompilieren. Lass uns auf Play klicken. Und jetzt können Sie sehen, dass am Ende Null steht, und es wird nicht gelöscht. Ich denke, es sieht für uns viel besser aus, das war es für die Aktualisierung der Benutzeroberfläche. Und lass uns mit der nächsten Lektion fortfahren. 58. 6.05 Gesundheit am Timer wiederherstellen: Das Hauptziel hier ist es, die Gesundheit des Feindes wiederherzustellen , wenn der Timer abgelaufen ist Lass uns das machen. Das ist sehr einfach. Wir haben schon alles, was wir brauchen, hier in der Startrunde. Immer wenn wir durch die Zeit laufen und sie auf Null geht. Nehmen wir hier den Runden-Timer und wir können im Grunde einfach eine neue Variable nehmen anstatt diese ständig zu verwenden. Nur um es sauberer zu machen, können wir diese verwenden. Und jetzt können wir sagen, ob das gleich Null ist, also ist im Grunde die Zeit abgelaufen . Machen wir einen Zweig, machen wir weiter und verbinden ihn. Wann immer dies der Fall ist, möchten wir den Zustand wiederherstellen Lassen Sie uns das benutzerdefinierte Ereignis für die Wiederherstellung des Zustands erstellen . Und ich denke, es ist am besten, das innerhalb des Feindes zu tun. Gehen wir zum Feind, öffnen wir die feindliche Basis hier drinnen. Lasst uns eine erstellen, die sich „Gesundheit wiederherstellen “ nennt. Lass uns hier runter gehen und ein neues benutzerdefiniertes Event erstellen. Nennen wir es Wiederherstellung der Gesundheit auf diese Weise. nun die Wiederherstellung der Gesundheit angeht, was wir einfach tun werden, denken Sie daran, dass wir zuvor diese Methode namens „Gesundheit aktualisieren“ hatten. Wir können im Grunde einfach den verwenden , den ich hierher ziehe und sage „Gesundheit aktualisieren“. Gesundheit aktualisieren, hier ist es. Was ist nun der aktuelle Gesundheitszustand? Wir wollen den Feind nur maximal heilen. Auch hier haben wir wieder die Feindinformationen abgerufen und wir haben bereits die Gesundheit. Ich werde C hier kontrollieren und V hier unten kontrollieren. Wir werden das einfach hier einstecken. Wir stellen im Grunde die Gesundheit wieder her. Noch einmal, das sollte es sein. Wenn ich zum Spielmodus zurückkehre, brauchen wir jetzt eine Variable für den Feind. Ich kann mich nicht erinnern, ob wir hier drinnen eine Variable für den Feind haben , haben wir nicht. Wir müssen herausfinden, wie wir die Variable für den Feind bekommen? Weil wir das Wiederherstellung der Gesundheit nennen müssen. Denken Sie daran, wenn wir zum Beispiel zum Spieler-Controller zurückkehren , haben wir hier den Feind, den Feind spawnen Und wir haben daraus eine Variable gemacht. Wir wissen tatsächlich, welcher Feind gerade gespawnt ist. Wenn ich hierher zurückgehe und den Spieler-Controller nehme und gegnerischen Variablen suchen kann, und ich kann diese nehmen Jetzt können wir sagen, Gesundheit wiederherstellen. Ich kann sehen, dass ich es nicht finden kann. Wenn ich also zum Player Controller zurückkehre, liegt das daran, dass ich diesen direkt zur Variablen Spawn Enemy hochgestuft zur Variablen Spawn Enemy Was nicht falsch ist. Ich kann im Grunde in den Spielmodus gehen und zur feindlichen Basis sagen, ich kann sagen, Gesundheit wiederherstellen und alles wird gut. Aber auch hier verwende ich Casting nicht gerne. Und dieser Teil ist auch unnötig , weil wir ihn hier im Player-Controller machen können hier im Player-Controller bevor wir ihn in eine Variable umwandeln. Gehen wir zurück zu den Schnittstellen. Und wir haben noch keinen für den Feind gemacht . Versuche es selbst zu machen. Wir haben es schon ein paar Mal gemacht. Nochmals, wenn Sie sich nicht vollständig erinnern können, lassen Sie uns weitermachen und es gemeinsam tun. Nochmals, ich werde das schnell durchgehen. Klicken Sie mit der rechten Maustaste auf Blueprint und erstellen Sie eine Blueprint-Schnittstelle. Nenn es feindliche Basis. Mach weiter und öffne es. Sagen wir, holen Sie sich die Referenz zum Feind. Dann suchen wir hier in der Ausgabe nach der feindlichen BP-Basis , auf die wir uns beziehen wollen. Nennen wir es Enemy Compile. Gehen wir jetzt zurück zur feindlichen Basis. Und hier in den Klasseneinstellungen wollen wir dieses Interface hinzufügen, das wir gerade erstellt heißt Enemy But Compile. Jetzt können wir sehen, dass diese Funktion erscheint, doppelklicken Sie darauf. den Feind angeht, werde ich mich selbst referenzieren, denn auch hier befinden wir uns innerhalb der feindlichen Basis und wir definieren, was diese Variable ist. Was wir jetzt tun können, ist im Player-Controller, anstatt das direkt in eine Variable hochzustufen, ich lösche sie vorerst. Ich kann sagen, hol dir eine Feindesreferenz. Denn denken Sie daran, wenn Sie die Maus darüber halten, ist dies nur eine Referenz auf einen Schauspieler. Aber wenn ich das zu einer Variablen hochsteigere, ist das eine feindliche Basisreferenz. Und das können wir in all den anderen Bauplänen verwenden, ohne das ständig zu tun in all den anderen Bauplänen verwenden, ohne das ständig Ich werde diesen hervorgekommenen Feind entfernen. wir einfach sicher , dass wir es noch nie benutzt Denn wenn ich es jetzt lösche, lösche ich auch alle Referenzen damit. Was ich normalerweise in meinen Spielen mache, ich klicke mit der rechten Maustaste darauf, finde Referenzen, aber es gibt keine Ergebnisse in diesem Blueprint Wir müssen global suchen. Sie können das tun, indem Sie auf das kleine Symbol klicken. Es wird in allen Bauplänen suchen. Und Sie können sehen, dass Sie diese Variable noch nie benutzt haben. Es ist sicher, sie zu löschen. Ich werde es löschen, ja. Befördern wir ihn jetzt zu einem variablen Spawne-Feind. Jetzt können wir diesen benutzen. Lass uns kompilieren. Gehen wir zurück zum Spielmodus. Lasst uns das alles löschen. Jetzt hier vom gespawnten Feindzug. Lasst uns aus diesem einen Feind hervorbringen. Wir können jetzt „Gesundheit wiederherstellen“ per Drag&Drop sagen. Das ist viel einfacher. Lassen Sie uns jetzt von hier wegziehen. Wenn der Timer gleich Null ist, wollen wir den Zustand wiederherstellen. Wir wollen auch den Timer zurücksetzen , weil wir von vorne beginnen müssen. Ich nehme den Timer der aktuellen Runde und stelle ihn wieder auf den ersten Run-Timer. Einfach so. Lass uns weiterspielen und sehen, was passiert. Klicken Sie auf Jetzt spielen. Ich werde nur, damit wir besser testen können, Timer für die erste Runde auf 3 Sekunden einstellen, damit es nicht ewig dauert Wenn der Timer abgelaufen ist, wird er zurückgesetzt und geheilt Der Spieler klickt nun auf den Feind oder heilt ihn. Vielmehr können wir sehen, dass es den Feind geheilt hat , wann immer es Null ist Wenn ich den Feind töte, heilt das auch diesen Feind. Wir müssen ihm also sagen, wenn ich den Feind töte, muss ich ihm sagen, dass der Timer gestoppt wird muss ich ihm sagen, dass der Timer gestoppt , weil wir den Feind jetzt getötet haben. Denn wie Sie hier sehen können, wird jedes Mal, wenn ich diesen Feind töte, der Timer nicht gestoppt oder zurückgesetzt. Also das ist das nächste, woran wir arbeiten wollen. 59. 6.06 Timer bei Enemy Death zurücksetzen: Jetzt wollen wir diesen Timer jedes Mal zurücksetzen, wenn der Feind stirbt Machen wir weiter und machen das noch einmal. Das ist jetzt sehr einfach, weil wir diese Variable namens Round-Timer-Handle bereits erstellt haben. Wenn ich zur feindlichen Basis gehe und versuche herauszufinden, wo der Feind gestorben ist, haben wir hier dieses Todesereignis gemacht und das alles hier. Lasst uns den Timer anhalten , wann immer der Spieler oder der Feind all das getan hat. Wenn ich einfach alles auswählen könnte und wir es rüberziehen könnten. Nehmen wir nun diesen Griff , der sich im Spielmodus befindet. Ich kann sehen, dass wir hier bereits eine Spielmodus-Variable haben, also können wir Tim Handle sagen. Wir können weitermachen und uns das Run-Timer-Handle holen. Wir können sagen, Timer löschen und für ungültig erklären. Dieser wird den Timer löschen und den Timer ungültig machen Mach weiter und verbinde es. Jetzt stoppen wir den Timer und dann machen wir all dieses Todesereignis oder diese Todeslogik. Dann, nach der Todeslogik, erhöhen wir das Level Und dann zerstören wir die Acta. Wir müssen den Timer erneut starten, denn jetzt, wenn wir den Feind töten, wird der Timer aufhören Aber wir müssen ihn erneut starten. Ich denke, der beste Weg, es noch einmal zu beginnen , ist, das innerhalb des aktuellen Levels zu tun Machen wir weiter und machen das innerhalb des Spielmodus denn jedes Mal, wenn wir ein Level erhöhen, spawnen wir einen spawnen wir Lass uns hier einfach den Timer starten. Es macht am meisten Sinn. Was wir tun können, ist im Grunde, genau wie zuvor, Timer starten, den Runden-Timer starten. Mach einfach weiter und nenne dieses Ereignis, das wir gemacht haben. Und das sollte alles reparieren. Jedes Mal, wenn ich den Feind nicht rufe, heilt der Feind, wie Sie hier sehen können. Aber wenn ich den Feind töte, stoppt der Timer und wird wieder zurückgesetzt, sobald ich den Feind getötet habe. Wenn ich also den Feind töte, wird er auf drei zurückgesetzt und alles ist großartig. Okay, jetzt setzen wir den Timer zurück, wenn der Feind stirbt Und wir stoppen ihn auch, damit er nicht herunterzählt. Und lassen Sie uns zum nächsten übergehen. 60. 7.01 Die Währungsoberfläche entwerfen: Es ist jetzt an der Zeit, die Benutzeroberfläche für Währungen zu entwerfen. Und bevor wir das tun, gehen Sie zu Ihren Kursmaterialien. Und ich habe einige Dinge für dich aufgenommen. Gehen wir also gleich hier zum UI-Ordner. Ich werde anstelle dieses Ordners einen Ordner namens Buttons erstellen . Wir können diese Schaltflächen hierher ziehen. Taste klein gedrückt und Taste klein. Fahren Sie fort und ziehen Sie sie hinein. Genau wie zuvor. Denken Sie daran , mit der rechten Maustaste auf die Sprite-Aktionen zu klicken und Papier zwei T aufzutragen , da es sich um viele Picks handelt Auch für die Bilder im Bilderordner, den ich wieder hier hineinziehen werde , werde ich mit der rechten Maustaste klicken und Papier auf die Einstellungen auftragen Nun zur Uhr, ich möchte sie auch aktualisieren. Für dich sieht es im Moment wahrscheinlich so aus. Ich werde das einfach hier reinziehen. Oder vielleicht klicken Sie mit der rechten Maustaste und sagen Sie erneut importieren. Es weiß schon, wie es aussieht wenn ich auf Play klicke, jetzt sieht es so aus. Mal sehen, ob wir noch etwas brauchen, diese Münze hier. Wir brauchen auch die Icons rein, ziehen Sie das rein. Rechtsklick, Papier auf die Einstellungen auftragen und alles sollte in Ordnung sein. Bevor ich jetzt einfach auf diese Uhr schaue und sie anklicke, werde ich sie tatsächlich auf 50, 50 erhöhen. Stattdessen ist die Polsterung Null. Ich werde es auf Null setzen. Kompilieren, und wenn ich auf Play klicke, finde ich, dass es so viel besser aussieht als zuvor. In Ordnung, was die aktuelle Benutzeroberfläche angeht, werden wir sie hier innerhalb der Haupt-Benutzeroberfläche entwerfen Und ich denke, ich werde es hier bis ganz nach oben gestalten. Lass uns damit anfangen. Zuerst brauchen wir ein Overlay. Fügen wir das Overlay hier oben in das Canvas-Panel ein, sodass es hier oben erscheint Nun für dieses Overlay möchte ich ein Bild, ich möchte das Hintergrundbild für diese Benutzeroberfläche Ich werde es komplett horizontal und vertikal ausrichten . Jetzt müssen wir auswählen, wie das Bild für das Bild aussehen soll. Wir gehen zu Bildern und ich werde diesen einen Artikelrahmen auswählen. Mach weiter und gib es ein. Und hier ist es jetzt, damit es nicht wieder verschwommen wird, genau wie zuvor, es in ein Feld umwandeln, den Rand auf 0,5 ändern, jetzt sieht es viel besser Wenn Sie jetzt die Größe der Überlagerung ändern, passt sie zur Jetzt hier unten möchte ich auch ein Upgrade-Menü haben. Oder kein Upgrade-Menü, es ist eher wie ein Geschäft. Lassen Sie uns das tatsächlich auch tun. Hier brauchen wir eine vertikale Box. Ich werde das hinzufügen. Ich werde ein Overlay hinzufügen. Denken Sie daran, dass sich das vertikale Feld nicht innerhalb dieses horizontalen Felds befinden sollte , sondern direkt außerhalb dieses Overlays Ich werde es hier in das vertikale Feld ziehen. Ich ändere es nur. Nochmal, wieder das Overlay, ich werde vorerst auf Rechnung klicken Ich bin mir nicht sicher, ob ich es füllen werde. Eigentlich glaube ich nicht, dass ich das tun werde. Aber lassen Sie es uns vorerst einfach so einstellen, dass es gefüllt ist. Lass uns jetzt den anderen hinzufügen. Nochmals, ich werde das einfach duplizieren, Overlay-Steuerelement D. Jetzt ist das Upgrade-Menü, oder der Laden hier, der Laden auf das Bild klicke, ändere ich es in diesen einen Papierrahmen Mach weiter und zieh das hier rein. Alles sollte in Ordnung sein. Nun, für dieses vertikale Feld wollte ich den ganzen Bildschirm zur Seite füllen. Klicken Sie auf den Ankerpunkt und ändern Sie ihn in diesen. Wenn du das machst, den Offset unten, werde ich 00 schreiben. Und der Offset für die Unterseite und die Oberseite, damit wird die gesamte Seite des Bildschirms gefüllt. Jetzt gebe ich ihm etwas Abstand zu den Rändern des Bildschirms an der Position für das X. Ich werde 30 Offset schreiben, oben 30 Offset, unten ebenfalls 30. Jetzt ist es nicht mehr am Bildschirmrand. Jetzt die Größe der beiden. Ich werde auf das Overlay für die Währung klicken und es auf Auto setzen Stattdessen gehe ich stattdessen hier in die Bilder und vergrößere die Größe im Y. Was nun die Größe im Y angeht, denke ich, dass etwas wie 105 ausreichend sein sollte So etwas, und wir können schreiben, wie viele Münzen du hast Lassen Sie uns auch eine Spacer-Suche nach einem Spacer hinzufügen. Fügen Sie ihn zwischen diesen beiden Überlagerungen für das Leerzeichen ein. Ich glaube, ich werde so etwas wie 20 in das Y schreiben. Und Sie können auf diese Strichlinien klicken, um die Strichlinien zu entfernen. Und jetzt sieht es so aus. Sie können auf Play klicken und es sich auch ansehen. Hier können Sie sehen, dass dies ein Bildschirm für einen Laptop ist, aber er passt auch sehr gut zu meinem Vier-K-Monitor, denn auch hier haben wir ihn so konzipiert, dass er auf mehreren Monitoren angezeigt werden kann. Was nun die Größe angeht, entscheiden wir später, abhängig vom Inhalt dieses Menüs. Aber lassen wir es vorerst einfach groß sein wie das hier oben. Lassen Sie uns mit der Währung sprechen. Im Moment können wir mit dem Laden arbeiten. Hier oben mit der Währung brauchen wir ein horizontales Feld, weil wir ein Bild und dann den Text brauchen. Fügen wir es dem Overlay innerhalb dieses horizontalen Felds Ich werde ein Bild hinzufügen, dann werde ich etwas Text hinzufügen Nun zum Text, ich werde ihn einfach hier oben kopieren. Steuerung C Steuerung in diesem horizontalen Feld. Steuerung V hier. Nun werde ich dieses horizontale Feld für dieses Bild virtuell horizontal in der Mitte ausrichten Bild virtuell horizontal in der Mitte Lassen Sie uns es in dieses Münzsymbol umwandeln. Wir haben wieder hineingezogen, horizontale Ausrichtung und vertikale Ausrichtung in der Mitte. Beide. Nun zur Münze hier. Klicken wir auf die Münze und stellen die Größe 50 mal 50 für das Bild ein. Nun zu diesem Text, ich werde ihn etwas vergrößern, weil er sehr wichtig ist. Ich denke so etwas wie 34 und vielleicht ein bisschen niedriger, vielleicht 30. Das können wir immer später entscheiden. Was die Frontfarbe angeht, werde ich sie auch in etwas Gelbes ändern. Es zeigt Münzen an und ändert die Farbe und die Opazität. Ich werde versuchen, eine gelbe Farbe zu wählen. Ich denke, ich werde mich für so etwas entscheiden. Jetzt muss ich auch die Gliederung ändern. Ich glaube, ich kopiere das einfach hier oben. Füge es hier ein. Ich werde es einfach in eine dunklere Farbe ändern. Ich werde diesen benutzen. Wenn ich auf Okay klicke, werde ich das kopieren. Fügen Sie es hier ein. Wenn ich rauszoome, sieht es so aus. Es sieht wirklich nett aus. Nun, ich gebe Ihnen etwas Abstand zwischen der Münze und diesem Text Achte nur darauf, dass du hier keine Polsterung für diese Münze hast. Ich werde es hier rechts von vier aufpolstern. Wir haben also einen gewissen Abstand zum Text. Wenn ich hier klicke und einfach Null für den Text schreibe , sind es jetzt 30. Wenn ich 28 schreibe, denke ich, dass es zu klein ist. Lass uns 32 versuchen. Vielleicht ist es zu groß. Lass uns tatsächlich mit 34 gehen. Nun, 30 war eine gute Zahl. Lass uns jetzt kompilieren. Jetzt haben wir hier alles entworfen. Jetzt zum Text. Ich werde ihn in Text Mount of Coins umwandeln. Für dieses Symbol müssen wir hier wirklich nichts tun. Lass uns einfach alles kompilieren und speichern. Jetzt sind wir bereit weiterzumachen. 61. 7.02 Währungs-UI-Animation: Ich denke, es wird cool sein, diesem Text eine Animation hinzuzufügen , damit das Spiel ein bisschen einzigartiger und besser aussieht Und es ist immer schön, deinem Spiel einige Animationen hinzuzufügen , damit es nicht flach aussieht. Es sind immer diese kleinen Details, die dein Spiel viel besser aussehen lassen als die anderen. Also lass uns weitermachen und auf dieses klicken. Wir werden eine neue Animation erstellen. Wir werden es einfach Münzen nennen. Klicken Sie darauf, klicken Sie auf Track, fügen Sie die Textmenge der Münzen hinzu und klicken Sie auf dieses Plus. Und lassen Sie uns die Transformation auswählen. Weil ich den Maßstab dieses Textes ändern möchte. Ich gehe zur Skala hier unten. Was ich hier machen möchte, ist, dass ich das nach 0,2 Sekunden auf 1,5 skalieren möchte . Das Gleiche gilt hier für das Y, 1,5 Jetzt ist es riesig. Dann werde ich 0,4 auf der Skala wieder auf 1,1 setzen. Jetzt können Sie sehen, wenn ich die Animation abspiele , dass sie nicht wirklich eingestellt wurde. Los geht's, zurück auf eins, ich spiele die Animation ab. Jetzt können Sie sehen, wie es aussieht , wenn Sie einfach auf die Leertaste klicken. So wird es aussehen , wenn ich dieser Variablen oder dieser Benutzeroberfläche hier Münzen hinzufüge . Es sieht gut aus, dass du eine Animation der Benutzeroberfläche hast. Aber dann kompiliere, speichere alles und lass uns weitermachen. 62. 7.03 Münzmenge Variabel: Nun zur Anzahl der Münzen, die wir dem Spieler hinzufügen müssen Gehen wir zurück zu den Bauplänen. Und jetzt öffnen wir den Player, denn jetzt müssen wir in einer Variablen speichern, wie viele Münzen der Spieler hat Machen wir einfach diese Variable hier unten und machen wir daraus die Anzahl der Münzen, nennen wir es so. Die Anzahl der Münzen darf keine Dezimalstellen haben, also wählen wir einfach eine Ganzzahl. Wenn du nun weißt, dass dein Spiel hier zahlenmäßig sehr groß sein wird , musst du eine Ganzzahl 64 wählen. Ich glaube tatsächlich, dass ich eine Ganzzahl 64 wählen werde weil eine Ganzzahl oder eine Ganzzahl 64 einen viel, viel größeren Wert haben kann als eine Ganzzahl. Aber auch hier wird eine Ganzzahl 64 in Bezug auf die Optimierung schwerer sein als die Verwendung nur einer Ganzzahl. Aber das brauchen wir wirklich, weil wir wieder ein Clicker-Spiel entwickeln Und in einem Clicker-Spiel ist bekannt, dass die Menge an Münzen einen hohen Wert erreichen kann. Fahren Sie fort und wählen Sie stattdessen die Ganzzahl 64. Lass es uns so machen. Jetzt werde ich das alles löschen und einfach eine neue benutzerdefinierte Variable oder benutzerdefinierte Ereignisse erstellen. Nennen wir dieses eine Update Menge an Münzen. Wir werden aktualisieren, wie viele Münzen wir hier haben. Ich ziehe es in das Feld Set it here, um die Anzahl der Münzen zu aktualisieren. Wir können ihm zwei Variablen geben. Wir können ihm die Anzahl der Münzen geben, die wir wollen, um ihn mit der Anzahl an Münzen zu aktualisieren. Diese Zahl kann eine Ganzzahl sein, da dies nur eine Zahl ist , die wir mit unserer Variablen plus oder minus addieren müssen . Es ist nicht so riesig. Die andere Sache ist, fügen wir weitere Variable hinzu und ein Bullion, nennen wir es A I, normalerweise wieder, schreiben B vorne Was wir hier tun wollen, ist, ob wir Münzen hinzufügen oder ob wir Münzen subtrahieren wollen Darum geht es bei dieser Veranstaltung. Schlagen wir das an und machen wir einen Zweig. Dann lass uns, willst du Münzen hinzufügen oder willst du Münzen entfernen? Das sind also die Wasserfälle. Wenn Sie Münzen entfernen möchten, setzen wir diese Variable. Wenn wir Münzen hinzufügen wollen, können wir das nehmen. Wir können sagen, verliere diesen Betrag, verliere diese Ganzzahl, ich kann das jetzt hineinziehen, wir können das nehmen und es hier eintragen. Der Betrag, der hier reingeht, verliert den Betrag, den wir bereits in der Variablen haben. Wir addieren diese beiden zusammen und setzen sie in diese Variable. Wenn es nun minus ist, nimm das wieder und sage minus, subtrahiere, wir werden es von hier subtrahieren . Genau wie zuvor Wir werden diese Variable setzen. Jetzt können Sie diesen Code etwas sauberer machen , indem Sie ihn tatsächlich entfernen. Und du kannst es auf andere Weise tun. Jetzt zeige ich dir nur einen anderen Weg. Denken Sie daran, dass wir schon einmal mit Select gearbeitet haben, sodass wir Select tatsächlich machen können. Nun, jedes Mal, wenn Sie einen Code wie diesen kopieren und einfügen, denken Sie immer darüber nach, ob ich hier einen ausgewählten Knoten verwenden kann, um meinen Code zu bereinigen? können Sie hier tatsächlich tun, wenn ich hierher ziehe und Select sage und dann diesen Knoten auswählen kann, je nachdem, ob das Bulling wahr oder falsch ist Und ich kann das vorerst einfach entfernen. Wenn es wahr ist, bedeutet das, dass ich Münzen hinzufügen möchte. Du kannst hier sehen, ob das stimmt, hier heißt es, ich möchte die Anzahl der Münzen hinzufügen. Also dieser ist wahr, ich möchte Münzen hinzufügen. Wir können das hier einstecken. Das hier, wenn es falsch ist, möchte ich Münzen abziehen Und dann geht es hier rein. Wir können das löschen. Jetzt kannst du sehen, wie viel besser es geworden ist. Es weiß jetzt anhand des Goldbarrens, ob wir Münzen zu unserer Variablen subtrahieren oder hinzufügen wollen Münzen zu unserer Variablen subtrahieren oder hinzufügen Ordnung, lassen Sie uns alles kompilieren und speichern. Und das war es. Jetzt haben wir diese einfache Funktion, mit der wir die Anzahl der Münzen aktualisieren können . Und lass uns weitermachen. 63. 7.04 Füge Feinden Münzen hinzu: Was wir jetzt natürlich versuchen ist wenn ich auf diesen Feind klicke und der Feind stirbt, ich brauche Münzen für den Kill, den ich hier getötet habe Was wir tun müssen, ist hinzuzufügen, wie viele Münzen dieser Feind fallen lassen sollte , wenn ich den Feind getötet habe. So wie wir das machen, denken wir daran, dass wir hier in den Bauplänen eine Struktur haben hier in den Bauplänen eine Struktur Das haben wir bereits mit dem Namen Enemy Info gemacht. Fügen wir einfach etwas hinzu, zu diesem. Ich werde eine neue Variable erstellen und sie a of coins to drop nennen . Sehr, sehr selbsterklärend und es ist nur eine Ganzzahl. Und ziehe es, also werde ich es einfach unter die Gesundheit ziehen Mach weiter und speichere, speichere alles. Jetzt möchte ich, dass Sie zu dem Datenblatt in Google zurückkehren , das wir zuvor hier erstellt haben. Jetzt, nach der Gesundheit, werde ich hier rechts „Klicken Sie auf eine neue Spalte erstellen“ schreiben . Nochmals, du musst es den gleichen Namen nennen wie die variable Menge an Münzen, die du fallen lassen möchtest. Wir können das ein bisschen so ziehen. Wir müssen angeben, wie viele Münzen der Feind fallen lassen soll. Ich kann zum Beispiel einfach Zufallszahlen schreiben. Im Moment ist es uns ehrlich gesagt egal. Wir können darauf klicken , um Formeln zu erstellen. Du kannst immer gleich schreiben. Klicke darauf und mal 1,5. Dann kann ich hier klicken und es nach unten ziehen und es sollte automatisch gefüllt werden. Das sollte jetzt für mich in Ordnung sein. Ich werde auf Datei herunterladen klicken und CSV herunterladen. Jetzt, wo ich diese heruntergeladene CSV-Datei habe, werde ich sie hier noch einmal in DT Enemy Info umbenennen. In diesem Projekt werde ich es nur ein wenig minimieren, damit ich beide sehen kann. Ich gehe zu den Datentabellen. Nochmals, Feindinformationen, einfach anklicken und hierher ziehen. Und all diese Informationen sollten automatisch für Sie aktualisiert werden. Jetzt haben wir hinzugefügt, wie viele Münzen jeder Feind fallen lassen sollte , wenn wir ihn töten. 64. 7.05 Aktualisiere die Münzenanzeige: Jetzt sind wir bereit, diese Münzenanzeige fertigzustellen. Gehen wir zurück zu den Feinden. Nun, was ich hier mit den Feinden machen möchte, denken Sie daran, dass wir es hinzufügen wollen , wenn der Feind stirbt. Wenn ich hier zu diesem Code gehe, werden sie immer angezeigt, wenn Sie zusätzliche Eingaben zu Ihrer Struktur hinzufügen . Also werde ich einfach hier klicken und nicht verbundene Pins ausblenden Noch einmal, wenn ich den Feind töte. Ich möchte mich im Player daran erinnern, wenn ich zum Spieler gehe, dass wir beim Töten des Feindes dieses eine Update an Münzen gemacht haben . Bevor ich diese Verzögerung mache, verschiebe ich sie einfach. Ich möchte dieses Update als Anzahl der Münzen des Spielers bezeichnen . Und ich habe die Spielervariable bereits. Ich ziehe und sage „Anzahl der Münzen aktualisieren“. Mach weiter und verbinde es hier und hier. Jetzt befindet sich die Anzahl der Münzen, mit denen du es aktualisieren möchtest , in den noch feindlichen Informationen. Weil wir das in der Bibliothek gemacht haben. Jetzt müssen wir die Feindinformationen oder den Feindnamen angeben. Das haben wir bereits aus dieser Variablen. Also mach weiter und verbinde es. Teilen Sie es in die Variablen auf, damit wir sie sehen können. Jetzt werde ich von hier aus die Menge an Münzen hierher ziehen. Mach weiter und versteck das, und jetzt ist es fertig. Denken Sie daran, auf Anzeige zu klicken. Weil wir Münzen hinzufügen und nicht entfernen wollen. Alles sollte in Ordnung sein. Mach weiter und kompiliere. Geh jetzt zum Player. Jetzt werden diese Informationen hier reinkommen und es wird sie richtig einstellen. Was uns jetzt noch fehlt, ist, dass du sehen kannst, ob ich den Feind töte, nichts passiert. Denn denken Sie daran, dass wir die Benutzeroberfläche nicht aktualisiert haben, also müssen wir das tun. Gehen wir zurück zur Benutzeroberfläche und öffnen die Haupt-Benutzeroberfläche. Fahren Sie fort und klicken Sie auf diesen Text. Für diesen Text wollen wir ihn nur einstellen. Ich gehe hier zur Grafik. Lass uns eine neue Veranstaltung machen. Lassen Sie uns ein neues benutzerdefiniertes Ereignis erstellen. Und nennen wir es Updates Betrag I. Lassen Sie uns nun für dieses Ereignis darauf klicken. Und lassen Sie uns wieder eine neue Variable für diese Variable erstellen, Integer 64, weil wir diese Informationen hier eingeben werden, damit wir die Benutzeroberfläche aktualisieren können. Und nennen wir es Anzahl der Punkte eins. Das Ziel hier ist nun, diesen Text festzulegen, die Anzahl der Münzen, die daraus gezogen werden, und dann festgelegter Text. Das ist im Grunde das, was wir versuchen zu tun. Wir versuchen, den Text zu aktualisieren und ihn anzuklicken und hierher zu ziehen. Und es sollte deine Ganzzahl automatisch in Text umwandeln und diesen kompilieren oder einbinden. Denken Sie jetzt daran, dass wir auch eine Animation haben. Lassen Sie uns diese Münzen-Animation ziehen. Und sagen wir, spielen Sie eine Animation ab. Mach weiter und schließ das auch an. Alles sollte in Ordnung sein. Gehen wir jetzt zurück zum Player oder benutzen wir diesen. Aktualisiere die Anzahl der Münzen. Ich mache hier weiter und wir müssen es nur bearbeiten. Hier befindet es sich im WB-Hauptmenü, das sich im Player-Controller Und wie ich hier sehen kann, haben wir keine Variable für den Player-Controller Lass uns gleich hier am Anfang sein. Spiel noch einmal. Hol dir den Player-Controller und hol dir diesen. Dann können wir von hier aus ziehen und sagen, die Player-Controller-Referenz abrufen , wir von der Blueprint-Oberfläche aus gemacht haben Und klicken Sie mit der rechten Maustaste auf diese Variable und nennen Sie sie Player-Controller Jetzt haben wir das. Nehmen wir diese Variable. Wir müssen nur WB main aufrufen , weil das Ereignis darin enthalten ist Je weniger nach WB main ziehen und suchen, wir haben diesen Wert bereits Denken Sie daran, dass wir hier ziehen können, sagen wir, die Anzahl der Punkte aktualisieren Ich mache weiter und wähle das aus und blockiere diese Information hier. Und alles sollte gut funktionieren. Jetzt werde ich hier im Spielmodus einfach erhöhen, ich werde nur den Timer für die erste Runde erhöhen, weil es manchmal schwierig ist den Feind innerhalb von 3 Sekunden zu töten. Ich werde ihn einfach auf 5 Sekunden erhöhen . Ja, 5 Sekunden. Ja, richtig, und spiel. Jetzt kannst du diesen Feind töten. Wie Sie auf der Animationsplatte sehen können. Und es gab uns 15 Münzen. Lass es mich einfach nochmal versuchen. Hier, ich werde diesen Feind töten. Es hat uns die Münzen gegeben. Es hat die Animation abgespielt und alles funktioniert einwandfrei. 65. 8.01 Hinzufügen der Shop-Scroll-Box: Jetzt ist es an der Zeit, mit dem Item-Shop zu arbeiten. Wenn du auf Play klickst, erinnerst du dich daran, hier in der Benutzeroberfläche, nachdem wir die Währung gemacht haben oder davor, eigentlich haben wir diese Zeitung hier unten erstellt, das wird unser Item-Shop sein. Ich versuche nur, Cookie Clicker und Clicker Heroes zu mischen. Wie Sie hier zum Beispiel sehen können, ist nur ein Bild von dem, was wir tun, dass wir nur diesen Teil hier hinzufügen, diesen Shop, in dem Sie einige Dinge kaufen können und sie auf der Karte erscheinen und Also das versuchen wir hier zu tun. Lass es uns vorerst schließen. Lass uns zur Benutzeroberfläche gehen und die Maui öffnen. Und hier drinnen wollen wir, dass die Artikel angezeigt werden Damit sie jetzt angezeigt werden, benötigen wir ein Scrollfeld. Lass uns hier oben nach einem Scrollfeld suchen. Klicken Sie darauf und ziehen Sie es in das Overlay, in dem es sich hier befindet. Stellen Sie außerdem sicher, dass es innerhalb des Scrollfeldes horizontal und vertikal ausgerichtet Bevor wir die Elemente hinzufügen, benötigen wir sie in einer vertikalen Box. Weil sie so untergehen werden. Ich nehme einfach ein vertikales Feld und füge es in das Scrollfeld ein. für dieses vertikale Feld Klicken Sie für dieses vertikale Feld auf Füllen. Sonst wird es hier oben sein. Aber wir wollen es hier ganz füllen. Jetzt ist dieser fertig. Jetzt kannst du hier sehen, wann immer ich einen Artikel hinzufüge, jetzt wird er ganz oben angezeigt . Und wir müssen ihm etwas Abstand zu den Rändern geben. Jetzt können wir das nicht wirklich tun, weil ich einfach hier reingehen und 100 schreiben kann und ich kann etwas Abstand zu den Rändern geben, aber ich kann es ohne meine Artikelschnitte nicht wirklich visualisieren. Ich werde das später machen. Ich werde vorerst einfach Null schreiben. Das war es vorerst. Nun, dieses vertikale Feld hier, ich werde es einfach umbenennen , weil wir es später verwenden werden . Ich nenne das VB für vertikale Box und lass es uns so etwas wie Artikelliste nennen Lassen Sie uns es als Variable festlegen , weil wir etwas hinzufügen müssen oder wir die Elemente später zu dieser Artikelliste hinzufügen die Elemente später zu dieser Artikelliste Das war es. Schließen wir das und fahren wir mit dem nächsten fort. 66. 8.02 Entwerfen der Shop-Item-Karte: In Ordnung, jetzt ist es an der Zeit , die Artikelkarten zu entwerfen. Jetzt werden wir die Artikelkarten nicht zu dieser Hauptoberfläche hinzufügen , da die Artikel, die Sie sich vorstellen können, jede Artikelkarte einzigartige Informationen enthält. Ich gehe also nicht hier rein und füge einen Text hinzu und füge dann den Text hier hinzu und so weiter, weil das eine Menge Kopieren/Einfügen bedeutet und keinen Sinn ergibt Im Grunde genommen ist das, was wir bei der Programmierung für Shops machen : Sie nehmen die Artikelkarte, entwerfen eine Instanz davon, ändern dann dynamisch alle Informationen und den Artikelcode mit Code, und Sie duplizieren einfach diese Artikelnummer und ändern die Informationen dort Versuchen wir es, damit wir es besser verstehen können. Lassen Sie uns das hier unten schließen. Klicken wir erneut mit der rechten Maustaste und erstellen Sie neue Git-Blueprints Nennen wir diesen einen Shop-it-Code hier. Lass es uns öffnen. Lassen Sie uns jetzt wieder eine Leinwand hinzufügen. Übrigens, was wir entwerfen, ist so etwas. Aber im Grunde ist es das, was wir zu entwerfen versuchen. Es ist immer schön zu sehen, bevor wir anfangen, das versuchen wir zu entwerfen. Sie können versuchen, es selbst zu tun, wenn Sie möchten. Wir machen das Gewünschte auf dem Bildschirm. Versuchen Sie es selbst, wenn Sie möchten. Oder wir können es hier zusammen machen, indem wir zuerst eine Leinwand hinzufügen und dann ein Overlay hinzufügen, weil wir einen Hintergrund benötigen, um das Overlay hinzuzufügen Wenn wir hier klicken, fügen wir auch ein Bild hinzu. Das wird unser Hintergrund sein. Nun zu diesem Bild, das ich habe, schauen wir uns das mal an. Gehen wir zu den Bildern. Ich werde diesen benutzen. Ziehe es wieder hinein, genau wie zuvor. Ändern Sie es so, dass das Feld direkt am Rand gezeichnet 0.5 Jetzt dieses Overlay hier, ich werde es in der Mitte ausrichten, am Ankerpunkt Und 0,5 in die Ausrichtung schreiben, genau wie zuvor. Da wir es zentrieren wollen, denken Sie daran, dass wir 00 in X und Y schreiben wollen. Ich werde einfach hier klicken. Oder Größe zu Inhalt hier, also ist es hier genau in der Mitte. Was die Bildschirmgröße angeht, wählen wir erneut die gewünschte Bildschirmgröße aus. Sie bleibt bei dem Bildschirm, den wir ausgewählt haben. Der Unterschied besteht darin, ob Sie „gewünscht“ auswählen Sie können hier sehen, ob ich jedoch wie zuvor zur Bildschirmgröße gehe , um sie auf meinen Laptop zu skalieren. Wenn Sie hier klicken, können Sie sehen, wie sie sich auf dem Bildschirm automatisch auf die gewünschte Größe ändert. Hier ist es. Es ist super, super klein. Wir müssen die Größe dieses Bildes erhöhen. Vielleicht ändere ich das Bild selbst nicht, weil es sich an den Inhalt hier anpasst. Ich werde einfach etwas Inhalt hinzufügen und schauen, ob es gut aussieht. Zunächst benötigen wir eine horizontale Box. Ziehen wir das in den Overallay. Dann brauchen wir in der horizontalen Box etwas Text. Nun zum Text, ich werde einfach etwas kopieren und einfügen , was wir bereits getan haben, damit wir es nicht wiederholen müssen Ich werde einfach in den schwebenden Text gehen und diesen Text kopieren, der hierher führt. Ich werde ihn in das horizontale Feld einfügen. Bei diesem Bild kann ich sehen, dass es in der horizontalen und vertikalen Ausrichtung nicht richtig skaliert in der horizontalen und vertikalen Ausrichtung nicht richtig wird. Mach weiter und fülle es aus. Nun zur Größe dieses Textes. Ich werde stattdessen etwas kleiner wählen, vielleicht 26. Und ich werde auch die Konturfarbe in etwas Dunkelbraunes ändern , etwas mit dieser Farbe hier. Ich klicke auf Okay. Ich werde diese Konturfarbe auch in die Schattenfarben kopieren . Wir geben diesen Effekt hier. Dann führe ich eine Spacer-Suche nach einem Abstandhalter durch, der in das horizontale Feld hinzugefügt wurde Für diesen Abstandhalter schreibe ich 15 in das X. Dann fügen wir ein vertikales Feld hinzu, denn jetzt müssen wir hier Dann fügen wir ein vertikales Feld hinzu, denn jetzt müssen wir das vertikale Feld in das horizontale Feld einfügen Dann fügen wir jetzt den Namen hinzu. Kopieren Sie einfach diesen Text erneut fügen Sie ihn in das vertikale Feld für diesen ein Das ist der Name, wir können zum Beispiel sagen, wir haben später einige Elemente, aber lassen Sie uns so etwas wie Whizz Tower schreiben Nur etwas Zufälliges . Für diesen Text ist es momentan egal. So viele Artikel haben wir bisher von diesem Artikel gekauft. Ich werde einfach 999 schreiben. Das ist vielleicht die maximale Anzahl an Gegenständen, die du im Spiel kaufen kannst. Unter diesem Artikelnamen benötigen wir nun den Preis. Ich werde ein horizontales Feld machen, weil wir das Symbol auf der Münze und den Preis benötigen. Wenn wir das horizontale Feld in das vertikale Feld hier einfügen, benötigen wir ein Bild und dann brauchen wir etwas Text. Nun zum Text, ich kopiere ihn einfach und füge ihn hier in das horizontale Feld ein. Für den Preis können wir so etwas wie 9457 oder so etwas nach dem Zufallsprinzip schreiben 9457 oder so etwas nach dem Zufallsprinzip Kann sogar eine weitere Zahl hinzufügen. Ich würde gerne eine hohe Zahl hinzufügen weil ich nur sichergehen möchte, dass meine Gegenstandskarte nicht geknackt wird, wenn wir große Zahlen für das Spiel haben Du kannst sogar eine weitere Zahl schreiben , wenn du das mögen möchtest Um sicherzugehen, dass die Karte für dieses Symbol gut aussieht, gehe ich in meinen Icon-Ordner und füge diese Münze hier hinzu. Ziehen Sie es jetzt für das Bild hinein. Ich werde es nicht als Feld zeichnen, weil das Feld genau dann ist, wenn wir möchten, dass die Benutzeroberfläche skaliert wird, wann immer wir es ziehen. Aber was das Bild angeht, richte ich es einfach hier horizontal aus und es vertikal in der Mitte aus, weil Sie hier vielleicht sehen, dass es sich leicht dehnt, wenn Sie es so machen . Das macht sich auch bemerkbar. Immer wenn Sie eine Benutzeroberfläche haben , die sich stärker dehnt, wird das Bild nicht richtig skaliert. Richten Sie es hier einfach in der Mitte aus. Ich werde es nach rechts auffüllen, sodass zwischen dem Text und dem Symbolabstand auf der rechten Seite etwas Platz ist Text und dem Symbolabstand auf der rechten Seite Geben Sie ihm etwa drei. Wir haben etwas Abstand. Jetzt müssen wir dem horizontalen Feld hier auch etwas Abstand geben , weil es sich an den Rändern befindet. Ich werde einfach hier klicken, um die Polsterung zu sehen. Nun zur Linken, ich versuche, ihr etwa 25 zu geben. Und nach rechts geben wir ihr auch 25, etwa so. Lassen Sie uns nun etwas wie 15 mal 15 versuchen. Wir können ein bisschen mehr geben. Ich denke, wenn ich wieder auf das horizontale Feld klicke, geben wir ihm etwa 16. Ich glaube, ich gebe am Ende von 16, 20 mehr. Das sieht gut aus. Richten Sie nun auch diese Textur senkrecht zur Mitte aus. Das sieht toll aus. Okay, lass uns weitermachen. Nun zum Schatten. Ich glaube, ich werde stattdessen in den Schatten schreiben, weil der Schatten viel zu stark ist schreibe zwei statt drei für diesen. Als letzten Punkt fügen wir die Schaltfläche Nach hinzu. Lassen Sie uns nach der Schaltfläche suchen. Eigentlich brauchen wir zuerst ein Overlay, weil wir etwas Text darüber hinzufügen müssen Wenn ich die Schaltfläche hinzufüge, schauen wir uns an, wo wir sie hinzufügen. Hier, wir haben diese horizontale Box gemacht. Hier wollen wir es hinzufügen. Ziehe es hierher und suche dann nach der Schaltfläche. Mach weiter und füge es hinzu. Nun zu dieser Schaltfläche werde ich sie einfach vertikal und horizontal ausrichten, so wie hier für den Stil. Gehen wir zu den Schaltflächen und ziehen diese ein. Zieh es hier rein. Nun zu dem Farbton, den ich breiter machen werde, damit er unsere Schaltfläche für die Ziehungen nicht beeinträchtigt Ich werde ihn wie zuvor als Feld zeichnen Rand 0,5 Lassen Sie uns nun für diese Schaltfläche eine Größe hier im X angeben . Lassen Sie uns weitermachen und ihr etwas Abstand geben Sie können wählen, wie groß Ihre Schaltfläche sein soll, aber jetzt machen wir es einfach so , weil wir zuerst etwas Text hinzufügen. Wenn ich das einfach kopiere, kopiere und in das Overlay für diesen Text einfüge, lass es uns in der Mitte der Schaltfläche ausrichten Schreiben wir so etwas wie y. Das wird darin stehen. Jetzt werde ich es an der Unterseite etwas aufpolstern, weil ich finde, dass es zu nah am Boden Die untere Polsterung ist etwa vier. Jetzt haben wir es, es sieht wirklich gut aus. Ich möchte, dass du hier die Farbe der Münzen änderst. Wir können einfach dasselbe verwenden wie zuvor. Wenn wir zum Hauptmenü oder zur Haupt-Benutzeroberfläche zurückkehren und diese Farbe hier verwenden können, können wir sie kopieren und in die Artikelkarte des Shops einfügen , die eine andere Farbe hat. Außerdem möchte ich, dass du den Button „Nach“ in eine andere Farbe änderst, vielleicht etwas wie Grün. Sie können versuchen, eine grüne Farbe zu wählen, die Sie möchten. Ich werde mich einfach für diese grüne Farbe entscheiden . Mach weiter und klicke auf Okay. Nun, so sieht es aus. Jetzt müssen Sie einfach versuchen, es so gut wie möglich zu stilisieren und zu gestalten Hier können Sie das Y für die Schaltfläche erhöhen , wenn Sie möchten Sie können sehen, dass dieser nicht in der Mitte ausgerichtet ist. Ich werde auf dieses vertikale Feld klicken und es in der Mitte ausrichten Stattdessen sieht es korrekter aus. Nun zu diesem Button, ich werde es nicht übertreiben. Ich gebe ihm nur etwas Platz. Es sieht also gut aus. Ich glaube, etwa 150 mal 75, und so sieht es aus. Jetzt können Sie ihm etwas mehr Abstand geben, wenn Sie möchten, aber ich denke, jetzt sieht alles gut aus. Das ist unsere Karte und wir können sie immer anpassen. Es ist nicht so, dass wir sie jetzt entwerfen. Und dann können wir es später anfassen. Wir passen es immer später an, weil das Spiel jede Stunde, in der wir es entwickeln, ändert, vielleicht in zwei Tagen. Ich finde, das sieht nicht gut aus. Ich kann weitermachen und es ändern, wenn ich möchte. Ich kann sogar die Farbe ändern und so weiter. Entwerfen Sie es vorerst einfach so gut wie möglich. Nun zu diesem Text, ich möchte nur etwas testen. Sie können hier sehen, wenn ich hier schreibe, wird es die gesamte Benutzeroberfläche skalieren . Und das möchte ich nicht wirklich tun. Sie vermeiden dies, indem ihm grundsätzlich eine Mindestbreite geben. Wenn ich es einfach hier unten finde, gewünschte Mindestbreite, können Sie diese Breite erhöhen. Wie Sie sehen können, wird diese Breite hier erhöht. Für diesen Text werde ich ihn hier links und auch hier unten links ausrichten . In der Begründung bleibt es bei dieser gewünschten Mindestbreite links, ich glaube, ich schreibe etwa 50. Immer wenn wir die Zahl hier im Code ändern, kannst du sehen, ob ich Null schreibe. Ich schreibe zum Beispiel 51. Es wird das gesamte Layout nicht ändern. Ich finde, das sieht viel besser aus. Vielleicht kann ich den Text sogar verkleinern und stattdessen 20 schreiben. Wenn ich noch einmal 999 schreibe, kann ich die gewünschte Mindestbreite auf 45 reduzieren. Einfach so. Das Gleiche gilt für den Artikelnamen. Also schreibe ich so etwas wie Tower oder mache es. Das hier, du kannst sehen, dass es das Layout ändert und ich möchte das nicht wirklich noch einmal machen. Ich werde ihm hier eine minimale Designbreite geben. Erhöhen Sie es einfach , bis Sie zufrieden sind. Nun werde ich diesen Text wieder horizontal nach links und die Ausrichtung horizontal nach links und die ebenfalls nach links ausrichten. Für die minimale Designbreite werde ich etwa 150 machen. Eigentlich werden wir ihm einen viel längeren Namen geben, wir können es testen. Wenn wir zum Beispiel ein Objekt haben, das einen langen Namen hat, zum Beispiel Wizard Tower Defender oder was auch immer wir hier schreiben wollen, können wir ihm eine entworfene Mindestbreite geben, 200.235 wäre das Maximum Wir können das einfach mit einem Turm entfernen. Nochmals, für diesen Text hier wird es sich nicht wirklich auswirken, weil es nicht so lange dauern wird , dass es hier drüben wirkt. Ich lasse das vorerst einfach sein. Aber auch hier können Sie ihm einfach ein Mindestdesign geben , wenn Sie möchten. Aber vorerst werde ich es einfach nicht tun weil ich nicht glaube, dass es hier so lange dauern wird. Der Preis, jetzt sieht alles gut aus. In Ordnung, das war es also für die Artikelkarte des Ladens. Also lass uns weitermachen und die Namen ändern, weil wir den Schieferschiefer anpassen müssen. Für diesen Text werde ich nun Text für den Artikelnamen sagen. Dieser Text hier unten wird hier als Text Artikelpreis für Schaltfläche bezeichnet . Wir werden es auch später ändern , weil ich die Farbe ändern und es rot machen möchte , wenn wir den Artikel nicht kaufen können. Von diesem werde ich Text von sagen. Dieser ist Text. Anzahl der Artikel-Spots müssen wir hier eigentlich nicht mehr nachholen. Wenn Sie das Diagramm kompilieren und sich das Diagramm ansehen, sind dies die Variablen , die wir gerade für den Text für diese Benutzeroberfläche hier haben . Ich denke, alles sieht gut aus. Wir können die Dinge später jederzeit anpassen , wenn wir etwas ändern möchten. Lassen Sie uns vorerst alles dafür per Button speichern. Ich werde sicherstellen, dass die Sichtbarkeit so eingestellt ist, dass sie testbar ist, damit sie nicht auch die Schaltfläche für diese Schaltfläche blockiert Ich kopiere und füge in das Hoverdm ein, das für den gedrückten Zustand gedrückt wurde Ich glaube, wir haben einen gedrückten Zustand in den Tasten. Auf diesen werde ich klicken und ihn hierher ziehen. Für den Hoverd-Staat haben wir keinen Button. Ich ändere einfach den Farbton etwas anders, wenn wir über die Schaltfläche fahren und klicken, okay, kompiliere und speichere Wenn du das testen willst, kannst du jederzeit zum Mittelwert zurückkehren und schon ist es raus Sie können nach der WB-Shop-Artikelkarte suchen, die wir erstellt haben. Und du kannst das in die Artikelliste ziehen, die wir erstellt haben, um zu sehen, wie es aussieht, wenn ich einfach D kontrolliere und es ein paar Mal dupliziere So sieht es aus, wenn ich sie hier einfach entferne. Was Sie jetzt tun können, ist, ihm etwas Platz zu geben. jetzt im Scrollfeld weiter und geben Sie ihm etwas Platz für die Polsterung Ich kann 25 schreiben, ich kann so etwas wie 50 schreiben. Ich denke, vielleicht ist 50 eine gute Zahl. Jetzt können Sie sehen, dass es zur Seite schneidet. Was Sie tun können, ist, die Größe dieses Geräts zu erhöhen. Denken Sie daran, das ist die ganze vertikale Box hier. Sie können weitermachen und die Größe leicht erhöhen. Du kannst alles sehen. Was Sie auch tun können, ist, auf das Scrollfeld zu klicken. Ich klicke hier einfach auf Bildlaufleiste immer anzeigen. Es ist so. Konsumiere auch das Mausrad. Ich werde zu immer wechseln, damit wir hier immer nach unten scrollen können. Lassen Sie uns nun auch diesen Griff für die Scrollleiste entwerfen. Ich möchte, dass du hier zu deinen Kursmaterialien zurückkehrst. Und ich habe dir diesen Schiebegriff gegeben. Lassen Sie uns das importieren. Wenn ich es einfach hierher bringe, ziehe diesen Schieberegler in die Bilder. Ich werde es einfach hier drinnen machen. Ziehe es hierher und achte darauf, dass du die Pixeleinstellungen hinzufügst. Klicken wir mit der rechten Maustaste auf die richtigen Aktionen und tragen Papier auf die Einstellungen auf. Gehen wir nun zurück zur Benutzeroberfläche, öffnen die Haupt-Benutzeroberfläche und klicken wir hier auf das Scroll-Feld. Und geh runter und du kannst diesen finden, der Bar Style heißt. Als wir darauf klickten, hatten wir dieses normale, taube Bild. Sie können es auf den Schieberegler umstellen. Jetzt können Sie sehen, wie es sich ändert. Nun wieder für den Feldrand, ich werde stattdessen 0,5 für die Dicke der Bildlaufleiste schreiben . Sie können festlegen, wie breit es sein soll. Ich glaube, ich gebe ihm etwa 18. Sie können ihm auch etwas Polsterung geben, etwas Abstand zwischen diesen Elementen Und dieses Handle, ich werde vorerst einfach Null in alle schreiben Nach links gebe ich etwa zehn, also hat es etwas nach oben. Mal sehen, ob ich denke, dass es so bleiben sollte. Eigentlich ist Null oben, rechts Null. Die Unterseite ist ebenfalls Null. Lass es uns so versuchen. Ich werde das nur ein paar Mal duplizieren Ich kann auch den Schatten hier unten sehen, wie er aussieht. Okay, alles sieht toll aus. Klicken wir nun auf dieses vertikale Feld und vergrößern es. Also ist es nicht, ich denke es sieht bisher gut aus. So sieht es aus. Sie können die Größe dieses Artikels jederzeit reduzieren , wenn Sie möchten, wenn der Name zu lang ist. Oder Sie können den Namen verkleinern, sodass Sie Platz für den Motor haben. Aber auch hier können wir es später anpassen, wenn wir möchten. Aber jetzt gehen wir zurück zum Shop-Artikel, Cod. Was ich hier tun möchte, ist, dass ich ihm etwas Abstand geben möchte, weil Sie sehen können, dass es innerhalb der Shop-Artikelcodes keinen Abstand zwischen diesen Elementen gibt . Ich werde hier auf das Bild klicken. Ich werde es nur oben und unten etwas polstern oben und unten etwas Nach oben vielleicht sechs und auch zu den unteren sechs. Versuchen wir mal zu sehen, wie das aussieht. Das sieht viel besser aus. Geben wir es tatsächlich fünf statt 65 mal fünf. Auch hier gilt: Wenn Sie möchten, können Sie die Größe der Schaltfläche jederzeit erhöhen. Das gilt nicht für das X, für das Y werde ich es sogar noch einmal erhöhen, leicht, etwa 80. Denken Sie nur daran, diese Bildgröße auch auf den Hover und die Presse zu kopieren diese Bildgröße auch auf den Hover und die Presse Komp, kompiliere, speichere alles. So sieht es aus. Es sieht wirklich gut aus. Ich glaube nicht, dass wir mehr Dinge ändern werden , wenn ich es nur maximiere. So sieht es aus. Für mich. Ich könnte den Text etwas größer machen. Lassen Sie mich das eigentlich machen. Es ist ein bisschen zu klein. Auf meinem Bildschirm kann ich 20 für den Text hier oben, den Preis auch, und 22 oder 24 für die Artikel hier zusammenstellen. Ich hoffe, wir müssen die gewünschte Mindestbreite nicht anpassen, aber wir können es später tun, wenn wir müssen. Ich denke, das sieht viel besser aus. Okay, das sind die Gegenstände, die wir haben. Alles sieht gut aus. Auch für den Kaufen-Button werde ich ihn auf 20 ändern. Jetzt sind wir fertig. Lasst uns alles speichern und alles schließen. Und jetzt sind wir bereit weiterzumachen. 67. 8.03 Artikelinformationsstruktur und Datentabelle: Bevor wir damit fortfahren können, benötigen wir natürlich einige Elemente, mit denen wir arbeiten Ich möchte, dass Sie noch einmal in Ihre Kostenunterlagen gehen, und ich möchte, dass Sie in den Objektordner gehen. Hier habe ich dir ein paar Icons gegeben und du kannst sie als Gegenstände im Spiel verwenden. Also mach weiter und lass uns sie importieren. Gehen wir hier zu den Assets , ich klicke mit der rechten Maustaste und erstelle einen neuen Ordner, nennen wir ihn Objekte. Fahren Sie fort und importieren Sie all diese hier hinein. Auch hier werde ich auf alle klicken. Klicken Sie mit der rechten Maustaste und tragen Sie erneut Papier auf die Einstellungen auf. Jetzt haben wir die. Um sie nun intuitiv nutzen zu können, denken Sie daran, dass wir sie in Sprites umwandeln Wir können Texturen wie diese nicht einfach hineinziehen, also wählen wir sie alle aus. Klicken Sie mit der rechten Maustaste und sagen Sie Create Sprite. Jetzt müssen wir nicht mehr extrahieren, denn denken Sie daran, dass Extrahieren nur möglich ist, wenn wir mehrere Sprites in einem Bild haben mehrere Sprites in einem Bild Im Moment ist es nur ein Sprite in einem Bild. Also können wir einfach weitermachen und auf Create Sprite klicken. Hier haben wir die Sprites. Ich werde mit der rechten Maustaste klicken und einen neuen Ordner namens Textures erstellen , weil wir die im Grunde nicht mehr alle benötigen Ich werde auf all diese Texturen klicken und sie in diesen Ordner ziehen. Jetzt können wir nur die Sprites sehen. Mach weiter und speichere alles. Gehen wir als Nächstes zu den Bauplänen. Und lassen Sie uns weitermachen und unsere Struktur erstellen. Lassen Sie uns den Strukturordner öffnen. Erstellen Sie eine neue Blueprint-Struktur, Artikelinformationen, ST-Artikelinformationen Mach weiter und öffne es. Jetzt können wir Variablen zu allem hinzufügen, was wir für diese Artikelinformation wollen. Für die Artikelinformationen benötige ich natürlich den Namen des Artikels. Sie einfach den richtigen Namen ein, fahren Sie fort und wählen Sie die Zeichenfolge Speichern. Lass uns eine neue Variable erstellen. Nennen wir das eine Klasse. Und diese wird die Basisklasse für Artikel sein. Ich kann hier sehen, dass wir noch keine Artikelbasis erstellt haben. Machen wir weiter und machen das in den Blueprints. Hier haben wir keinen Ordner dafür Ich werde schreiben, klicken Sie auf Erstellen Sie einen neuen Ordner namens Items. Innerhalb dieses Artikelordners. Lassen Sie uns schreiben, eine neue Blueprint-Klasse für diese Klasse zu erstellen Nun zu den Gegenständen, ich möchte nur, dass es normale Sprites sind , die ich in der Welt spawnen möchte Ich werde tatsächlich nach Sprite suchen und den Paper-Sprite-Schauspieler auswählen Mach weiter und wähle diesen aus. Ich nenne es BP Item Base. Jetzt kannst du dir vorstellen, wann du schon ein Spiel entwickelst. Jetzt musst du entscheiden , was dein Gegenstand enthalten soll. Denn du kannst hier sehen, ob ich später entscheide, dass es sich bei meinen Artikeln um animierte Flipbooks aus Papier handelt. Und ich muss hier einen Entwurf erstellen, stattdessen nach einem Flipbook suchen und stattdessen dieses auswählen Erstellen Sie Ihre Artikelbasis in einem falschen Blueprint. Das wird für dich eine Qual sein, weil du alles noch einmal neu erstellen musst, gerade wenn du ein Spiel erstellst, von dem aus du bereits ein Spiel erstellst Entscheiden Sie nun, ob Ihre Artikel animiert sind? Wenn ja, müssen Sie natürlich ein Flipbook aus Papier auswählen, da Flipbooks animiert sind Wenn Sie jedoch keine Animationen für die Elemente haben, wissen Sie, dass Sie stattdessen ein Sprite auswählen können Vergewissere dich nur, dass du das alles weißt, bevor du den Blueprint erstellst Ich weiß, dass meine Artikel hier nicht animiert sind, es sind hier nur Bilder. Sprites, ich erstelle stattdessen Paper Sprite. Jetzt haben wir diese Artikelbasis. Jetzt müssen wir wirklich nichts mehr damit machen. Gehen wir also zurück zu den Artikelinformationen. Ich wollte es nur hier in meiner Klasse erstellen. Ich kann nach einer Artikelbasis suchen, ich kann weitermachen und sie als Klassenreferenz auswählen. Der Grund, warum ich die Klassenreferenz ausgewählt habe, ist man das normalerweise macht , wenn man Gegenstände spawnen möchte Denken Sie daran, dass ich im Blueprint den Player-Controller öffne, wir verwenden diese Klasse, ist eine Klassenreferenzklasse für Schauspieler. Und wir verwenden das, um Dinge zu erzeugen. Ich möchte den Gegenstand später spawnen, also füge ich ihn hinzu Dann wollen wir Sprites schreiben, weil ich wissen will, welches Sprite Ich werde nach Sprites suchen und die Objektreferenz Papa Sprites auswählen Das Letzte, was ich hinzufügen möchte, ist wie viel kostet dieser Artikel? Münzen kosten. Fahren Sie fort und suchen Sie nach, wählen wir einfach eine Ganzzahl aus. Nur eine Ganzzahl. Jetzt haben wir das erledigt, die Artikelinformationen. Lassen Sie uns jetzt weitermachen und eine Datentabelle dafür hinzufügen. Öffnen Sie die Datentabelle. Klicken Sie mit der rechten Maustaste auf die Micellaneouselta-Tabelle. Ich muss die Struktur, die Artikelinformation, die Cola, auswählen. Nennen wir es T Item Info. Jetzt mache ich es etwas schneller als zuvor, weil wir das schon zweimal gemacht haben . Nun zu diesen Artikelinformationen, wir benötigen eine Datentabelle dafür in Google Sheets. Ich möchte Google Sheets hier noch einmal öffnen. Lass mich das einfach duplizieren, Informationen auf TT-Level, oder? Dupliziere es. Nennen wir das hier unten. Lassen Sie uns den Namen in DT item base ändern. Jetzt, hier drinnen, werde ich das alles löschen. Lösche das alles nochmal. Nun zu den Artikeln muss ich den Namen jedes einzelnen Artikels schreiben. Ich kann zum Beispiel die erste nehmen und Sie können die Methode jederzeit kopieren und einfügen. Auch hier müssen Sie dieselben Variablennamen schreiben wie in der Struktur hier oben, um den Namen zu schreiben. Und dann müssen wir Sprites schreiben und dann haben wir die Kosten für die Münzen, du musst sie genau so schreiben, wie wir sie hier geschrieben haben, sonst wird es nicht funktionieren Dann müssen Sie als Zweites die Informationen aufschreiben Wenn ich jetzt zurück an meinen Tisch gehe, um die ID zu finden, musst du den Artikelnamen schreiben. Wenn ich zu den Objekten zurückkehre, finde ich einen der Gegenstände. Nehmen wir zum Beispiel an, der erste Gegenstand ist diese Feder. Ich kann es nennen, wie ich will. Ich möchte es zum Beispiel Lichtvater nennen. Ich kann es kopieren und in den Namen der Klasse einfügen. Wir haben es noch nicht erstellt. Ich gehe zu den Gegenständen der Klasse. Ich muss hier mit der rechten Maustaste klicken. Erstellen Sie eine untergeordnete Blueprint-Klasse. Jetzt muss ich alle Elemente erstellen. Der erste heißt BP Light. Sie können versuchen, sie in der gewünschten Reihenfolge einzustellen . Zum Beispiel ist die Lichtfeder der schlechteste Gegenstand im Spiel. Zum Beispiel könnte dieser Ruf oder dieser Regenbogen der beste Gegenstand im Spiel sein. Sie können sie einfach in der gewünschten Reihenfolge anpassen , aber Sie müssen sie nur alle erstellen. Ich kann sie zum Beispiel in einer zufälligen Reihenfolge erstellen. Vorerst zum Beispiel diese Krone des Bösen. Jetzt kann ich zu den Objekten gehen, mit der rechten Maustaste auf die Artikelbasis klicken und einen untergeordneten Blueprint erstellen Nenn es BP Brown of Evil. Geh zurück zu Objekten, ich werde den Hut des Großen Zauberers kopieren. Und mach einfach dasselbe für alle Gegenstände. Und ich bin wieder bei dir sobald ich sie alle erstellt habe. In Ordnung, jetzt bin ich zurück. Als Kind habe ich alle Gegenstände hier kreiert. Also klicke ich im Grunde mit der rechten Maustaste und erstelle ein Kinder-Blueprint-Glas gebe ihm einfach den Namen der Artikel, die ich hier habe, die wir hier importiert haben. Jetzt habe ich sie alle. Lass uns weitermachen und alles speichern. Jetzt können Sie zur Datentabelle zurückkehren, um diese Informationen hier abzurufen. Um die Klasseninformationen zu erhalten, gehe ich normalerweise einfach zur Datentabelle A und füge eine Zeile hinzu und wähle sie zum Beispiel hier aus. Ich kann zum Beispiel die Glücksfeder oder die Lichtfeder auswählen. Und dann kann ich die Umschalttaste gedrückt halten, rechten Maustaste klicken, um sie zu kopieren, und dann kann ich meine Datentabelle öffnen und V drücken, um sie einzufügen. So macht man es im Grunde. Jetzt können Sie sehen, dass Sie diese helle Feder eingeklebt haben. Jetzt müssen Sie wieder alle Artikel hier eintragen. Nun, sehr wichtig, das wird die Reihenfolge Ihrer Artikel sein, wie gut sie sind. Achte nur darauf, dass du zuerst die schlechtesten Artikel schreibst und dann wird es besser und besser, sie in der Reihenfolge zu schreiben, die du willst. Ich werde das einfach auch hier machen. Jetzt habe ich sie alle in der von Ihnen gewünschten Reihenfolge aufgeschrieben . Ich habe hier nur eine zufällige Reihenfolge für alle Artikel geschrieben. Nun müssen Sie für jede dieser Klassen wieder hier reingehen, die Datentabelle für die Artikelinformationen öffnen und zum Beispiel die nächste auswählen, nämlich, lassen Sie uns nur der Reihe nach auswählen. Zum Beispiel Crown of Evil. Gehen Sie zurück zur Datentabelle und fügen Sie sie hier für die Krone des Bösen ein. Gehen Sie jetzt wieder zurück und wählen Sie die Grand Wizard Heads aus. Fügen Sie es hier in die Zaubererköpfe ein. Tu es einfach für alle. Nun zum Sprite, es ist viel einfacher, weil du das einfach minimieren kannst Gehe zu deinem Sprite hier in den Objekten. Klicken Sie für jedes Sprite mit der rechten Maustaste auf den Verweis, dann können Sie hierher zurückkehren und ihn für die Krone des Bösen einfügen Jetzt zum Beispiel die nächste, die Rechtsklick-Referenz mit dem Kopf des Zauberers Gehen Sie zurück zur Datentabelle, fügen Sie sie hier ein und so weiter. Tun Sie das auch für den Sprite. die Kosten für Münzen angeht, kannst du das nach dem Zufallsprinzip machen Jetzt kannst du so etwas schreiben, als ob der erste Artikel 15 Münzen kostet Ich schreibe einfach gleich, wenn ich auf diese Zahl klicke, wir mal 1,5. Dann klicke ich einfach und ziehe das in dieses ganze Feld Also fügt es automatisch die Zahl für mich hinzu. Es spielt vorerst keine Rolle , wie hoch der Preis ist. Sie können ihn später jederzeit anpassen. Wir programmieren erst mal. Ich werde das jetzt einfach alles ausfüllen. In Ordnung, jetzt habe ich alle Informationen eingegeben. Fahren Sie fort und klicken Sie auf Datei und Download. Laden Sie es als CSV-Datei herunter. Machen Sie jetzt weiter und benennen Sie es in DT Base um. Gehen wir zurück zur Datentabelle. Eigentlich hat DT Base es Info genannt. Das ist mein Fehler. Informationen zum Artikel. Sie müssen das auch in der Datentabelle hier korrigieren. Nenn es stattdessen Info, das. Jetzt können wir das hier hineinziehen und sollten automatisch alle Informationen für uns importieren . Jetzt haben wir also alles, was wir brauchen. Jetzt der letzte Schritt, den wir tun müssen, kurz bevor wir damit fertig sind, können wir immer noch in Bibliotheken gehen. nun in den vorherigen Bibliotheken Fügen wir nun in den vorherigen Bibliotheken eine neue Funktion namens get item info hinzu, weil wir sie später benötigen. Fügen wir hier eine Eingabe hinzu, nennen wir sie T-Name, das ist eine Zeichenfolge. Nun zum Itam, lass uns nochmal ziehen. Genau wie zuvor können wir hier reingehen. Und das ist im Grunde alles. Sie können das alles sogar hier kopieren und einfügen. Wir ersetzen alle Leerzeichen, wie Sie hier sehen können. Wir wollen hier die DT-Artikelinformationen und wir können einen Rückgabeknoten erstellen, Return, er gibt die Informationen für diesen Artikel hier zurück, ich kann einfach Artikelinformationen schreiben, kompilieren und sicherstellen, dass Sie für diese Artikelinformation Pure ausgewählt haben. Weil wir nur die Informationen haben wollen , alles speichern wollen. Das war es. Jetzt haben wir alles, was wir für die Artikelinformation benötigen. Wenn du es nur testen willst, kannst du jederzeit in den Player gehen, zum Beispiel Recht sagen, Artikelinformationen abrufen Hier siehst du, dass du den Artikelnamen hast, den du eingeben kannst und lass uns den Artikelnamen hinzufügen bevor wir das beenden, nur ein paar zusätzliche Inhalte hier, wir können die Artikelbasis fertigstellen Öffnen wir es hier für die Variablen, die ich hinzufügen möchte. Wir können es sogar Namen oder Namen nennen. Nennen wir es Artikelname. Geben wir ihm eine Zeichenkettenvariable. Kompilieren Sie jetzt, da ich sie dem Elternteil hinzugefügt habe, erben alle untergeordneten Blueprint-Variablen , wenn ich zum Beispiel die Krone des Bösen öffne. Sie können hier sehen, dass sie einen Objektnamen hat und Sie müssen diesen Elementnamen korrekt schreiben Da dies nun der Elementname ist, werden die Informationen aus dieser Datentabelle extrahiert Wenn du diesen zum Beispiel Crown of Evil nennst, wird er hier Crown of Evil finden. Später wird es all diese Informationen benötigen. Es weiß, welche Klasse es hat, welchen Sprite es hat, was es kostet und so weiter Du musst das also richtig schreiben und wir können es später verwenden Klicken Sie erneut auf alle. Schreiben Sie den Namen von ihnen für Grand Wizard. Fügen Sie für diesen einen Teil der Artikelbasis hinzu, wir haben nichts. King's Crown, richtig? Die Runde der Könige. Ich werde das einfach für alle tun. In Ordnung, das ist die letzte, die Fackel. Lass uns weitermachen und alles kompilieren und speichern. Jetzt haben wir alles , was wir brauchen. Speichern Sie alles und fahren wir mit der nächsten Lektion fort. 68. 8.04 Erstellen der Shop-Item-Karten: In Ordnung, jetzt machen wir weiter und erstellen den Shop-Artikel. Od, lass uns jetzt zu den Bauplänen gehen. Öffne das Gesetz zur Spielerkontrolle, denn denk dran, hier machen wir die Benutzeroberfläche Was auch immer du für die Benutzeroberfläche tun musst. Normalerweise mache ich das in der Spielersteuerung. Anstatt hier werde ich ein neues neues Event erstellen, ein benutzerdefiniertes Event. Nennen wir das „Shop-Artikel erstellen“. Denn jetzt müssen wir sie dynamisch durch Code erstellen. Denken Sie daran, dass wir für die Artikelkarte im Shop im Grunde genommen eine Karte als statische Karte entworfen eine Karte als statische Karte bei der alle Informationen statisch sind. Aber jetzt müssen wir den gesamten Text hier ändern , damit er durch Code dynamisch ist. Deshalb müssen wir zuerst die Karte erstellen und sie dann oben im Menü anzeigen , wo wir dieses Scrollfeld hier in der Spielsteuerung haben. Lass uns das machen. Erstellen Sie Shop-Artikelkarten. Im Grunde wollen wir hier dieses Widget namens Create Widget verwenden. Widgets erstellen. Und wir wollen die Shop-Artikelkarte erstellen. Das ist unser Hauptziel. Jetzt müssen wir das für die Anzahl der Artikel erstellen, die wir haben. Denken Sie daran, dass diese Informationen in der Datentabelle verfügbar sind , die wir hier erstellt haben. Wir wissen bereits, wie viele Elemente wir von hier haben, wir wissen tatsächlich, wie viele dieser Widgets wir erstellen müssen. Sie können dies im Grunde tun, indem Sie mit der rechten Maustaste klicken und sagen: Holen Sie sich die Zeilennamen der Datentabelle. Denken Sie an diesen, den wir in der Funktionsbibliothek verwendet haben, aber jetzt müssen wir diesen verwenden. Ruft die Zeilennamen der Datentabelle ab. Wir erhalten also alle Namen in dieser Datentabelle. Jetzt haben wir alle Artikelnamen hier. Wir werden es verbinden. Was wir jetzt tun können, ist jetzt, anstatt es hier zu verbinden, weil wir für jedes dieser Elemente ein Widget erstellen müssen . Was wir tun können, ist, dass wir hierher ziehen und sagen, vier pro Loop. Jetzt machen wir eine Schleife. nun für jedes dieser Elemente Erstellen Sie nun für jedes dieser Elemente ein Widget. Wenn Sie dann das Widget erstellen, möchte ich es zu einem Array hinzufügen. Wenn ich hier unten eine neue Variable erstelle und sie nenne, kann ich den Typ dieses Widgets ändern, das wir erstellt haben. Artikelkarte kaufen. Wenn ich nur nach einem Shop-Artikel suche und diesen hier, wähle ihn aus. Ich möchte diesen in ein Array ändern. Sie können hier klicken, oder tatsächlich hier oben. Und Sie können ein Array auswählen, oder Sie können einfach mit der rechten Maustaste auf dieses Symbol klicken und es wird in ein Array umgewandelt. Nun zu dieser Shop-Artikelkarte, was ein Array ist, wenn Sie noch nicht wissen, dass Sie die einzelnen Variablen hier haben und Sie ein Array haben, ist eine einzelne Variable, wo wir im Grunde, genau wie vor der Verwendung , eine einzelne Information in dieser Variablen speichern , damit wir sie später verwenden können. Nun, für ein Array bedeutet dies, mehrere Informationen zu speichern. Wir können alle Widgets speichern, die wir erstellen. Wir können sie hier speichern , um diese Informationen zu erhalten. Sie können sie per Drag-and-Drog abrufen, und Sie erhalten den Informationsindex, in dem sie sich befinden Wenn ich hier auf dieses Array klicke, siehst du tatsächlich, dass du auf das Plus klickst. Und ich kann ein Element auswählen und ich kann erneut auf das Plus klicken, ein anderes Element auswählen und Sie können weitermachen. Sie können sehen, dass es mehrere Informationen speichert. jedoch sehen, dass Sie für eine einzelne Sie können jedoch sehen, dass Sie für eine einzelne Information nur eine einzige Information speichern können . Für ein Array können Sie jedoch mehrere speichern. Wir werden sie einfach alle löschen. Du kannst hier sehen, wenn du alle Widgets hast, du kannst auch für jeden Loop schreiben. Jetzt können Sie mit jedem der Elemente, die Sie hier gespeichert haben, etwas anfangen. Wir werden dieses Widget hier speichern. Für jedes Element erstellen wir ein Widget. jedes dieser Widgets werde ich hier draken und sagen Hinzufügen, wir werden es dem Shop hinzufügen. Artikelkarten wie diese. Den Grund, warum wir es in das Shop It-Widget ändern mussten, geben Sie hier ein. Denken Sie daran, wenn Sie die Maus darüber halten, dies auch eine Shop-it-Objektreferenz ist. Wenn du jetzt versuchst, etwas anderes zu machen, wenn ich zum Beispiel einfach nach Spielerbasis für Spieler suche und diesen PP-Player auswähle und daraus ein Array mache, versuche ich, das hier hinzuzufügen. Es wird sagen, dass die Objektreferenz für Shop-Artikel nicht mit der Player-Objektreferenz kompatibel ist , weil sie nicht vom gleichen Variablentyp sind. Das können Sie nicht tun, sie müssen denselben Variablentyp haben. Bevor Sie sie hier hinzufügen können, lassen Sie mich diese einfach löschen. Jetzt erstellen wir für jedes dieser Elemente ein Widget und speichern es in dieser Array-Variablen. Jetzt möchte ich auch sicherstellen, dass dieses Array hier nichts enthält. Bevor ich das hier mache, bevor ich irgendwas mache, lass mich das einfach kopieren, einfügen und löschen sagen. Weil ich dieses Array löschen möchte bevor ich Elemente hinzufüge. Jetzt sind wir im Grunde damit fertig, sie zu erstellen. Das war es vorerst. Lassen Sie uns weitermachen und dem nächsten fortfahren. 69. 8.05 Die Shop-Item-Karten anzeigen: In Ordnung, jetzt sind wir bereit , die Artikelkarten anzuzeigen. Nun, bevor ich das mache, werde ich all diese löschen. Wählen Sie also diese Artikelkarten aus, die wir zuvor zur Liste hinzugefügt haben , und fahren Sie fort und löschen Sie die Kompilierung. Nun, was wir innerhalb des Player-Controllers tun können , lassen Sie uns zu Recht ein neues benutzerdefiniertes Event erstellen. Nennen wir es Display Shop It Cards. Jetzt werden wir die Karten anzeigen , die wir zuvor erstellt haben. Bevor ich das noch einmal mache, muss ich löschen, was ich in diesem Scrollfeld habe. Denken Sie daran, dass wir diese VB-Artikelliste haben. Gehen wir zurück zum Player-Controller. Nehmen wir diese WB-Hauptliste, denn diese oder diese Liste der VB-Listenelemente befindet sich innerhalb der WB-Hauptliste Ich kann von hier aus ziehen und VB-Elementliste sagen, wir Weil ich alle darin enthaltenen Elemente löschen möchte , bevor ich meine Karte hinzufüge Es werden keine zufälligen Dinge angezeigt. Wenn du die Shop-Artikelkarten später aus irgendeinem Grund für dein Spiel erstellst, stellst du außerdem sicher, dass du die alten löschst , bevor du die neuen hinzufügst. Nehmen wir nun die Ladenartikelkarten, die wir haben. Jetzt können wir sagen, dass für jeden Loop eine Verbindung besteht. Nun wollen wir jede dieser Artikelkarten zu dieser Liste hinzufügen. Ich kann das kopieren, einfügen und sagen, zwei hinzufügen. Fügen Sie dem vertikalen Feld ein Kind hinzu, wählen Sie dieses aus und fügen Sie es jetzt hier hinzu. für jede der Shop-Artikelkarten, die ich hier erhalte sie der Liste hinzu. Das ist es im Grunde, wenn ich jetzt kompiliere. Denn wenn ich hier auf Play klicke, passiert wirklich nichts. Denn denken Sie daran, dass wir diese Ereignisse nie genannt haben. Lass es uns in der Reihenfolge der Spieler beginnen oder das Spiel beginnen hier. Denn normalerweise musst du dir in deinem Spiel einfach überlegen, wann oder wo du diese aufrufen möchtest? Du möchtest sie vom Player, vom Player-Controller aus aufrufen . Jetzt werden sie in meiner Haupt-Benutzeroberfläche angezeigt, sodass ich sie tatsächlich einfach innerhalb von Begin Play ausführen kann. Wenn dies jedoch zum Beispiel in meiner Schaltfläche angezeigt würde , ich eine Taste drücken müsste um den Shop zu öffnen, würde ich es nicht in Begin Play anzeigen. Ich würde es erstellen. Wenn ich hier im Startmenü „Create“ sagen könnte, It-Karten kaufen und das Event, das wir erstellt haben, aufrufen könnte. Jetzt rufen wir dieses Ereignis hier unten auf. Das ist richtig. Nun, wenn es in einer Taste wäre, wenn ich eine Taste drücken müsste, um sie zu öffnen, würde ich diese Anzeige nicht beim Start des Spiels schreiben. Ich würde es jedes Mal schreiben, wenn ich auf die Schaltfläche klicke. Dann möchten Sie die Artikelkarten des Shops anzeigen lassen. Aber im Moment haben wir das in der Hauptsache, wir wollen es eigentlich sofort anzeigen. Ich kann es tatsächlich immer hier schreiben, wenn ich die Shop-Artikelkarten erstelle und alles hinzugefügt wird und alles abgeschlossen ist. Hier in den fertigen, ich möchte sagen Display-Artikelkarten. Es macht es also richtig. Lassen Sie uns kompilieren und klicken wir jetzt auf „Beschweren“. Und ich kann sehen, dass nichts passiert. Und das liegt daran, dass ich tatsächlich vergessen habe , hier die DT-Artikelinformationen auszuwählen. Wenn ich jetzt kompiliere, kannst du jetzt alle meine Artikel sehen. Es ist nicht mit korrekten Informationen, denn denken Sie daran wir ihm noch nicht gesagt haben, wo der Titel sein sollte, wie hoch der Preis sein sollte. Wir müssen das aktualisieren, aber Sie können sich darauf verlassen, dass Sie hier 1-234-567-8910, Artikel haben Das ist richtig, denn in der Datentabelle haben wir auch zehn Elemente haben wir Jetzt wird tatsächlich die richtige Anzahl von Artikeln in unserer Liste angezeigt. Das wollen wir. Ich kann sehen dass es einen Fehler mit dieser Scrollleiste gibt. Ich werde es tatsächlich sofort korrigieren . Wenn ich einfach auf dieses Scrollfeld klicke, den normalen Daumen, werde ich es einfach einfügen. Für den Hover, für den Dr. And Hover, kannst du den Farbton sogar leicht ändern Es hat auch einen gewissen Effekt auf den Luftwiderstand. Ich werde es leicht ändern. Okay, klicken Sie auf Jetzt abspielen. Alles sollte gut sein. Okay, jetzt wird alles korrekt angezeigt. Lass uns mit dem nächsten weitermachen. 70. 8.06 Jeder Itemkarte die richtigen Informationen geben: Jetzt müssen wir darüber nachdenken, wie wir jeder Artikelkarte die richtigen Informationen geben Wir können also den Namen ändern, wir können den Preis ändern und so weiter. Gehen wir also in das Diagramm hinein. Hier drin möchte ich eine neue Variable erstellen. Nennen wir diesen einen Artikel Info. Lassen Sie uns auch den Typ in Artikelinformationen ändern. Und wir können die Struktur auswählen, die wir erstellt haben. Okay, mach weiter und kompiliere. Und ich kann anhand der Struktur sehen dass Sie jetzt all diese Informationen haben, aber im Moment sind sie leer. Wie kommen wir also an die richtigen Artikelinformationen? All diese Informationen finden Sie hier. Wie bekommen wir das in die Artikelkarte des Ladens? So können wir den Text für den Titel, den Text für den Preis usw. korrekt festlegen. Das machen wir, wenn du zum Kartendiagramm der Artikel im Shop gehst , auf diese Artikelinformation klickst und sie auf „ Instanz editierbar“ setzt und sie beim Spawn sichtbar Du kompilierst und gehst jetzt zurück zum Player-Controller und klickst auf Datei, Alle Notizen aktualisieren Sie können hier sehen, dass Sie feststellen , dass diese Artikelinformationen erschienen sind. Und wieder liegt das daran, dass wir auf die Instanz Editierbar und Expose beim Spawn gedrückt haben auf die Instanz Editierbar und Expose beim Spawn Es wird immer angezeigt, wenn wir das Widget erstellen. Aha. Jetzt können wir das nehmen und sagen, hol dir Informationen. Und eigentlich können wir es nicht direkt machen, weil es eine Zeichenfolge ist. Tally kann sagen, Artikelinformationen abrufen. Denken Sie daran, dass dies die Funktion ist, die wir in der Funktionsbibliothek erstellt haben in der Funktionsbibliothek erstellt Jetzt können wir das hier hineinziehen und es wird deine Namenszeichenfolge oder deine Namensvariable in eine Zeichenkettenvariable umwandeln deine Namenszeichenfolge oder deine Namensvariable . Jetzt können wir diese Artikelinformationen hier einloggen. Für jedes dieser Elemente diese Elemente im Grunde für jeden Artikelnamen oder jeden Artikelnamen abgerufen. Wenn ich zu den Artikelinformationen übergehe, denke daran, dass wir einen Namen haben. Es wird diese Informationen verwenden, um sie hierher zu bringen . Im Grunde wird es also lesen, zum Beispiel mit einer leichten Feder, es wird diese Informationen für die Fackel abrufen, es wird diese Informationen abrufen und so weiter für jeden von ihnen. Es wird sie an die jeweilige Karte anschließen , die wir erstellt haben. Dann haben wir diese Informationen jetzt tatsächlich hier gespeichert. Jetzt können wir mit den nächsten Lektionen fortfahren, in denen wir die Informationen für diese Karte hinzufügen oder aktualisieren können . 71. 8.07 Die richtigen Karteninformationen anzeigen: wir nun die richtigen Artikelinformationen in dieser Variablen haben , wir weitermachen und die Informationen aktualisieren Ich werde das alles vorerst löschen. Fangen wir mit dem Event-Konstrukt an. Das Event-Konstrukt wird immer dann abgespielt , wenn Sie das Widget hier erstellen. Denken Sie daran, dass wir die Artikelkarten zum Erstellen von Shop-Artikeln erstellt haben. Immer wenn du das Widget erstellst, dieses Startspiel oder sogar wird dieses Startspiel oder sogar dieses Konstrukt sofort abgespielt Wir werden die darin enthaltenen Informationen hier aktualisieren. Wir wollen einfach mit diesem Artikelnamen beginnen und darauf klicken. Denken Sie daran, dass wir den Namen dafür bereits geändert und ihn auf eine Variable gesetzt haben. Und das haben wir für all diese getan. Klicken Sie auf das erste Objekt, den Namen des Elements, ziehen Sie es hierher, ziehen Sie es und sagen Sie den eingestellten Text Das ist im Grunde das, was wir tun wollen. Wir wollen den Text richtig einstellen. Wir wollen diese Artikelinformation jetzt nehmen , sie ziehen und Pause sagen. So können wir alle Variablen sehen. Wir können den Namen des Elements einfach hierher ziehen und er wird aktualisiert. Mach weiter und verbinde es. Und Sie können bereits sehen, dass dies funktioniert, wenn Sie auf Jetzt abspielen klicken. Und jetzt siehst du, dass für alle den richtigen Namen hast. Der Protector Night Helmet, King's Crown und so weiter. Es wird korrekt aktualisiert. Auf diese Weise wissen Sie , dass die richtigen Informationen angezeigt werden. Okay, das war der Artikelname. Die zweite Sache, die ich aktualisieren möchte, ist der Preis. Klicke auf diesen. Ziehen wir es und sagen Text festlegen. Nun zum Preis. Klicken wir auf diesen. Ich werde zeigen, wie viel die Münzen kosten. Ich werde es hier verbinden. Zerlegen Sie es. Wenn Sie jetzt auf Play klicken, können Sie sehen, dass dies auch korrekt angezeigt wird. nun die Anzahl der Artikel angeht, die wir gekauft haben Sie jedes Mal, wenn Sie klicken und kaufen und einen Artikel in einer Variablen speichern , da Sie später wissen müssen, wie viele dieser Artikel Sie gekauft haben. Was nun die Anzahl der Artikel angeht, die wir gekauft haben, denke ich, dass ich diese Informationen im Player speichern werde. Wenn ich den Player öffne und hier drin bin, erstellen wir eine neue Variable. Nennen wir diesen einen Gegenstand Pots. Jetzt ändern wir es in eine Zeichenfolge, weil wir wissen müssen, über welches Objekt wir sprechen. Jetzt werde ich es in eine Karte umwandeln. Ich muss dir erklären, was eine Karte ist. Wenn Sie das einfach hierher ziehen, können wir sehen, dass eine Map eine Verbindung zwischen zwei Variablen ist, anstatt dass es sich um eine Variable handelt. Jetzt haben wir hier zwei Variablen in einer , ich kompiliere hier unten, ich klicke auf Plus, du kannst sehen, dass es ein Feld gibt, in das ich schreiben kann. Das ist im Grunde die String-Variable hier drüben. Ich kann hier eine Zahl setzen, und das ist die Integer-Variable. Sie können sehen, dass wir eine Zeichenfolge und eine Ganzzahl haben, und im Grunde können Sie so viele haben, wie wir wollen. Ich möchte das verwenden, wir wollen den Gegenstand haben, zum Beispiel Königskrone. Und wie viele Exemplare der Königskrone haben wir bis jetzt gekauft? So werden wir diese Variable verwenden. Aber aus einer Map kann man im Grunde alles machen. Zum Beispiel können Sie es hier in eine Ganzzahl ändern. Sie können es auch in eine Transformation ändern. Zum Beispiel hier, jetzt können Sie sehen, dass Sie es so verwenden können, wo Sie eine Zahl haben, die im Grunde eine Ganzzahl ist. Dann hast du die Transformation. Wenn du hier klickst, kannst du die Transformation sehen. Im Grunde kannst du vielleicht die Anzahl der Transformationen speichern die Anzahl der Transformationen , die du in der Map hast oder was auch immer, etwas Zufälliges Aber wie Sie sehen können, ist eine Map eine Verbindung zwischen zwei Variablen Aber lassen Sie mich es vorerst einfach in eine Zeichenfolge und die zweite in eine Ganzzahl ändern weil ich im Grunde wissen möchte welchen Artikel wir sprechen über welchen Artikel wir sprechen und wie viele von diesem Artikel wir tatsächlich gekauft haben. Dafür benutzt du eine Map. Ich habe jetzt nicht für diese gekauften Artikel kompiliert. Lassen Sie mich jetzt zur Artikelkarte des Shops zurückkehren. Und ich benötige einen Verweis auf meinen Spieler, weil ich diese Variable im Event-Konstrukt verwenden muss . Lass mich einfach mein Blueprint-Interface benutzen. Holen Sie sich zuerst den Spielcharakter, fangen Sie an zu spielen. Dann können wir von hier aus Get Play unsere Referenz ziehen und sagen. Denken Sie daran, dass dies die Blueprint-Schnittstelle ist, die wir erstellt haben. Klicken Sie mit der rechten Maustaste, machen Sie daraus unsere Variable und nennen Sie sie zum Beispiel Spielerfigur Und mach weiter und verbinde es. Jetzt, wo wir die Variable haben, können wir diese Spielfigur nehmen und sie verwenden, indem wir sagen, dass sie Punkte hat, und wir können unsere Variable bekommen Was wir tun wollen, ist im Grunde genommen, wenn ich zurückgehe, das ist die Objektstelle. Wenn ich ihn einfach hineinziehe, wollen wir einfach den Text so einstellen, wie wir ihn geschrieben haben, und ihn verbinden Das ist im Grunde das, was wir tun wollen. Wir müssen wissen, wie viele von diesem Artikel wir gekauft haben und über welchen Artikel wir sprechen. Wir können hier ziehen und sagen, wenn Sie zum Beispiel nicht wissen, was Sie mit einer Karte machen können, können Sie immer nach einer Karte suchen. Und jetzt siehst du alle Funktionen, die du für eine Karte verwenden kannst. Sie können zum Beispiel suchen, finden, weil wir den Artikel hier finden wollen , wenn wir den bestimmten Gegenstand finden, zum Beispiel Königskrone. Wenn ich es von hier aus buchstabieren kann, King's Crown, dann wissen wir von hier aus, wie viele von diesem Artikel wir gekauft haben, und wir können ihn tatsächlich anzeigen. Anstatt hier zu schreiben, können wir bereits wissen welchen Artikel es sich handelt, weil wir die Artikelinformationen haben. Also können wir das hier hin und her ziehen. Und dann haben wir den Artikelnamen, mit dem wir eine Variable verbinden können . Jetzt nimmt es den Namen dieses Elements, in dem wir uns befinden , und fügt ihn ein. Und von dort aus wird es den Artikel finden und dann herausfinden, wie viele dieser Artikel Sie tatsächlich gekauft haben? Aber im Moment haben wir in den gekauften Artikeln nicht wirklich etwas aufbewahrt . Es ist also momentan leer, aber es wird später einige Informationen enthalten, wenn wir tatsächlich Artikel kaufen. Ich werde es einfach hier einstecken und es wird mir angezeigt, eine Compilation on Play. Und jetzt können Sie sehen, dass es Null anzeigt , weil wir noch keine Informationen darin haben. 72. 8.08 Die Kauf-Textfarbe ändern: Was ich jetzt tun möchte, ist dies nach der Button-Farbe zu aktualisieren, denn wenn wir keine Münzen haben, möchte ich diese oder die Textfarbe rot statt grün anzeigen diese oder die Textfarbe rot statt grün Und es wird grün, wenn wir genug Münzen haben , um diesen Artikel zu kaufen. Lassen Sie uns weitermachen und das tun. Lassen Sie mich das einfach schließen. Auch hier möchte ich mit der Benutzeroberfläche arbeiten und das innerhalb der Playersteuerung machen. Hier drin werde ich eine neue Funktion erstellen. Nennen wir das hier. Nennen wir es Updates, speichern oder aktualisieren, shoppen. Und es ist eine nach der Schaltfläche oder nach der Farbe des Textes, ungefähr so. Sehr erklärend, aktualisieren Sie die Shop-Artikelkarte nach der Textfarbe. Jetzt benötigen wir einen Verweis auf all diese Shop-Artikelkarten, die wir hier drin haben Denken Sie daran, dass wir das von uns erstellte Shop-Artikel-Array bereits enthalten haben. Ich sage für jede Schleife, und wir werden sie alle durchgehen. Für jeden von ihnen möchte ich diesen Text nehmen. Wenn ich also zurückgehe und mich daran erinnere, wie wir es genannt haben, ist es Text von Text nach und wir haben es variabel gemacht. Gehen wir zurück zum Play-Controller. Ziehen wir es und sagen wir, wir können diesen Text übernehmen. Was wir einfach machen wollen, ist wenn Sie einfach mit der Maus ziehen und Farbe sagen, wenn Sie nicht wissen , wie das heißt, können Sie sehen, dass es etwas gibt man Farbe und Deckkraft festlegt Lass uns diesen wählen. Ziehen wir es hierher. Jetzt können Sie daraus ziehen und sagen Schieferfarbe machen, weil wir sehen wollen, was wir damit machen können. Jetzt können wir hier eine bestimmte Farbe einstellen. Jetzt möchte ich die Farbe je nachdem einstellen , ob wir tatsächlich Münzen haben oder nicht. Jetzt müssen wir mit den Münzen arbeiten. Denk dran, das ist drinnen. Im Inneren des Spielers befindet sich eine so genannte Menge an Münzen, die wir zuvor verwendet haben. Wir haben auch die Artikelkosten, die auf der Artikelkarte des Shops stehen , weil wir diese Artikelinformationen haben , sodass wir die Kosten des Artikels kennen. Lassen Sie uns die im Player-Controller verwenden. Sie können es selbst versuchen, wenn Sie üben möchten, oder lassen Sie es uns zusammen machen. Nun zu diesem Artikel werde ich Artikelinformationen sagen. Also hole ich mir diese Variable und ich werde sie kaputt machen. Damit ich die Kosten des Artikels sehen kann, werde ich das hier wegziehen. Jetzt kann ich die Artikelkosten hier sehen. Ich werde einfach nicht verbundene Pins ausblenden und nur die Artikelkosten anzeigen Jetzt will ich auch die Anzahl der Münzen der Spieler haben. Ich benötige eine Variable für den Spieler. Ich sehe, dass ich das nicht habe. Wenn ich einfach zurück zum Player-Controller gehe und ich wieder, können wir eigentlich einfach zurück zum Shop-Artikel gehen. Wir können all das, was wir gerade in der vorherigen Lektion erstellt haben, einfach kopieren und einfügen . Und ich werde einfach zu Recht eine Variable für das Spiel erstellen, und das geht viel schneller wir jetzt zurück. Jetzt haben wir das Spiel, lassen Sie es uns hineinziehen. Sagen wir, Anzahl der Münzen. Ermitteln Sie die Anzahl der Münzen. Was wir jetzt fragen werden ist, kostet die Münze? Ist sie größer? Ist es größer als die Menge an Münzen, die wir haben? Dann kannst du von hier aus ziehen und sagen: Wähle, wähle Farbe. Nun der Unterschied zwischen einer ausgewählten und einer ausgewählten Farbe. Wenn Sie sie nun einfach herausziehen, damit wir sie sehen können, wählen Sie „Farbe ist hier“ und „Auswahl ist hier“. Der Unterschied ist nicht wirklich zu groß. Der Unterschied ist, wenn Sie die Farbe auswählen, können Sie sehen, dass sie automatisch auswählt , dass es sich um ein Edelmetall handelt, das Sie einstecken müssen Für die Auswahl können Sie wählen, was Sie wollen. Sie können eine Aufzählung eingeben, wie wir es zuvor getan haben, aber Sie können auch diese eingeben und sie wird als wahr oder falsch ausgeben Und dann kannst du damit machen, was du willst. Im Grunde können Sie beide verwenden. Ich werde vorerst nur Select Color verwenden. Wählen Sie eine Farbe aus. Mach weiter und schließ das an. Es wird sagen, ob der Münzpreis für diesen Gegenstand höher ist als die Anzahl der Münzen, die Sie haben? Wenn ja, heißt es wählen Sie A. Wenn diese Goldvariable wahr ist, wird sie wählen a, das heißt Münzen Wenn die Anzahl der Münzen, die dieser Artikel gekostet hat, wenn Sie nicht genug haben, um ihn zu kaufen, wird er tatsächlich A auswählen. Wir brauchen eine rote Farbe für das A und wir brauchen eine grüne Farbe für das Rindfleisch, weil Sie es dort kaufen können Was die grüne Farbe angeht, werde ich sie einfach per Knopfdruck vom Designer kopieren , weil ich sie schon gemacht habe. Ich werde die lineare Hex-Farbe kopieren. Ich gehe zurück zum Play-Controller. Fügen Sie es für das ein, Fügen Sie es hier ein, klicken Sie für dieses. Ich wähle hier zuerst eine rote Farbe aus, damit ich sehen kann, wie sie aussieht. Etwas wie das hier. Und ich kann die lineare Farbe kopieren. Klicken Sie einfach auf Abbrechen, weil ich es hier nicht ändern möchte. Zurück zur, der roten Farbe. Und jetzt haben wir es. Es wird sagen, ob die Artikel mehr kosten als das, was Sie in Münzen haben? Wenn das stimmt, wähle eine, wähle die rote Farbe Wenn du genug Münzen hast, wird es die grüne Farbe wählen. Es wird es hier einstecken und es wird die Textfarbe einstellen und kompilieren. Jetzt müssen wir diese Funktion aufrufen, weil wir das noch nicht getan haben, und wir wollen sie aufrufen, wann immer ich auf Play klicke. Ich möchte schon, dass das alles aktualisiert wird. Der beste Weg, das zu tun, ist, dass wir die Artikelkarten hier erstellt haben . Wir erstellen sie alle. Bevor wir sie anzeigen, möchte ich die Farben aktualisieren. Ich werde sie hier so hinzufügen. Kompilieren aktualisieren. Wenn du auf Play klickst, kannst du jetzt sehen, dass sie alle rot sind, weil ich nicht genug Münzen habe. Wenn ich hier jedoch die Anzahl der Münzen für den Spieler ändere, sagen wir, ich habe jetzt 60 Münzen und klicke auf Compile Play. Jetzt kann ich sehen, dass ich für die 60 Münzen tatsächlich genug Münzen für alle habe , also werden sie grün sein. Ich kann sehen, dass dieser Text nicht richtig angezeigt wird. Das liegt daran, dass wir einen Feind töten müssen , bevor er tatsächlich auftaucht. Lass uns das tatsächlich reparieren. Vielleicht willst du eine anfängliche Menge an Münzen. Der Grund dafür ist, dass wir diesen Code nur ausführen , wenn wir den Feind tatsächlich töten. Wenn ich die feindliche Basis öffne, haben wir diese Menge an Münzen. Wenn ich das einfach kopiere, kannst du es tatsächlich kopieren, wenn du das Spiel öffnest. Und das kommt vom Spieler. Wenn du den Player öffnest und nicht hier in der Spielerbasis, kannst du sehen, dass wir die Anzahl der Münzen aktualisiert haben. Wir müssen nur diesen ausführen und die Benutzeroberfläche aktualisieren, da die Anzahl der Münzen korrekt ist. Und du kannst das auch sehen, wenn du die Anzahl der Münzen nimmst und eine Zeichenfolge ausdruckst und du einfach auf den Bildschirm druckst und dann auf Play klickst. Sie können sehen, dass hier 60 steht. Wenn du es gesehen hast. Links oben steht 60. Es wird tatsächlich richtig angezeigt, oder die Zahl ist korrekt, aber sie wird nicht richtig angezeigt. Lassen Sie uns diese Benutzeroberfläche kopieren. Wir müssen nur die Benutzeroberfläche aktualisieren und die Anzahl der so verbundenen Münzen einziehen. Wenn wir jetzt auf Play klicken, wird auch die Anzahl der Münzen aktualisiert. Wenn ich auf Play klicke, wird es korrekt angezeigt. Jetzt ist alles korrekt und wir haben es korrekt angezeigt , wenn wir den Feind töten. Es wird auch die richtige Menge an Münzen hinzugefügt , wenn wir mehr und mehr Münzen bekommen. Wir können jetzt sehen, dass das nicht richtig angezeigt wird, weil wir es aktualisieren müssen , wenn wir den Feind töten. Lassen Sie uns das auch beheben. Wenn ich es schließe, gehe ich zu den Feinden und öffne die feindliche Basis. Und wir müssen es hier hinzufügen, wann immer der Feind stirbt. Und wir aktualisieren die Anzahl der Münzen. Lass es uns machen. Nachdem wir die Anzahl der Münzen aktualisiert haben, benutzen wir den Play-Controller. Und wir haben den Play-Controller schon hier unten. Ziehen Sie es hinein und sagen Sie „ Shop-Artikelkarte anhand der Textfarbe aktualisieren“. Fahren Sie fort und verbinden Sie es hier. Und jetzt sollte es funktionieren. Und wenn du auf „ Abspielen“ klickst und ich töte, kannst du jetzt sehen, ob ich 76 oder höher dann wird es tatsächlich grün. Wenn ich diesen Feind töte, können wir jetzt sehen, dass er grün wird. Wenn ich einfach weiter töte, kannst du sehen, dass es jetzt grün wird , denn jetzt habe ich genug Münzen, das funktioniert richtig und jetzt können wir weitermachen. 73. 8.09 Prüfen, ob der Spieler genug Münzen hat: Bevor der Spieler nun die By-Taste drücken kann, müssen wir auch überprüfen, ob der Spieler genug Münzen hat. Andernfalls kann er tatsächlich die By-Taste drücken und Gegenstände kaufen , ohne dass er genug Münzen Lassen Sie uns versuchen, mit diesem zu arbeiten. Wenn ich den Player-Controller öffne, noch einmal für den Player-Controller, lassen Sie uns hier auch etwas in der Update-Farbe tun . Was wir hier drinnen machen können, können wir ziehen. Jetzt nehmen wir den Knopf. Ich gehe zur Benutzeroberfläche und öffne den Shop-Artikel und klicke auf diesen Button. Und ich werde es einfach Button nennen und es zu einer Variablenkompilierung machen. Wenn ich jetzt zum Play-Controller zurückkehre, ziehe ich von hier und sage Taste. Und ich nehme diese Taste, was du machen kannst, ist, sie hierher zu ziehen und „Aktivieren“ zu sagen. Jetzt können Sie sehen, dass etwas namens Set aktiviert ist. Gehen Sie weiter und wählen Sie es aus, hier verbunden. Jetzt können Sie wählen, wann eine Schaltfläche aktiviert werden soll oder nicht. heißt, ob der Spieler ihn drücken kann oder nicht, wenn dieser rot ist, was bedeutet, dass dieser Punkt wahr ist. Das bedeutet, dass der Spieler diesen Gegenstand nicht kaufen kann, es bedeutet, dass er nicht genug Münzen hat. Wir können das tatsächlich ziehen und hier einstecken. Eigentlich können wir das nicht, denn das wird wahr sein und das wird wahr sein, was bedeutet, dass es aktiviert ist und wir eigentlich das Gegenteil wollen. Ich werde wieder ziehen und „Auswählen“ sagen, um es umzukehren. Fahren Sie fort und wählen Sie diesen Auswahlknoten aus und schließen Sie ihn hier Jetzt könnte es etwas verwirrend sein, wir haben nicht genug Münzen, wenn die Kosten des Artikels höher sind als die Anzahl der Münzen, die wir haben. Das bedeutet, dass dies wahr sein wird, wann immer es wahr ist. Ich möchte das deaktivieren weil wir nicht kaufen wollen, wenn wir nicht genug Münzen haben. Wenn dies jedoch falsch ist, was bedeutet, dass wir hier genug Münzen haben, möchte ich es aktivieren. Ich möchte das nehmen und sagen, dass die Schaltfläche aktiviert ist. Du kannst weitermachen und kaufen. So machen wir es rückgängig, also kompilieren Sie es und klicken Sie auf Abspielen. Jetzt können wir sehen, dass die Schaltfläche deaktiviert ist. Sie können sehen, dass es etwas verblasst ist. Lassen Sie uns jetzt auch überprüfen, ob der Spieler genug Münzen hat Lass es uns schließen. Lass uns die Artikelkarte öffnen. Lass uns darauf klicken, hier unten. Klicken wir auf das Ungeklickte. Wenn wir nun auf diese Schaltfläche klicken oder den Artikel kaufen, wollen wir überprüfen, ob der Spieler genug Münzen hat Lass uns das innerhalb des Spielers machen, weil wir die Anzahl der Münzen und die Berechnung der Münzen bereits innerhalb des Spielers durchgeführt der Münzen und die Berechnung der Münzen haben. Lassen Sie mich einfach eine einfache Funktion erstellen, nennen wir diese. Hat der Spieler genug Münzen? Die einfache Sache, die wir hier machen wollen ist, dass wir überprüfen wollen, ob der Spieler genug Münzen hat. diese Anzahl an Münzen herziehen, lassen Sie mich auch hier für die Eingabe eine ganze Zahl hinzufügen und das nenne ich Artikelkosten, wenn die Anzahl der Münzen, die der Spieler hat, größer oder gleich ist Wir müssen gleich sein, weil es den Artikelkosten entsprechen kann, was bedeutet, dass du genug Münzen hast Ist es höher oder gleich den Artikelkosten? Dann können wir hier einfach einen Retourenschein machen . Wenn ich einfach return the return node schreibe und das hier einfüge, wird eine Variable für uns erstellt. Dieser hat im Grunde genug Punkte, wenn er das überprüft, wir werden den Artikel posten und auf diese Funktion klicken. Ich werde es reinstellen. Denn denken Sie daran, wann immer Sie eine Funktion haben , die nur Informationen abruft nichts festlegt, dann können Sie sie auf pure setzen. Dann sieht es hier wie diese grüne Funktion aus, weil sie nur Informationen abruft. Jetzt können wir diesen Spieler nehmen und sagen, er hat genug, oder wir nennen es , hat der Spieler genug Münzen? Also kann er ihn ziehen und sagen, dass er genug Münzen hat. Und du kannst sehen, dass es eine grüne Funktion , weil wir sie auf Pure gesetzt haben. Jetzt können wir die Kosten dazurechnen und dann können wir rausgehen und schauen, ob wir tatsächlich genug Münzen haben oder nicht. Lassen Sie uns das tun. Lassen Sie uns die Artikelinformationen nehmen, wir können sie knacken. Wir können den Artikelpreis nehmen und ihn hier eintragen. Verstecken Sie die nicht verbundenen Pins. Jetzt können wir von hier aus einen Zweig ziehen und diesen Zweig verbinden Jetzt machen wir das tatsächlich, wir überprüfen jetzt, ob der Spieler genug Münzen hat , bevor der Spieler den Gegenstand kaufen kann. 74. 8.10 Den Artikel kaufen: Nachdem wir überprüft haben, ob der Spieler genug Münzen hat, gehen wir rüber und kaufen den Artikel jetzt einfach Nun zum Kauf der Artikel. Ich glaube, ich möchte das im Player tun. Immer wenn du hier kaufst und genug Münzen hast, kaufst du die Artikel. Lass uns ein neues Event im Player erstellen. Lassen Sie uns ein neues benutzerdefiniertes Ereignis namens „Artikel kaufen“ wie folgt erstellen. Für diesen Kaufartikel benötigen wir den Artikel natürlich zuerst. Wenn du es jetzt nicht machen willst, lass uns einfach zurückgehen und hier rein gehen, lass uns den Spieler nehmen, wir haben bereits die Player-Variable. Lasst uns von hier aus zuschlagen und sagen „ Gegenstand kaufen“ und das Event nennen, das wir gerade gemacht haben. Wenn es stimmt, dass wir genug Münzen haben, kaufen wir den Artikel. Natürlich müssen wir wissen, über welchen Artikel wir sprechen , da wir hier einige Informationen benötigen. Ich werde einfach eine Eingabe erstellen und sie nennen wir sie, oder nennen wir sie Artikelinformationsstruktur. Wir haben diesen Artikel, ich nenne ihn einfach Item Compile. Jetzt können wir zur Artikelkarte im Shop zurückkehren. dem Artikel handelt es sich offensichtlich um den Artikel, in dem wir uns gerade befinden, und wir haben bereits die Struktur. Ich nehme es einfach und stecke es hier ein. Diese Artikelinformationen werden an den Spieler weitergegeben. Von hier aus können wir jetzt Dinge damit machen. Was wir tun wollen, ist natürlich, dass wir die Anzahl der Münzen abziehen müssen die Anzahl der Münzen abziehen die der Spieler hat. Lassen Sie uns versuchen, das zu tun Jetzt kannst du es zum Üben selbst machen, weil ich denke, dass du es selbst machen kannst. Wenn du dich nicht erinnern kannst, wie das geht, lass es uns zusammen machen. Sie können also die Menge an Münzen nehmen, die Sie gerade haben , und dann Minus sagen, um sie zu subtrahieren Dann haben wir hier die Kosten für den Artikel, wenn du von hier ziehst und sagst Artikelinfo kaputt machen Jetzt haben wir die Artikelkosten. Wir können die Anzahl der Punkte, die Sie haben, abzüglich der Kosten dafür angeben. Wir können diese Menge an Münzen nehmen und sie wieder auf diesen neuen Preis oder diese neue Menge an Münzen, die wir haben, festlegen . Wir werden einfach hier klicken. Verstecken Sie nicht verbundene Pins. Machen Sie einfach weiter und strukturieren Sie es so. Sie können auch eine Zeichenfolge drucken. Lassen Sie uns eigentlich keine Zeichenfolge drucken. Wir können die Benutzeroberfläche einfach sofort aktualisieren. Lass es uns hier oben einfach so machen. Ich werde das einfach kopieren. Münzen aktualisieren, Betrag I. Ich werde es so einloggen. Lassen Sie uns kompilieren. Mal sehen, was passiert, wenn ich auf Play klicke. Ich habe 60. Wenn ich etwas für 23 kaufe, habe ich noch 37 übrig. Ich kaufe wieder für 34, ich habe noch drei übrig. Und wenn ich hier klicke, siehst du, dass ich nicht weiter kaufen kann. Denn denken Sie daran, wir haben hier bereits überprüft, ob der Spieler genug Münzen hat oder nicht. Wir können den Artikel nicht kaufen , wenn wir nicht genug Münzen haben. Das funktioniert wirklich gut. Das Problem ist momentan, wenn ich kaufe, kann man sehen, dass die Knöpfe nicht gelesen werden. Es sieht so aus, als ob ich immer noch genug Münzen für diesen habe , was ich nicht habe. Lassen Sie uns auch die Schaltflächen aktualisieren. Wenn ich zum Player-Controller gehe. Lass uns den Player-Controller öffnen. Und denken Sie daran, dass wir hier diese Funktion namens „Shop-Artikel anhand der Textfarbe aktualisieren“ eingerichtet haben . Nennen wir das hier. Gehen wir zurück zum Spieler. Lass uns den Controller nehmen, der hier eingefügt wurde. Lassen Sie uns den Job „Updates“ anhand der Textfarbe „Karte“ nennen. Lassen Sie es uns hier einstecken. Es sollte es bei jedem Kauf aktualisieren. Wenn ich jetzt auf Play klicke und etwas kaufe, siehst du, dass es rot wird. Und ich kann sie nicht wirklich kaufen. Und sie sind behindert. Wenn ich diesen kaufe, werden sie alle rot, weil ich jetzt, wo die Logik wirklich gut funktioniert, nicht genug Punkte habe . 75. 8.11 Aktualisieren der Menge an gekauften Artikeln: Jetzt ist es an der Zeit zu aktualisieren, wie viele Artikel wir gekauft haben. Denn denken Sie daran, dass wir diesen Artikel mit dem Titel Artikel gekauft haben, gemacht haben. Und wir müssen speichern, wie viele Gegenstände du während des Spiels gekauft hast. Auch hier, wenn wir auf Spielen und etwas kaufen klicken, wird dir nicht wirklich angezeigt, dass du etwas gekauft hast , weil es hier immer noch Null ist. Dazu müssen wir diese Informationen aktualisieren. Ich kann mich nicht erinnern, wo wir diesen benutzt haben. Wenn du versuchen willst, dich daran zu erinnern, wo du etwas benutzt hast, kannst du jederzeit schreiben, klicken und Referenzen finden. Und wir können sehen, dass dort keine Ergebnisse gefunden wurden. Und das liegt daran, dass es nur innerhalb dieses Bauplans sucht Wenn Sie jedoch auf dieses kleine Symbol klicken , werden alle Blueprints durchsucht Doppelklicken Sie auf diesen. Sie können sehen, dass wir es hier in der Artikelkarte des Shops verwendet haben in der Artikelkarte des Shops , um den Text hier zu aktualisieren, wie viele Artikel wir gekauft haben. Wir haben es hier verwendet, um zu aktualisieren, wie viele Artikel wir gekauft haben. Gehen wir einfach zurück zum Player und hierher wann immer wir den Button kaufen und aktualisieren. Bevor ich den Button aktualisiere, werde ich eigentlich die Map bearbeiten . Nehmen Sie diese Karte hierher, ziehen Sie sie heraus und sagen Sie Hinzufügen. Jetzt wollen wir der Karte noch einen Artikel hinzufügen, denn jetzt haben wir einen Artikel gekauft. Was Sie tun können, ist, es erneut zu nehmen und einzufügen, weil Sie im Moment keine Informationen hinzufügen können. Was Sie tun müssen, ist, dass wir diese Funktion finden und haben. Was Sie versuchen, ist, den Gegenstand zu finden, der sich bereits darin befindet. Wenn Sie hier einfach eine Zahl schreiben, wenn Sie zum Beispiel eine Zahl schreiben, überschreibt das die Informationen, die Sie hier bereits haben Nehmen wir an, es war die goldene Krone , die hier drin war. Wenn du nur eins schreibst, bleibt es für immer eins, denn jedes Mal, wenn der Spieler es kauft, wird es eins sein. Es wird diesen Artikel hier überschreiben. Wir müssen es ständig mit höheren Informationen aktualisieren. Jetzt müssen wir das Objekt zuerst innerhalb des Arrays oder innerhalb der Map finden, um das Objekt zu finden. Denken Sie daran, wir haben den Namen bereits. Wenn ich es jetzt hier aufnehme, kann ich diesen Artikelnamen verwenden und wir können diesen Gegenstand in dieser Karte finden. Sobald wir den Gegenstand gefunden haben, wissen wir jetzt, wie viele von diesem Gegenstand wir bisher haben. Dieser Betrag hier, was ich tun möchte , ist, diese Zahl plus eins plus eins zu nehmen . Jetzt fügen wir den Artikeln, die wir bereits gekauft haben, einen hinzu. Dann kannst du es hier einstecken. Denken Sie auch daran, dass Sie hier auch den Namen eingeben müssen. Lass es uns einfach von hier wegziehen. Stecken Sie es ein und machen Sie sich wieder ein paar gespiegelte Notizen Es sieht nett aus. Und ich werde einfach diesen hier drüben so einstecken und diesen hier unten. Okay? Im Grunde suchen wir zuerst den Gegenstand in dieser Map und dann wissen wir, wie viele wir schon gekauft haben, und wir fügen einen hinzu und dann fügen wir ihn einfach wieder in die Map ein. Wir verlieren diese Information nicht. Du klickst auf Abspielen und drückst weiter auf etwas und siehst, dass immer noch Null angezeigt wird. Das liegt daran, dass wir die Benutzeroberfläche nicht aktualisiert haben. Die Benutzeroberfläche befindet sich im Shop-Artikel Cod, und es ist dieser Text hier , den Sie erneut aktualisieren müssen, da dieser Teil hier nur aktualisiert wird wenn wir den Code erstellen, und er wird nicht mehr aktualisiert. Wir können hier unten ein benutzerdefiniertes Ereignis erstellen und ich werde ein benutzerdefiniertes Ereignis erstellen Benutzeroberfläche für gekaufte Artikel aktualisieren. Was wir hier tun können, im Grunde wollen wir den Text, diesen Text hier setzen. Ich werde einfach C V hier unten kontrollieren. Lass es uns einstecken. Im Grunde wollen wir einfach das Gleiche tun , was wir hier gemacht haben. Lass uns einfach x drücken, um es auszuschneiden und V , um es hier einzufügen. Ich werde es einfach hier verbinden. Anstatt diesen Code hier oben zu haben, können wir im Grunde einfach diesen löschen und diesen hinzufügen. Aktualisiere Gegenstände, ich füge sie stattdessen einfach hier hinzu, aktualisiere Gegenstände I. Der Grund, warum wir es hier im Start-, Spiel- oder Event-Konstrukt aufschreiben , ist wir sicherstellen, dass wir die richtigen Informationen haben . Immer wenn wir das Spiel öffnen und uns das ansehen, ist das der Grund, warum wir es dort hinzufügen. zum Beispiel an, Nehmen wir zum Beispiel an, dass du in Zukunft ein Lade- und Speichersystem hast und das Spiel jedes Mal schließt , wenn du es öffnest, wird es erneut ausgeführt und deine Informationen werden mit dem aktualisiert , was du gespeichert hast. Es ist sehr wichtig, das zu haben. Okay, wir haben diese Update-Elemente, aber UI, wir müssen es vom Player aus starten, wenn du zurückgehst, und wir müssen es ausführen, nachdem wir das Objekt zu dieser Map hinzugefügt haben. Was wir jetzt brauchen, ist ein Verweis auf diese Widgets für die Shop-Artikelkarte denn jetzt müssen wir dieses verwenden. Artikel aktualisieren, UI einfügen. Aber wie Sie sehen können, haben wir keinen wirklichen Hinweis darauf. Wir haben diese Karte, die als Shop-Artikelkarten bezeichnet wird, und wir können sie im Grunde verwenden, um einen Artikel zu finden. Aber auch hier haben wir diese Informationen nicht wirklich . Wir brauchen eine Möglichkeit, diese Karte zu referenzieren. Jetzt können Sie das auf zwei Arten tun. Sie können entweder hier im Player-Controller einfach benutzerdefinierte Ereignisse erstellen , die zum Beispiel Sets, zum Beispiel Sets, interagierte Shop-Artikelkarten oder wie auch immer Sie es nennen möchten Im Grunde genommen fügen Sie einfach den Artikel aus dem Shop hinzu, Cod. Nochmal, im Grunde kannst du es einfach von hier aus aufrufen, den Player-Controller benutzen Wir brauchen hier oben einen Verweis darauf. Grundsätzlich können Sie es über den Player-Controller einstellen. Und vom Spieler aus können wir diese Variable hier verwenden, um diese Karte tatsächlich zu aktualisieren anstatt es auf diese Weise zu tun. Im Moment möchte ich die andere Methode ausprobieren. Die andere Methode besteht im Grunde darin, dass Sie einfach zum Oder zum Spieler hier zurückkehren können , um den Kaufartikel zu erhalten. Fügen wir einfach eine neue Variable hinzu. Nennen wir es Shop It Cod. Wir können diesen Weg immer ändern, wenn wir in Zukunft herausfinden , dass wir daraus etwas Besseres machen könnten. Aber lassen Sie uns vorerst nach dem Artikel Cod suchen. Wählen Sie ihn aus und kompilieren Sie den Artikel wieder im Shop. Schauen wir uns das hier im Kaufartikel an. Immer wenn wir etwas kaufen, möchte ich den Bezug auf mich selbst setzen und selbst sagen. Im Grunde definieren wir dieses Ladenkabel als die Karte, in der wir uns gerade befinden. Das ist es, was Selbst bedeutet. Diese Informationen haben wir immer, wenn wir einen Artikel kaufen, wann immer wir den Artikel zu den Artikeln hinzufügen , aber wir können jetzt die Aktualisierungsartikel aufrufen , aber ich ziehe von hier und sage Artikel aktualisieren. Aber ich mache weiter und verbinde mich, es ist wieder so. Sie können doppelklicken, um einen hinteren Routenknoten zu erstellen. Wann immer das erledigt ist, sollte es jetzt die Benutzeroberfläche aktualisieren. Und dann mach weiter und füge diesen Update-Shop-Artikel Code nach Textfarbe wieder ein, speichere alles. Und jetzt lass uns spielen und sehen, was passiert, wenn ich eine der Fackeln kaufe Siehst du, ich habe einen. Wenn ich noch einmal eins kaufe, habe ich zwei. Jetzt wird korrekt berechnet. Wenn ich mir jetzt viel mehr Geld gebe, also wenn ich zurück zum Spieler gehe und hier die Anzahl der Münzen drin sehe, setze ich es einfach auf etwa 1.000 oder 10.000 100.000 oder was auch immer. Hier ist es. Jetzt können Sie sehen, ob ich einfach weiter kaufe, nur sehen möchte, ob es funktioniert und ob es richtig funktioniert. Du kannst weiter kaufen. Und Sie können sehen, dass die Benutzeroberfläche gleich bleibt. Die Benutzeroberfläche ändert nicht die Textposition und so weiter. Alles funktioniert gut und auch das Geld korrekt berechnet. Also jetzt funktioniert das voll und ganz. 76. 8.12 Artikel-Spawn-Punkte erstellen: Lass uns jetzt weitermachen und die Spawnpunkte der Gegenstände hinzufügen. Was ich tun möchte, ist, dass jedes Mal, wenn ich etwas kaufe , diese Gegenstände in der Welt erscheinen Und das ist im Grunde die gleiche Idee wie Kekslikör. Es ist dieselbe Idee, bei der man etwas kauft und es erscheint hier auf dem Bildschirm, ich finde es etwas interessanter. wir weiter und machen das, oder machen wir ein paar Farbpunkte hier drinnen Denken Sie daran, dass wir bereits einen Punkt für den Feind gemacht haben, der hier drüben ist. Lassen Sie uns einfach dieselbe Methode verwenden. Wir haben also den Feind und wir haben die Spawn-Punkt-Basis. Das ist die übergeordnete Klasse, also klicke ich einfach mit der rechten Maustaste und erstelle eine untergeordnete Looprint-Klasse Wir können das BP it, Spawn Point, nennen. Das ist jetzt der Punkt. Welchen Gegenstand werden wir spawnen? Wir können es im Grunde in der Welt platzieren und wir können einfach Y20 setzen, es ist vorne und ich werde es einfach auf eins setzen, sodass es vor den Kacheln ist. Wir können hier etwas einstellen, alles speichern Und ich werde einfach die Alt-Taste gedrückt halten und ziehen, um es zu kopieren. Jetzt kannst du sehen, dass wir zwei Spawnpunkte haben, aber wie können wir entscheiden, ob aber wie können wir entscheiden, ob hier die Haltekrone erscheinen soll oder ob es andere Gegenstände sind, die hier spawnen sollen? Das können wir tun, indem wir ihnen eine Variable zur Verfügung stellen. Was wir tun können, ist , zur Spawn-Punkt-Basis hier drinnen zurückzukehren Spawn-Punkt-Basis hier drinnen Was wir tun können, ist, eine neue Variable zu erstellen. Wir können es Namen nennen oder wir können es auch einfach als Namen des Spawnpunkts bezeichnen Ich denke, das ist in Bezug auf diesen Punkt etwas aussagekräftiger diesen Punkt etwas aussagekräftiger Wir können es in eine Zeichenfolge ändern, speichern. Denken Sie daran, wenn Sie auf Instance Editable und Expose on Spawn klicken Instance Editable und Expose on Spawn Wir haben dies bereits verwendet, als wir die Informationen zu den Artikelkarten hinzugefügt haben die Informationen zu den Artikelkarten hinzugefügt Wenn du das machst und kompilierst, kannst du dir das Innere der Welt ansehen, du hast diesen Pin hier drüben, den Namen des Spawnpunkts Das ist dieselbe Variable wie diese, weil du sie für die Instanz editierbar gemacht hast und sie beim Spawn verfügbar wie diese, weil du sie für die Instanz editierbar gemacht hast und sie beim Spawn verfügbar gemacht hast. Sie erscheint hier oben. Was wir mit diesem machen können, ist , dass wir auf den ersten klicken , wir können ihn aufrufen, mal sehen, welche Artikel wir haben. Wir haben das P. Ich werde nur die Lichtfeder benutzen. Das erste sollte das Licht sein. Schreiben Sie den Namen genau. Denken Sie daran, dass dieser Name mit dem in der Datentabelle identisch sein muss . Welchen Namen Sie auch immer hier haben, es muss derselbe sein wie hier draußen. Der zweite ist die Fackel. Jetzt haben wir beide Spawnpunkte. Jetzt wissen wir, welche Gegenstände wo spawnen sollen. Jetzt fehlt uns nur noch die Logik, und das werden wir in den nächsten Lektionen tun Aber jetzt haben wir zumindest die Spawnpunkte, mit denen wir arbeiten können. Lassen Sie uns zur nächsten Lektion übergehen. 77. 8.13 Den gekauften Gegenstand ablasten: In Ordnung, jetzt lasst uns weitermachen und den Gegenstand spawnen. Versuchen wir, von hier aus rückwärts zu arbeiten. Wenn ich Gegenstände spawne, würde ich gerne rückwärts arbeiten, weil es sinnvoller ist, zu wann oder wo wir unsere Events und Funktionen für das Spawnen hinzufügen müssen unsere Events und Funktionen für Denkt daran, dass ich den Player-Controller verwende Dinge in die Welt zu spawnen Wenn ich also hier reingehe, haben wir diesen Spawn-Schauspieler hier schon gemacht Spawn-Schauspieler. Bleiben wir einfach konsequent und machen es hier drinnen Ich werde einfach direkt ein neues benutzerdefiniertes Ereignis erstellen. Nennen wir diesen einen Spawn-Item. Okay, auch hier müssen wir einen Spawn-Akteur aus der Klasse verwenden, müssen wir einen Spawn-Akteur aus der Klasse verwenden der für den Gegenstand ausgewählt wurde, den wir spawnen möchten Es kommt wirklich darauf an, welches es ist. Nun, hier wird ein Fehler angezeigt. Ich muss das deaktivieren. Je nachdem, welchen Gegenstand wir kaufen, ist dies der Gegenstand, den wir spawnen möchten Wir können nicht wirklich einen statischen Wert festlegen, wir müssen ihn nur hierher ziehen. Ziehen Sie das wieder rein, ich nenne das einen Gegenstand. Was die Position des Elements angeht, brauche ich nicht wirklich eine Transformation. Also was ich tun werde, ist machen zu sagen. Wann immer Sie „Make Transform“ sagen, liegt das im Grunde daran, dass ich die Positions-, Rotations- und Skalierungswerte sehen möchte . Aus diesem Grund verwenden wir make. Sie können diesen Ort jetzt in das Event ziehen. Es erstellt also eine Pin-Notiz dafür. Und ich nenne es einfach Spawn-Standort weil mich die Rotation und der Maßstab nicht wirklich interessieren , es wird gleich bleiben Mich interessiert nur der Ort, an dem ich den Gegenstand spawnen möchte Nun zu diesem Spawn-Item, wo ist es am sinnvollsten zu spielen oder dieses Event auszurufen Der Ort wäre, wenn wir einen Gegenstand kaufen, wir den Preis im Spieler selbst berechnen Immer wenn wir den Artikel kaufen, fügen wir ihn hier der Variablen oder der Map hinzu und wir aktualisieren die Schaltflächen. Danach kann ich es in der Welt spawnen. Im Grunde genommen ist das Spawnen im Player-Controller, also brauche ich den Player-Controller wieder Oder Sie können von hier aus ziehen, wenn Sie möchten. Und du kannst sagen, Gegenstand spawnen, bereitstellen und selektiv auswählen. Jetzt musst du angeben, von welchem Gegenstand du sprichst. Jetzt haben wir schon diesen Kurs von hier. Ich werde diesen einfach noch einmal kaputt machen. Nehmen Sie an dem Kurs teil, stecken Sie ihn hier ein und verstecken Sie nicht verbundene Pins Ich werde es hier einfach näher betrachten, doppelklicken, um einen Knoten zu erstellen Was den Spawn-Standort angeht, müssen wir hier genauer sein Weil wir den Ort oder die Position dieses Schauspielers hier gesehen haben müssen , Spawnpunkt der Gegenstände Du kannst jederzeit in den Spielmodus zurückkehren und dir ansehen, wie wir es zuvor gemacht haben Wenn wir zum Startspiel zurückkehren, verwenden wir diesen. Werde ein erstklassiger Schauspieler. Und denken Sie an diese Funktion Klassenschauspieler wird alles abgerufen, was bereits in der Welt erschienen ist , wenn Sie auf Abspielen klicken Denn wenn du sagst, hol dir einen erstklassigen Schauspieler und du hast das jetzt innerhalb des Levels, wird dir das eine Ära geben Denken Sie daran, dass mit dieser Funktion nur der Schauspieler angezeigt wird, der bereits in der Welt geboren Die haben wir bereits hervorgebracht. Wir können es also tatsächlich gebrauchen, um Schauspieler der Extraklasse zu werden. Lass es uns einfach hier drinnen machen , denn das ist eigentlich nicht die Methode, die wir verwenden müssen, um den Akteur der Klasse zu ermitteln. Wir können diese Methode nehmen, wir sagen Spawnpunkt und wir können den Spawnpunkt des Elements auswählen , den wir von hier ziehen können , und sagen, Standort des Schauspielers ermitteln Wir bekommen jetzt den Standort des Schauspielers, das ist dieser Ort hier Und wir können es anschließen. Jetzt wollen wir einfach sehen, was passiert. Wir können einfach auf Play klicken und ich versuche im Grunde, etwas zu kaufen. Nichts spawnt und es ist tatsächlich das Richtige. Ich frage mich nur, warum es nicht laicht. Mal sehen, ob wir die Artikel tatsächlich hinzugefügt haben. Das könnte momentan das Problem sein. Wenn wir es öffnen und zum Viewport gehen, kann ich sehen, dass wir keine Artikel haben Ich werde das jetzt tatsächlich tun. Für alle Artikel, die wir zuvor erstellt haben. Zum Beispiel die Krone des Bösen, wir müssen das Quell-Sprite auswählen Gehen Sie fort und wählen Sie es hier aus, damit es hier erscheint, kompilieren Gehen Sie zum nächsten , Grand Wizard, Hats, klicken Sie auf die hier ausgewählten Renderkomponenten und kompilieren Sie als Nächstes. Dies ist die Artikelbasis, also müssen wir hier nicht wirklich etwas hinzufügen. Ich gehe zur King's Crown. Und wir können es tatsächlich von hier aus tun, anstatt hier oben zu klicken. Die nächste ist die King's Crown. In Ordnung, das war der letzte. Jetzt habe ich sie alle hinzugefügt. Und ich werde einfach weitermachen und für alle auf Compile klicken , um sicherzustellen, dass alles wie erwartet funktioniert. Okay, alles schließen, alles speichern. Und lass uns noch einmal auf Play by the Light Feather klicken. Jetzt kannst du sehen, dass die Lichtfeder spawnt. Und wenn ich die Fackel kaufe, laicht auch die Fackel. Beide reagieren. Sie laichen am selben Ort. Aber wir wissen, dass dieser Schmerzpunkt funktioniert. In den nächsten drei Lektionen werde ich Ihnen drei Methoden zeigen wie wir diese effizient erzeugen können Was ich im Grunde tun möchte, ist, dass wir ab diesem Punkt alle Gegenstände spawnen wollen, aber im Moment ist alles Wenn du nun die Größe des Gegenstands, der gerade erscheint , reduzieren willst , kannst du das hier in der Gegenstandsbasis grundsätzlich in dieser Größenordnung tun Für diesen Gegenstand kannst du auf das Schloss klicken Es ändert alle drei Werte gleichzeitig. Und wenn ich 0,5 schreibe, klicke ich auf Play und kaufe etwas. Du kannst sehen, dass der Artikel jetzt kleiner ist. Nun zum Em, ich denke, ich werde die Skala von 0,25 wählen, weil die Symbole sehr groß sind Wenn ich auf „Jetzt spielen“ klicke und etwas spawne, kannst du sehen, dass das die Größe ist ich mag, die Größe von diesem Du kannst immer einen Bitloga haben, aber wir werden eine Menge Gegenstände haben Ich denke, das ist eine gute Größe dafür. Okay, speichern wir alles und fahren wir mit dem nächsten fort. 78. 8.14 Spawn-Logik: In den nächsten drei Lektionen werde ich dir zeigen, wie wir diese Spawning-Methode anwenden können Jetzt wird die erste einfach sein und dann gehen wir zu etwas Mittlerem und dann zu etwas Fortgeschrittenem und dann zu etwas Fortgeschrittenem Ich hoffe, du bleibst für alle bei mir. Fangen wir mit dieser an, was die einfache Methode ist. Nun zum Spawnen, ich werde das innerhalb des Spielmodus machen, weil wir hier die Spawnpunkte nennen, wo wir sie definieren Lass mich den Spielmodus öffnen. Wir haben den Malpunkt des Feindes bereits definiert. Jetzt ist es Zeit für diesen. Anstatt es hier draußen zu tun, lassen Sie uns tatsächlich eine Funktion dafür erstellen. Weil es ein bisschen größer sein wird , als das nur hier zu tun. Lass mich einfach eine Funktion daraus machen. Lassen Sie mich das „Set Items“, „Punkte“ nennen. Normalerweise habe ich aus funktionellen Gründen eine vor ihnen, und ich werde es nur hier tun, um auch bei diesem Punkt konsistent zu bleiben . Kompiliere und speichere jetzt für diesen. Was du jetzt machen kannst, bevor wir anfangen, nur damit wir es nicht vergessen, ich möchte hier die Spawtpoints aufrufen, die Funktion hierher ziehen, weitermachen und verbinden Und jetzt funktioniert es, okay? Jetzt müssen wir innerhalb dieser Funktion etwas tun. Was ich zuerst tun möchte, ist, dass ich alle St. Points sammeln möchte. Um das zu tun, sagen wir, holen wir uns alle Schauspieler der Klasse. Merken Sie sich diese Funktion, Sie können sie nur für Dinge verwenden , die bereits hier drin sind, raus. Und wir haben hier schon St. Points drin. Realistischerweise werden wir jetzt für jeden Gegenstand einen St. Punkt haben. Wir werden also viel mehr haben. Hoppla, wir werden hier viel mehr solche Spanien-Punkte haben hier viel mehr solche Spanien-Punkte Aber lassen Sie uns vorerst einfach all diese löschen. Und ich bleibe einfach bei zwei. Wann immer diese Methode funktioniert, werde ich das alles einfach kopieren. Und es werden vorerst etwa 5 Sekunden Arbeit sein. Lass uns einfach diese beiden nehmen und mit ihnen arbeiten. Nehmen wir an, wir holen uns alle Schauspieler der Klasse und suchen nach dem Gegenstand Spa Point, diesem hier. Und es sollte beide bekommen. Wenn du sehen willst, was es tatsächlich bekommt, kannst du jederzeit eine Zeichenfolge ausdrucken du von hier ziehen kannst, und Länge sagen, damit du es sehen kannst. Wie viele Spawnpunkte haben wir bekommen? Da sollten zwei stehen. Wenn du auf Play klickst, steht hier oben zwei. Wenn du es sehen kannst, wissen wir jetzt, dass es diese beiden S-Punkte bekommt. Fantastisch. Was wir jetzt tun können ist, von hier wegzuziehen und jeweils vier zu sagen. Jetzt können wir mit jedem dieser Spa-Punkte etwas anfangen. Was wir tun wollen, ist, den Standort grundsätzlich zu definieren . Weil wir den Standort innerhalb des Players benötigen. Jedes Mal, wenn wir einen Gegenstand spawnen, benötigen wir den Standort des Spawnpunkts für den nächsten Gegenstand, den wir spawnen möchten Was ich tun möchte, ist, dass ich nicht alle Gegenstände hier übereinander spawnen alle Gegenstände hier übereinander Was ich hier tun möchte, ist, dass ich Gegenstände in einer Reihe spawnen möchte. Ich möchte hier den ersten Gegenstand spawnen Ich möchte den zweiten Gegenstand hier spawnen. Drittes Objekt hier, viertes, fünftes, sechs und so weiter Jetzt kannst du es so machen, es ist kein Problem. Aber stellen Sie sich vor, Sie haben 200 Artikel für den ersten Artikel, Sie haben 200 für den zweiten. Dein ganzes Level wird voller Schauspieler sein. Ich denke nicht, dass es eine gute Methode ist, also werde ich einfach alle löschen Aber im Grunde versuchen wir das zu tun. Wir versuchen hier, alle Gegenstände in einer Reihe zu spawnen . Lassen Sie uns versuchen, das zu tun Gehen wir jetzt zurück zum Spielmodus, was wir hier machen können, es hängt wirklich davon ab, welchen Gegenstand wir spawnen müssen Denkt daran, dass wir für jeden Spawnpunkt den Punktnamen Spanien variabel gemacht haben, den wir veröffentlicht haben, und wir haben Light Feather geschrieben Lassen Sie uns von dieser ziehen und nach dem Namen des Spawnpunkts suchen. Mach weiter und hol dir die Variable. Ziehen Sie jetzt von hier und sagen Sie Switch on string. Das ist genau wie zuvor, wo wir den Schalter Aufzählung einschalten, Zeichenfolge einschalten, das können Sie auch tun Klicken Sie auf das Plus, um Pins hinzuzufügen. Der erste, der erste Gegenstand, den wir haben, ist die Fackel oder eigentlich die Lichtfeder. Dann haben wir die Fackel, wir haben diese beiden kompiliert. Was wir nun hier machen können, wenn es die Lichtfeder ist, wollen wir diesen Punkt nutzen. Es ist eine Fackel, wir wollen diesen Punkt nutzen. Fangen wir mit einer leichten Feder an. Wir wollen zunächst ein Array erstellen. Weil wir das ohne ein Array zum Speichern der Orte, die wir finden, nicht wirklich tun können. Lass mich das in einen Vektor umwandeln. Lassen Sie mich das Licht Father Spawn Points nennen. Lass uns das hier rausnehmen. Jetzt müssen wir es in ein Array umwandeln, weil wir mehrere Orte speichern müssen. Das ist diese Reihe von Gegenständen, die wir spawnen müssen Anstelle eines Vektors können Sie mit der rechten Maustaste darauf klicken. Sie ändern es in einen Vektor, oder Sie können jederzeit darauf klicken und es hier ändern, wenn Sie möchten. Jetzt haben wir dieses Array. Und was wir damit verwenden müssen , ist die Funktion Hinzufügen. Also müssen wir einen Standort hinzufügen und wir müssen ihn hier hinzufügen. Okay, jetzt hängt es davon ab , welche Standorte wir hinzufügen müssen. Wie machen wir das? Wie komme ich einfach von einem Spaw-Point aus an verschiedene Standorte einfach von einem Spaw-Point aus Weil ich keine weiteren Spawnpunkte hinzufügen werde. Dies ist der einzige Spawnpunkt, den ich für die Lichtfeder hinzufügen werde, aber ich möchte hier viele Gegenstände haben, die ich zum Spawnen benötige Was wir tun können, ist, es mich einfach machen zu lassen und du kannst sehen, wie einfach es ist Zunächst benötigen wir natürlich den Standort dieses Punktes in Spanien. Zuerst ziehe ich das mit der Maus und sage es an den Ort. Jetzt habe ich die Position dieses Spawnpunkts. Was wir mit diesem machen können, ist, dass ich eine Schleife mit vier Schleifen machen kann Wir können diese vier Schleifen hier auswählen. Jetzt kommt es darauf an, wie viele Gegenstände du zuerst spawnen möchtest Fangen wir einfach mit fünf Gegenständen an. Wir werden hier vier schreiben. Der Grund dafür ist, dass der erste Index in einer Schleife 00 ist und als 101234 kommt Das sind fünf Punkte, 0-4 Was wir tun müssen, ist diesen Acts-Standort zu finden Jetzt musst du denken, dass du die Gegenstände auf diese Weise spawnen wirst Du musst darauf achten, auf welcher Achse du dich befindest. Das ist die X-Achse, der rote Pfeil ist die X-Achse. Wenn Sie darauf klicken und das Objekt ziehen, können Sie im Grunde hier unten an der Position im Detailbereich sehen, dass Sie sich in die Plus-Richtung der X-Achse bewegen. Das ist im Grunde das, was wir versuchen zu tun. Ich möchte das Z nicht beeinflussen und ich möchte auch das Y nicht beeinflussen. Ich möchte nur das X beeinflussen. Deshalb können wir das nehmen und wir können Break Vector sagen, weil wir nur die X-Achse beeinflussen wollen. Auch für diesen. Da ich das hier nicht einloggen kann, ziehe ich daraus und sage Make Vector. Jetzt kann ich auch X, Y und Z sehen und wir können diese Informationen im Grunde hierher ziehen. Nun zum Y, zum Z, ich möchte nichts ändern. Ich will sie nicht beeinflussen, ich will nur das X beeinflussen. Jetzt kann ich sagen X vielleicht zehn Einheiten verliert. Im Grunde genommen nehmen wir diesen Standort und fügen dann zehn Einheiten hinzu. Der nächste Artikel wird stattdessen hier sein. Lass uns zurückgehen. Wir sagen zehn, und dann schließen wir es wieder an Wir nehmen diesen Standort ein, das ist er schon. In diesem einen Punkt addieren wir zehn zum X und dann schließen wir es wieder an und das ist unser neuer Standort Natürlich können wir nicht einfach zehn einstecken und zehn einfach von hier raushalten, denn das wird dasselbe sein, werden im Grunde genommen Elemente hinzufügen , alle Was wir tun müssen, wir müssen diesen Index erneut verwenden. Der Index wird zuerst Null sein, dann 123. Was wir tun können, ist , diese Zahl hier im Grunde zu multiplizieren. Anstatt einfach zehn zu schreiben, können wir sie ziehen, multiplizieren und auswählen. Was wir hier sagen können, ist, dass wir hier zehn multipliziert mit dem Index sagen können . Und das sollte gut funktionieren. Was wir sagen, ist zuerst zehn multipliziert mit Null, was genau dieser Spawnpunkt sein wird Wir sagen zehn multipliziert mit eins, wir sagen x Dann wäre der nächste Punkt hier. Jetzt geht es wieder auf den Index von zwei. Es wird zehn mal zwei heißen. Das sind 20. Da wird x plus 20 stehen. Der nächste Punkt wird hier sein und so weiter. Es wird einfach eine Schleife laufen und Orte wie diesen hier hinzufügen. Wir werden das alles löschen. Und jetzt können wir es verbinden. Wir können es tatsächlich ausprobieren und sehen, ob das funktioniert. Wenn ich nur hier spare. Und wir können versuchen, es im Spieler zu spawnen , im Spawn-Item Wir müssen das jetzt natürlich löschen, da wir es zuvor erstellt haben, und wir müssen die Orte aus dem Spielmodus hinzufügen Ich habe den Spielmodus hier nicht wirklich, lassen Sie uns einfach eine Kurzreferenz dazu erstellen. Wenn ich sage, dass du dir den Spielmodus holen sagst, denk daran, dass er unter „Spiel beginnen“ steht . Holen wir uns den Spielmodus. Holen Sie sich die Referenz zum Spielmodus, denn denken Sie daran, dass wir den Entwurf dafür bereits erstellt haben. Wir können mit der rechten Maustaste darauf klicken und daraus eine Variable namens Spielmodus eine Variable namens Spielmodus wie diese machen. Ich habe es nicht angeschlossen. Lass mich das jetzt einfach neu arrangieren. Wir können den Spielmodus nehmen. Ich gehe einfach näher ran. Wir können die Spawnpunkte des Fluges nehmen, wir können sie uns hier besorgen Wir können auch holen sagen, weil wir den Spanien-Punkt brauchen. Besorgen Sie sich eine Kopie. Nun, es hängt wirklich davon ab welchen Spawnpunkt du benötigst, denn das hängt von den Gegenständen ab, die du gekauft hast Eigentlich muss ich hier einfach „Finden“ sagen Weil es den Artikel finden wird, den Sie gekauft haben. Es entspricht dem Gegenstand, dem Drehpunkt hier. Suchen Sie jetzt den Artikel , den Sie gekauft haben. Und es hängt wirklich davon ab, wie viele Artikel Sie gekauft haben. Nun, da der gekaufte Artikel immer eins oben sein wird, weil wir hier ein Plus oder wir fügen einen hinzu Wir müssen das nehmen und minus eins sagen, denn denken Sie daran, dass wir bei Index Null beginnen Wir beginnen nicht bei Index eins. Wenn Sie einen Artikel gekauft haben, müssen wir diesen um eins absetzen und ihn dann einstecken, weil der erste Artikel bei Index Null erscheint Wir müssen immer sagen minus eins kompilieren und das dann einfach einstecken Klicke auf Play und versuche einfach leichte Federn zu kaufen. Jetzt können Sie sehen, dass es funktioniert. Wir spawnen tatsächlich in einer Linie und es wird nicht mehr spawnen Weil du sehen kannst, wie es hier oben spawnt. Das liegt daran, dass wir es nur als 0-4 definiert haben. Jetzt kannst du immer 99 schreiben und dadurch werden 100 Objekte erzeugt. Jetzt geht es 100 Mal nach rechts, bevor es aufhört. Jetzt können Sie sehen, dass das wirklich gut funktioniert. Nun, wenn du das für all die anderen Gegenstände machen willst, musst du natürlich alles nehmen. Sie müssen kopieren und einfügen. Und du musst das hier schon einmal so machen. Immer wenn hier der erste fertig ist, musst du das auch für die Fackel machen. Eigentlich müssen wir diesen auch kopieren. Und das müssen wir auch tun. Sie können hier sehen, dass das eine Menge Kopierarbeit ist. Du kannst das viel besser machen. Denn denken Sie daran, wir haben, sagen wir, wir haben 50 Gegenstände im Spiel. Du musst das für alle Gegenstände 50 Mal kopieren. Sie können sehen, dass das keine wirklich gute Programmierpraxis ist. Ich würde das in meinem Spiel niemals tun. Ich werde das einfach löschen . Das war der erste. Das ist die einfachste Methode, mit der wir das machen können. Ich habe eine Methode, die etwas heißer ist. Lassen Sie uns in der nächsten Lektion einfach weitermachen. 79. 8.15 Spawning-Logik - Fortgeschrittene: Alles klar, jetzt sind wir zurück. Und was ich jetzt tun möchte, bevor wir diese ganze Methode ändern, ich möchte sie ein bisschen verbessern. Weil wir diese verbesserte Methode verwenden werden. Wir werden nicht all die Dinge löschen , die wir gerade tun. Lassen Sie uns einfach mit dem weitermachen , was wir derzeit haben. Jetzt muss ich das später ändern, aber vorerst behalten wir es einfach und lassen Sie uns das alles behalten. Aber was ich jetzt tun möchte, ist, wenn ich auf Play klicke und Artikel kaufe. Ich möchte auch, wann immer es einen bestimmten Punkt erreicht, in der nächsten Reihe durchkommen. Es kauft nicht nur in einer Reihe, sondern auch in der zweiten Reihe Jetzt sehe ich, dass dieser Fehler behoben ist, weil wir ihn im Index nur auf vier gesetzt haben Aber wie Sie sehen, kann es zu lang werden, wenn ich einfach weiter in dieser Reihe kaufe. Ich möchte auch, dass es automatisch in die nächste Reihe geht und dort Gegenstände kauft oder spawnt Lassen Sie uns zuerst etwas Logik hinzufügen, lassen Sie uns hier einfach fünf oder vier schreiben Genau wie zuvor muss ich wissen, wann diese Schleife beendet ist. Klicken wir mit der rechten Maustaste auf diesen. Wir können es zu einer lokalen Variablen heraufstufen. Der Unterschied zwischen einer Variablen und einer lokalen Variablen besteht darin, dass eine lokale Variable in dieser Funktion liegt eine lokale Variable in dieser Funktion liegt, in der Sie sich gerade befinden. Wir befinden uns in dieser Funktion mit den Spawn-Punkten für festgelegte Gegenstände. Wenn ich einen lokalen Punkt in Spanien erstelle und zum Ereignisdiagramm zurückkehre, kann ich die Variable hier nicht sehen da sie nur innerhalb dieser Funktion existiert Wir mussten hier im Grunde etwas Logik anwenden, aber wir brauchen sie wirklich nicht hier draußen. Wir verwenden das nur, wenn die Schleife beendet ist oder nicht, wir können mit der rechten Maustaste hier klicken und zu einer lokalen Variablen heraufstufen. Normalerweise nenne ich sie zunächst lokal, nennen wir das eine Schleife, letzter Index. Da dies der letzte Index der Schleife ist, müssen wir auch eine weitere lokale Variable erstellen. Ich werde es in eine Ganzzahl ändern. Auch hier ist es kein irrwitziges normales. Die zweite, ich möchte es einfach lokale Anzahl von Zeilen nennen Ich muss wissen, in wie vielen Zeilen die Artikel sein müssen. Benötige ich es in einer Reihe oder brauche ich es in zwei Reihen, drei Reihen und so weiter. Lassen Sie uns vorerst einfach drei Zeilen hinzufügen. Wenn ich kompiliere, klicke auf die Variable und hier drüben im Standardwert, genau richtig drei. Jetzt wollen wir drei Zeilen. Was ich hier tun möchte, ist, den Ortsanschluss zu nehmen. Letzter Index, den ich sagen möchte, entspricht das dem Index jetzt hier? Weil dieser Index hier aufwärts zählt. Und Sie können sehen, dass Sie, wenn Sie eine Zeichenfolge drucken, immer eine Zeichenfolge drucken können, wenn Sie etwas nicht verstehen oder wenn Sie etwas möchten. Clarity Four, du kannst es einfach hierher ziehen und auf Abspielen klicken. Jetzt können Sie sehen, dass die Nummer gedruckt wird. Und wenn ich es hier einfach länger mache, damit wir sehen können, was vor sich geht und es lesbar ist. Klicken Sie auf Abspielen. Sie können es in der Nummer 01234 sehen Es zählt aufwärts , wenn dieser Wert dem verlorenen Index der lokalen Schleife entspricht , der dieser ist Wenn wir nur kompilieren, können Sie sehen, dass er jetzt auf vier gesetzt ist . Wenn das dem entspricht, wissen wir, dass dies die letzte Schleife ist, die es durchlaufen hat. Verbinde diesen einfach wieder. Wenn das stimmt, wollen wir Anzahl der Zeilen nehmen, mit der wir sie vergleichen wollen. Wie oft ist diese Schleife gelaufen? Nehmen wir an, Sie benötigen hier drei Zeilen. Sie müssen die Schleife dreimal ausführen, weil sie beim ersten Mal in einer Schleife zu dieser Zeile wiederholt wird, dann muss sie hier und hier in einer Schleife laufen. Wenn wir die Anzahl der Rose mit drei angegeben haben, muss sie dreimal wiederholt werden. Ich werde wieder eine neue Variable erstellen. Lassen Sie uns diesen einen Local-Loop-Zähler nennen. Nehmen wir diesen lokalen Schleifenzähler und sagen wir Loss Plus, weil wir ihn jedes Mal um eins erhöhen müssen , wenn die Schleife beendet ist Diese Schleife hier ist jetzt beendet. Wenn das stimmt, müssen wir einen zum Zähler für die lokale Schleife hinzufügen. Wir müssen uns fragen, ist das der Zähler für den Teilnehmeranschluss, ist er kleiner als die Menge an Rose? Wenn es weniger ist, ist es im Moment weniger, weil die Menge an Rose drei ist und diese nur eine ist. Gehen Sie zurück und wiederholen Sie die Schleife. Wenn dieser Schleifenzähler jetzt drei ist, wird er nicht erneut wiederholt, da auch dieser Wert bei drei liegt. Und wir werden den Code stoppen. Geh einfach raus und verbinde das hier. Wenn es jetzt weniger als die Anzahl der Zeilen ist, müssen wir die Schleife erneut ausführen. Nehmen wir das hier als wahr an und lassen Sie uns es einfach zur Schleife zurückführen. Nehmen wir die Hinrichtungsnadel hier. Ich doppelklicke, um eine hintere Routennotiz zu machen. Ich kann es also tatsächlich so sehen. Jetzt gehen wir zurück und wiederholen das noch einmal. Jetzt klickst du auf Play und kaufst. Sie können sehen, dass nichts passiert. Warum passiert hier nichts? Aber man kann tatsächlich sehen, dass etwas passiert. Denn wenn ich wie hier fünf kaufe und ich mich daran erinnere, den letzten Index auf vier gesetzt zu haben, bedeutet das, dass ich bis zum sechsten fünf Artikel spawnen kann Es wird nicht fünf mal zehn sein. Es ist kein Bug, wenn F um 15 ist, aber wenn ich 16 kaufe, kann man sehen, dass es ausfällt Was gerade passiert, ist, dass du die 15 Gegenstände übereinander spawnen lässt, du nimmst nicht die nächste Reihe Der Grund ist, denken Sie daran, dass Sie den Z-Wert beeinflussen müssen , weil die Zeile hier im Grunde der Z-Wert ist, wir haben den Z-Wert nicht beeinflusst Sie müssen etwas mit diesem Z-Wert machen. Was wir tun müssen, ist zu sehen , in welche Richtung wir gehen wollen. Wenn ich jetzt darauf klicke und es nach unten ziehe, achte einfach auf den Z-Wert hier im Detailbereich. Wenn ich das nach unten drücke, geht es hier in das Minus des Z. Was ich tun kann, ist, den Z-Wert zu nehmen. Ich kann Minus sagen. Wir müssen es einfach so machen wie zuvor. Wenn ich das hier nehmen und sagen kann, multipliziert wie zuvor, werde ich das verschieben, ich werde es tatsächlich löschen, weil wir das nicht wirklich brauchen Wir können das hier jederzeit kopieren und einfügen, wenn wir müssen. Auch hier müssen wir es wie zuvor multiplizieren . Sagen wir für zehn. Und es ist nicht wirklich der Index, weil wir ihn nicht wirklich in derselben Schleife multiplizieren wollen. Da es sich bei der ersten Schleife um den Z-Wert handelt, ist er durchweg derselbe. In der zweiten Schleife ist der Z-Wert durchweg derselbe. Es wird hier nicht jeden einzelnen Index ändern. Anstatt dies zu tun, müssen wir eine weitere lokale Variable erstellen. Nennen wir diesen einen lokalen Z-Achsen-Multiplikator. Nun zum Standardwert, er bleibt Null, weil wir ihn mit nichts multiplizieren wollen Die erste Schleife, also die erste Schleife, das ist alles richtig. Lass es uns einfach hier verbinden. Alles ist miteinander verbunden. Jetzt heißt es, dass etwas nicht stimmt. Der aktuelle Wert einer gültigen, gültigen Zahl. Ich weiß nicht, warum es das sagt. Wenn du auf Datei klickst und alle Notizen aktualisierst, weiß ich nicht, warum es so nervt Einfach ziehen und nochmal multiplizieren sagen. Ich ziehe es hierher, anstatt zehn Gott zu sagen, und verbinde es erneut und kompiliere es. Und jetzt funktioniert es. Ich weiß nicht, es war nur ein zufälliger Bug. Jetzt haben wir das verbunden. Im Grunde müssen wir diesen lokalen Z-Achsen-Multiplikator erhöhen diesen lokalen Z-Achsen-Multiplikator Denn für die erste Schleife wollen wir , dass das Z durchweg gleich ist Für die zweite Schleife wollen wir , dass das Z durchgehend gleich ist, und so weiter. In jeder Schleife ändert sich das Z. Wir können es hier machen. Wir nehmen den lokalen Z-Multiplikator wenn wir wissen, dass wir wieder eine Schleife machen werden Wenn das wahr ist, erhöhen wir den Wert einfach um eins plus verbunden und gehen so wieder in die Schleife zurück Jetzt sollte es funktionieren, wenn ich kompiliere und wenn ich auf Play klicke. Und wenn ich die Lichtfeder fünfmal sechsmal kaufe, müsste sie hier unten stehen, was auch richtig ist. Und du kannst sehen, dass alles richtig funktioniert. Jetzt könnt ihr sehen, wie toll es ist, dass wir all diese Gegenstände von einem einzigen Punkt in Spanien aus spawnen diese Gegenstände von einem einzigen Punkt in Spanien aus Jetzt musst du deine Karte nicht mit vielen Spanien-Punkten spammen deine Karte nicht mit vielen Spanien-Punkten Das ist sehr optimiert , weil es nur läuft, wenn du dein Spiel startest. Weil es all diese Spanien-Punkte in einem Array speichern wird diese Spanien-Punkte in , das du später verwenden kannst, um die Gegenstände tatsächlich zu spawnen. Lass uns alles speichern Das war es vorerst und wir werden mit dem nächsten weitermachen und es etwas weiter ausbauen. Ich hoffe, du bist immer noch bei mir, aber was wir einfach tun werden, ist, dass wir diesen Teil hier loswerden werden. Und ich werde dir zeigen, wie wir das etwas weiter voranbringen können . Klicken wir auf Datei, Alle speichern und fahren wir mit dem nächsten fort. 80. 8.16 Spawning-Logik - Fortgeschrittene: Im Moment werden wir den Code, den wir hier geschrieben haben, verbessern Das ist also der letzte Teil, was wir tun können. Anstatt all das zu tun, lassen Sie mich vorerst nur diesen Teil und auch diesen löschen. Für diesen Punkt, den wir bekommen, klicken wir einfach mit der rechten Maustaste hier und machen daraus eine lokale Variable. Nennen wir diesen einen lokalen Gegenstand Spawnpunkte Jetzt haben wir auch diese Spawnpunkte. Bevor wir das alles tun, sollten wir sicherstellen , dass es nicht Null ist Wir stellen nur sicher , dass wir tatsächlich einige Spawnpunkte haben und dass die Karte tatsächlich Spawnpunkte enthält Also ziehe von hier und wir sagen Länge. Wir stellen sicher, dass diese Länge größer als Null ist und dann können wir eine Verzweigung machen Wow, wir stellen sicher, dass wir tatsächlich ein paar Spawnpunkte haben Bevor wir all diese Logik anwenden, sonst wird es keinen Sinn machen Lassen Sie uns das vorerst weglassen und weitermachen und es verbinden. Wenn Sie sich das jetzt ansehen, müssen Sie sich überlegen, wie Sie es kleiner machen können als zuvor. diesen Code zu kopieren und ihn dann hier einzufügen Verbindung herzustellen und dann weiterzumachen Wie können Sie diese Methode hier verkürzen , sodass Sie nicht das, was sich von diesem Code unterscheidet, in den Code kopieren und einfügen müssen , den Sie ändern müssen Das Erste , was mir in den Sinn kommt, ist, dass ich mir dieses Array ansehe denn zuerst müssen Sie die Standorte für die großen Spawnpunkte der Federn hinzufügen die Standorte für die großen Spawnpunkte der Federn Dann lass uns einen neuen machen. Klicken Sie einfach auf dieses eine Steuerelement D, um es zu duplizieren. Der zweite sind die Fackel-Spawnpunkte, ich glaube, der zweite ist die Fackel Ja, das ist sie. Die zweite ist die Fackel. Wir brauchen tatsächlich die Fackel hier unten , wo du die Spawnpunkte hinzufügen musst und nicht die Lichtfeder Das ist der einzige Unterschied. Um das nochmal zu verkürzen, denkt daran, den Auswahlknoten zu verwenden. Ein sehr wichtiger und mächtiger Node, den ihr aus diesem herausziehen und dann Select sagen könnt . Nun können Sie die Feder oder die Fackel auswählen, je nachdem, was Sie hier anschließen. Woher wissen wir nun, welche wir auswählen sollen, wo das ist? Nochmals, wo Sie die Aufzählung verwenden können. Wenn ich zu den Elementen zurückgehe, die ich schreiben kann, klicke ich auf Neue Blueprint-Aufzählung erstellen Und nennen wir dieses eine Element. Lass uns das öffnen. Lass uns einfach ein paar Artikel hinzufügen. Jetzt probiere ich einfach etwas aus. Der erste Artikel ist Light Feather. Der zweite ist Torch. Wir können immer versuchen zu sehen, ob das funktioniert. Wenn es nicht funktioniert, ist es nicht wirklich wichtig, dann haben wir etwas daraus gelernt. Wenn ich jetzt zurückgehe, habe ich diese Aufzählung Ich werde diese Aufzählung tatsächlich zu diesem Punkt in Spanien hinzufügen , weil wir , genau wie der Name, die Aufzählung korrekt einstellen müssen die Aufzählung korrekt einstellen Lassen Sie uns die Problematik der Punkte einbeziehen, denn zuvor haben wir diese Elementvariable oder diese spanische Punktnamensvariable zu dieser Punktbasis hinzugefügt oder diese spanische Punktnamensvariable . hier. Aber es macht nicht wirklich Sinn, der Punktebasis eine Artikelaufzählung hinzuzufügen eine Artikelaufzählung Punktebasis weil der Feind sie nicht wirklich braucht Warum würdest du es innerhalb der Punktbasis hinzufügen? Denken Sie daran, dass der Punktpunkt ein untergeordnetes Element dieses Punkts ist. Ich möchte keine unnötigen Variablen hinzufügen , wo man sie bei allen anderen Akteuren nicht wirklich braucht . Wir brauchen sie nur hier drinnen. Fügen wir es hier hinzu. Fügen wir stattdessen eine Variable hinzu, nennen wir sie Item. Lassen Sie mich einfach nach Artikeln suchen. Artikel. So haben wir es genannt. Geh und wähle es aus. Kompilieren. Lassen Sie uns alles noch einmal speichern. Offenlegen, Instanz, Bearbeitbar. Beim Spawn verfügbar machen, kompilieren. Wenn ich jetzt darauf klicke, kann ich den Gegenstand auf Light Feather ändern Und beim nächsten kann ich es auf Torch ändern. Jetzt haben wir diese Information. Wenn ich jetzt zu meinen Plänen zurückkehre, öffne meinen Spielmodus Was wir hier drinnen tun können, um an diese Informationen zu kommen. Denken Sie daran, wir haben diese Informationen bereits hier. Also kann ich meinen lokalen Gegenstand nehmen, Spawnpunkte, ich kann sagen, bekommt Und ich hole mir einfach den ersten, dann sage ich Gegenstand und dann suche ich meine Aufzählung Jetzt mach weiter und stecke das hier ein. Jetzt kannst du sie wieder einstecken. Jetzt können Sie sehen, je nachdem, was dieser Wert ist, werden diese Arrays ausgewählt Wenn es die Lichtfeder ist, die du hier draußen bei der Anzeige eines Spawns ausgewählt hast , wird es die Lichtfeder-Reihe auswählen und so weiter Ich kann mir vorstellen, dass es gut funktionieren wird. Auch hier unten, um den Standort des Schauspielers zu finden, braucht es einen Schauspieler. Mach weiter und kopiere das und füge es hier ein. Das wird also auch gut funktionieren , nachdem es die Spawnpunkte für das erste Mal hier hinzugefügt hat, für das erste muss es Der zweite, wenn er den zweiten hier erreicht. Denken Sie daran, dass wir gefragt haben, ob der Zähler für die lokale Schleife größer ist als die Anzahl der Zeilen, die Sie haben möchten? Kleiner, größer, wenn er kleiner ist. Wenn das stimmt, machen wir einfach weiter und wiederholen die Endlosschleife. Wenn es jedoch nicht kleiner ist, bedeutet das, dass wir die Schleife beenden müssen, weil wir die maximale Anzahl von Zeilen für diese Zeile erreicht haben, wir müssen zur nächsten übergehen. Was wir tun können, ist, das zu nehmen und Index sagen zu können. Weil wir wissen, dass wir den Index Null entfernen müssen , weil wir im Grunde den ersten Index verwenden , um die Elemente von hier aus zu erzeugen, entfernen wir die Elemente von hier aus zu erzeugen, den ersten Index , der Index Null ist Bevor wir wieder zum nächsten Spawnpunkt zurückkehren, müssen wir sicherstellen, dass dieser nicht leer ist Denn was passiert, wenn du den letzten Spawnpunkt erreichst? Wir wollen nicht weiter loopen. Wir müssen uns hier hinziehen und sagen, dass es nicht leer ist. Weil wir immer dann eine Schleife machen wollen, wenn das nicht leer ist, machen wir einen Zweig, machen weiter und verbinden ihn. Wenn es nicht leer ist, wollen wir es erneut wiederholen. Denken Sie jetzt daran, dass wir den Z-Wert zurücksetzen müssen , da wir uns wieder in einer neuen Zeile befinden. Wir müssen alle Einstellungen für den Z-Wert zurücksetzen. Ich werde ihn auf Null setzen. Und dann auch für den lokalen Schleifenzähler, weil wir jetzt einen neuen Schleifenzähler starten, werde ich ihn auch auf 20 setzen. Lassen Sie mich sehen, ob wir noch etwas ändern müssen. Was den Local-Loop-Index angeht, so bleiben wir eigentlich gleich, weil wir die gleiche Menge an Elementen pro Zeile haben . Wir müssen wirklich nichts ändern. Lassen Sie uns alles kompilieren und speichern. Nun zu diesem, wir werden es im Grunde wie folgt wieder in den Loop einstecken . Doppelklicken Sie erneut darauf, damit wir sehen können , was wir gerade tun. Lassen Sie uns sehen, ob es tatsächlich funktioniert. Bevor wir nun auf Abspielen klicken und das versuchen, könnt ihr sehen, dass es übereinander Ich denke nicht, dass es hier ein Fehler ist, denn denken Sie daran, dass Sie im Player auch entscheiden, wie Sie das eigentlich nennen Wir hatten nur den Spawnpunkt der leichten Federn, von dem wir kamen. Du. Eigentlich musst du das auch etwas dynamischer machen. Denken Sie jetzt noch einmal daran, dass Sie hier die Position, das Array, ermitteln müssen , je nachdem, welches Objekt für diesen Vorgang verwendet wird. Denn hier hast du eine Zeichenfolge und was du im Spielmodus verwendest, ist eine Aufzählung Du kannst sie nicht wirklich zusammen verwenden. Sie können auch keine Zeichenfolge in eine Aufzählung einfügen. Wenn wir es hier rausgebracht haben, müssen wir es irgendwie konvertieren. Lass uns hier oben eine neue Funktion machen. Nennen wir das, besorgen wir ihm Spawnpunkte. Das ist nur das Sammeln von Informationen. Denken Sie daran, es auf Pure zu setzen, damit es wie eine grüne Funktion aussieht. Wir bekommen hier nur Informationen. Nun zu dem, was wir tun könnten, wir könnten zum Beispiel nach Artikeln suchen. Wir könnten diese Aufzählung wie zuvor verwenden und wir können sagen, die Aufzählung einschalten Und wir können die Spawnpunkte grundsätzlich abhängig davon zuweisen , worüber wir sprechen, welches Objekt wir Das Problem dabei ist, wenn wir diesen benutzen müssen, holen wir ihn nach Punkten Wenn ich kompiliere und zurück zum Player gehe und den Spielmodus nehme und sage, wir rufen es an, bekommt man Spa-Punkte. Sammle Spa-Punkte. Ich habe versucht, diesen zu benutzen. Wenn ich versuche, das hier einzufügen, können Sie sehen, dass die Zeichenfolge nicht mit der Artikelaufzählung kompatibel ist mit der Artikelaufzählung kompatibel Jetzt könnten wir die Aufzählung der Elemente innerhalb der Struktur hinzufügen Aufzählung der Elemente innerhalb der Struktur Ich möchte das nicht wirklich tun, aber du kannst es tun, wenn du willst Das ist auch eine Methode , die funktionieren kann. Aber was ich tun möchte, anstatt daraus eine Aufzählung zu machen, lassen Sie uns daraus eine Zeichenfolge machen Wählen Sie stattdessen eine Zeichenfolge und nennen wir sie Elementname Lassen Sie uns diesen löschen. Dann können wir sagen, String einschalten. Lass uns sie hinzufügen. Manuelles Klicken auf das Plus. Der erste Gegenstand ist die Lichtfeder. Der zweite Artikel ist goldbraun. Was wir tun können, ist, wenn es die Lichtfeder ist, wir können einen Return-Node-Schreibvorgang hierher zurückkehren lassen, ihn auswählen und ihn einfach hierher ziehen. Ich nenne das einfach Spawnpunkte. Was wir tun können, ist , das hier zu kopieren und einzufügen, verbunden und einfach so Okay, jetzt müssen wir das für alle Spawn-Punkte machen, aber jetzt schauen wir mal, ob es funktioniert Und wir können immer weitermachen. Wenn ich zurück zum Spieler gehe, nehme ich jetzt die Spielmodus-Variable und sage Items Points und ich sage Items Spon Points Jetzt kann ich mir die Spanien-Punkte holen, abhängig vom Namen des Gegenstands Ich werde das einfach hier reinziehen. Dann nehme ich die Spawnpunkte und ziehe sie dann hierher Jetzt können wir diesen Teil löschen , weil er jetzt dynamisch hinzugefügt wird Und wenn ich auf Play klicke und helle Federn kaufe, wenn ich Fackeln kaufe, sie immer noch an derselben Stelle Mal sehen, was hier drinnen falsch läuft. Ich kann also sehen, dass ich Golden Crown versehentlich geschrieben habe und es ist Torch. Also das ist wahrscheinlich das Problem. Wenn ich hier rauf klicke, richtig, wieder Torch. Wenn ich es wieder verbinde, als ich den Namen geändert habe, und ich erneut auf Play klicke, kaufe ich die Lichtfedern und ich kaufe die Fackel. Sie können jetzt sehen, dass sie perfekt funktioniert. Jetzt kann ich sehen, dass es auch in den drei Reihen, die ich ausgewählt habe, spawnt den drei Reihen, die ich ausgewählt habe, Lassen Sie uns jetzt testen und sehen, ob das funktioniert. Wenn wir die Einstellungen ändern, wenn ich in den Spielmodus gehe, setze Item-Spawnpunkte Wenn ich einfach auf die lokale Anzahl von Zeilen klicke und diese stattdessen in zwei Zeilen ändere, auch für den Loop-Counter Der letzte Index hier, sagen wir, ich wollte zehn Elemente in einer Zeile. Ich schreibe hier neun, weil denken Sie daran, dass der Startindex Null ist, Fycliconplay, ich kaufe die hellen Federn, Sie können zehn davon kaufen Und es wird hier bleiben, aber der elfte geht in die Jetzt können Sie sehen, dass es perfekt funktioniert und ich kann dasselbe mit der Fackel machen. Das Gute ist, dass Sie immer einen löschen und ihn platzieren können, wo immer Sie wollen. Sie können zum Duplizieren auf Strg+Alt klicken. Es kann wie bei diesem Speichervorgang wieder auf Torch umgestellt werden. Ich glaube nicht, dass wir diesen Punktnamen für diesen Punkt mehr brauchen . Ich werde es wahrscheinlich entfernen, aber lass uns erneut auf Play klicken. Jetzt kannst du sehen, dass sie funktionieren, weil der erste Torch war. Jetzt überprüfen wir einfach, ob der erste Torch ist, der zweite Feather und so weiter. Sie funktionieren alle korrekt. Gehen wir jetzt zurück zur spanischen Punktebasis oder zu dieser. Lassen Sie uns die Instanz Editable entfernen und beim Spawn verfügbar machen, weil wir sie nicht mehr benötigen Gehen wir zurück zum Play-Controller. Ich werde das alles löschen und das alles zusammen verschieben. Ich werde nur ein paar hintere Routennotizen erstellen , um das viel besser zu organisieren. Ordnung, jetzt habe ich alles neu angeordnet und nur Notizen zur Umleitung gemacht. Es sieht besser aus Was wir jetzt brauchen, sind all die anderen Antwortpunkte. Lassen Sie uns diesen Teil einfach beenden. Lass mich den ersten hier unten löschen. Lass uns einfach von vorne beginnen. Was Sie tun können, ist einfach hierher zu ziehen und Sie müssen erstellen, natürlich bis zu der Anzahl der Artikel, die Sie haben. Im Moment haben wir zehn. Ich gehe einfach runter , das ist 234. Wir müssen im Grunde eine größere Karte erstellen oder vielleicht müssen wir mehr Platz schaffen. Mach einfach weiter und kopiere acht davon. Gut, jetzt habe ich zehn davon. Klicken Sie auf den ersten und vergewissern Sie sich, dass es der erste Artikel ist. Du kannst jederzeit rübergehen und hier nachschauen , welche du in welcher Reihenfolge hast. Die erste ist die Lichtfeder. Dann wählt Torch die erste als Lichtfeder aus. Auch hier benötigen wir die Aufzählung der Elemente, wir müssen die Elemente zu ihnen hinzufügen Die Lichtfeder ist die erste, Torch, und dann brauchen wir die Ruine der Zeit Die Beschützerin. Ich füge sie hier einfach alle hinzu. Der letzte für mich ist Crown of Evil. Jetzt, wo ich sie alle wieder habe, rette sie alle. Schließ es. Lass uns rüber gehen. Und dann müssen wir sie auch hier alle ändern. Der erste ist Torch. Das kannst du öffnen. Ich werde es meinem zweiten Monitor hinzufügen. Und dieser ist die Ruine der Zeit. Eigentlich ist es hier einfach in Ordnung. Wir können es im Grunde einfach der Reihe nach hinzufügen. Der Beschützer, also der letzte, für mich ist das die Krone des Bösen. Alles sollte gut funktionieren. Wenn ich jetzt zum Spielmodus zurückkehre, öffne den Spielmodus. Lass es uns hier öffnen. Jetzt habe ich all diese Eingaben, in die ich Werte eingeben kann. Lassen Sie uns das noch einmal duplizieren. Sie müssen zum Beispiel für jeden von ihnen einen erstellen. Der nächste ist Ruin of Time Spawn Points. Mach einfach weiter und mache sie alle und verbinde sie auch hier Das ist der letzte für mich. Der letzte ist die Krone der bösen Spawnpunkte. Ich werde weitermachen und das auch hinzufügen. Nochmals, nur dafür sorgen, dass alles gut ist, sie so neu anordnen, das sollte in Ordnung sein Okay, jetzt, wo wir das hinzugefügt haben, gehen wir zum Player und stellen sicher, dass wir hier nichts tun müssen Im Spieler hier bekommst du tatsächlich Gegenstände, Spawnpunkte, wir müssen das auch hier tun Mach weiter und klicke ein paar Mal auf das Plus. Schauen Sie sich hier noch einmal Ihre Arrays an und benennen Sie sie einfach entsprechend Der dritte ist Ruin of Time. Stellen Sie sicher, dass Sie alles richtig geschrieben haben, da dies ebenfalls aus der Datentabelle übernommen wird Nennen Sie Ruin of Time. Der andere ist der Beschützer. Ich werde sie einfach wieder alle hinzufügen. Auch dies ist die letzte für mich, die Krone des Bösen, und ich hoffe, ich habe keinen von ihnen wieder falsch geschrieben, nur um das ein paar Mal zu kopieren Das ist 678910. Jetzt haben wir sie alle. Mach einfach weiter und stecke sie alle wieder hier ein. Und dieser ist der letzte für mich. Dann mach weiter und verbinde sie alle. Dieser ist der letzte. Stellen Sie nur sicher, dass Sie das noch einmal überprüfen. Wenn Sie hier einen Fehler haben, überprüfen Sie hier einfach , ob Sie alles richtig gemacht haben. Überprüfe noch einmal, ob du das alles richtig einsteckst , also so zusammen Und stellen Sie außerdem sicher, dass Sie in den eingestellten Spawnpunkten, an denen Sie all das korrekt eingegeben haben, die Namen innerhalb der Aufzählung in den Elementen hier richtig geschrieben haben, sie entsprechen den Namen, die Sie in der haben Vergewissern Sie sich nur, dass das alles korrekt ist , denn das ist sehr, sehr wichtig Alles sollte in Ordnung sein. Wenn ich jetzt zum Player zurückkehre, sollte alles funktionieren. Wenn ich auf Play klicke, kaufe ich jetzt etwas. Lass uns einfach alle testen. Wenn sie erscheinen, bedeutet das, dass sie funktionieren Jetzt muss ich die Karte etwas größer machen, aber das können wir später machen Aber jetzt kannst du sehen, dass ich die Rose, die ich habe, nur für 20 Gegenstände spawnen kann die Rose, die ich habe, nur für 20 Gegenstände Also kannst du es in der Kiste sehen , wenn ich mehr als 20 habe. Aber ich werde die Zahl später auf viel mehr erhöhen. Aber wie du siehst, kann ich von jedem Artikel 20 kaufen. Es sieht wirklich gut aus. Jetzt haben wir Artikel die der Anzahl der Artikel entsprechen, die wir kaufen Alles wird richtig berechnet , alles ist perfekt Lassen Sie uns es jetzt schließen. Ich werde das auch neu anordnen und wir können mit der nächsten Lektion weitermachen 81. 8.17 Artikelkostenstruktur und Datentabelle: Alles klar, was wir jetzt tun werden, wir werden die Preise jedes Mal erhöhen , wenn Sie hier im Geschäft etwas kaufen Sie können sehen, dass jedes Mal, wenn ich etwas im Laden kaufe, der Preis gleich bleibt. Und das ist normalerweise nicht der Fall bei einem Idler-Spiel oder Clicker-Spiel, weil es immer schwieriger werden muss sonst ist das wirklich schlechtes Spieldesign und es wird ein flaches Spiel sein, also müssen wir den Preis erhöhen Das passiert zum Beispiel auch in Cookie Clicker, wenn Sie es noch nicht ausprobiert Wenn Sie also beispielsweise mehr Cursor kaufen, können Sie sehen, dass der Preis steigt und es wird schwieriger Also müssen wir das auch für unseren Shop tun. Wir müssen den statischen Preis ändern. Lassen Sie uns das schließen. Dazu möchte ich nun eine neue Struktur erstellen , die alle Preise enthält. Wenn Sie zu den Bauplänen zurückkehren, öffnen Sie die Strukturen. Lassen Sie uns eine neue Blueprint-Struktur für diesen erstellen. Ich nenne es Artikelkosten. Lassen Sie uns jetzt diesen öffnen. Was wir im Grunde tun müssen, dass wir die Artikelkosten für jeden Artikel angeben müssen. Ich werde das in eine Ganzzahl ändern . Das erste, das wir Light Feather Cost nennen können. Sie müssen nur alle Artikel auflisten, die Sie haben. Jetzt können Sie zu dieser Aufzählung gehen. Wenn Sie sich nicht an die Artikel erinnern, können Sie sie immer einfach hier nebenbei haben Und Sie können weitermachen und alle Namen in die Struktur schreiben . Fügen Sie eine neue Variable hinzu, kopieren Sie diese und fügen Sie sie ein. Fügen Sie eine neue Variable hinzu, kopieren Sie diese und fügen Sie sie ein. Ich werde es für sie alle tun. Ordnung, dieser ist der letzte für mich, und ich werde den letzten hinzufügen, und jetzt haben wir sie alle. Lass mich das schließen und alles speichern. Was wir nun tun müssen, lassen Sie uns aus dieser eine Datentabelle erstellen. Es ist immer schön, einen zu haben. Klicken wir mit der rechten Maustaste, gehen wir zu Blueprints, erstellen eine Tabelle mit verschiedenen tatsächlichen Daten und wählen Sie die Artikelkosten Klicken Sie auf OK. Nennen Sie einen DT-Artikel kosten. Speichern wir jetzt alles. Wir müssen zu Google Sheets gehen. Hier in Google Sheets hatten wir das schon einmal. Lass uns eine neue erstellen. Lass mich diesen einfach duplizieren. Dupliziere das. Lass es mich einfach hier nennen, DT Item Cost. Was wir jetzt brauchen ist, lassen das alles vorerst löschen. Was wir hier in dieser Datentabelle benötigen sind die Kosten für jeden Artikel. Der erste ist der Preis für leichte Federn. Zum Beispiel wird Artikel Nummer eins etwa zehn kosten. Artikel Nummer zwei wird etwa 15 kosten. Artikel Nummer drei könnte etwa 25 kosten und so weiter. Und lass uns einfach alle Namen für die Artikel hier schreiben. Ich habe sie jetzt alle aufgeschrieben, alle Artikel. Jetzt müssen Sie für alle einen Preis angeben . Zum Beispiel dieser. Der erste Artikel könnte zehn für die Fackel kosten, er könnte 15 kosten. Vielleicht 2030, 40,60, sagen wir 7510125, und vielleicht 150 Auch hier braucht es Zeit, all das zu tun. Ich wähle einfach gleich aus, nehme das erste mal 1.2, vielleicht mache ich einfach weiter und ziehe ein paar davon. Jetzt kannst du sehen, wie mächtig das ist, denn du kannst Formeln in Google Sheets erstellen und du kannst diese Zahlen, die im Grunde per Formel erstellt werden, für dein Spiel importieren im Grunde per Formel erstellt werden , und du kannst sie verwenden. Das habe ich auch in Farm Tail verwendet , als ich es entwickelt habe. Lassen Sie uns die Anzahl der Dezimalstellen reduzieren , weil wir wirklich keine Dezimalstellen benötigen. Lassen Sie uns alle entfernen. Ja, wir können das machen. Klicken und ziehen Sie auch für die Zahlen, die Anzahl der Artikelplätze. Es hängt wirklich davon ab, wie viele Artikel Sie kaufen können. Aber nehmen wir an, du kannst für dieses Spiel 50 Artikel kaufen. Artikel 50 kostet das, wir können ihn einfach auf Artikel 50 ziehen, ungefähr so. Du musst es für den Rest von ihnen tun. Ich glaube, ich kann es so machen. Ja, ich kann sie hier tatsächlich alle auswählen und ich kann sie so hierher ziehen, und alles wird so gut sein. Okay, jetzt habe ich all diese Zahlen. Sie können anhand eines Datenblatts sehen, wie schnell es geht. Jetzt kann ich auf Datei klicken, auf Herunterladen klicken, CSV-Datei herunterladen. Jetzt können wir noch einmal weitermachen und den Namen so ändern. Jetzt kann ich zurück zum Motor gehen. Gehen wir innerhalb der Engine zum Ordner mit den Datentabellen. Lass uns das hier anklicken und hineinziehen . Es wird alle Informationen aktualisieren, wie wir hier sehen können. Jetzt sind wir bereit, dies zu verwenden. Lass uns alles speichern. Bevor wir das beenden, erstellen wir auch die Bibliotheksfunktion. Ich werde es öffnen, nur um konsistent zu bleiben. Ich werde diese am Anfang tatsächlich in F umbenennen , weil ich das normalerweise für meine Funktionen wie diese mache. Okay, lass uns jetzt eine neue Funktion machen. Nennen wir das „Artikelkosten ermitteln“. Jetzt hängen die Artikelkosten davon ab , wie viele Artikel wir gekauft haben. Denn wie Sie hier sehen können, es wirklich davon ab, wie viele Artikel wir gekauft haben, wenn wir zurückkehren hängt es wirklich davon ab, wie viele Artikel wir gekauft haben, wenn wir zurückkehren. Denn wenn wir einen Artikel gekauft haben, müssen wir dafür sorgen, dass der Artikel zwei kostet. Hier. Wenn wir bereits acht Artikel gekauft haben, müssen wir die Kosten für den nächsten Artikel , also Artikel Nummer neun, ermitteln, anstatt sie als Zeichenfolge anzugeben, wie wir es hier normalerweise für alle getan haben. Eigentlich haben wir hier eine Ganzzahl verwendet. Lassen Sie uns auch hier eine Ganzzahl verwenden. Lassen Sie mich eine Eingabe-Ganzzahl hinzufügen. Lassen Sie mich das eine Menge gekaufter Artikel nennen. Anzahl der gekauften Artikel. Wir haben diese Informationen bereits in der Spielerkarte. Was wir tun können, ist, dass wir diese Nummer nicht wirklich benötigen, aber wir müssen ihr eine hinzufügen. Sie haben aufgrund der Anzahl der Artikel, Nehmen wir an, Sie haben aufgrund der Anzahl der Artikel, die Sie gekauft haben, drei Artikel gekauft. Realistisch gesehen wollen wir den Preis für Artikel Nummer vier ermitteln. Sie würden diese Nummer nicht verwenden, aber Sie müssen ihr eine hinzufügen, weil Sie die nächste benötigen, den Preis für diese Nummer plus eins Und dann können wir sagen, die Datentabellenzeile abrufen, wie wir es bis zur Erstellung einer Tabellenzeile getan haben Wir müssen die Artikelkostendatentabelle verwenden. Jetzt können wir das hier einfügen, aber jetzt können Sie sehen, dass sie nicht kompatibel sind, aber Sie müssen es in eine Zeichenfolge übertragen, zwei Zeichenketten, und dann können Sie es aus einer Zeichenfolge in eine Namensvariable konvertieren. Also mach weiter und verbinde es. Jetzt können wir einen Rückgabeknoten erstellen, eine Rücksendung hinzufügen, das hier hinzufügen und das eine Artikelkosteninformation nennen. Denken Sie daran, darauf zu klicken und daraus eine reine Funktion zu machen, denn auch hier erhalten wir nur Informationen daraus. Testen wir es jetzt einfach, bevor wir diese Lektion beenden. Nur damit wir wissen, dass es tatsächlich funktioniert. Wenn ich zum Beispiel in den Blueprints-Spielmodus gehe, kann ich hier in der Grafik sagen, Informationen zu den Artikelkosten abrufen Und hier ist es. Und wir können es verwenden, wie wir wollen. Okay, machen wir das, kompilieren, speichern und fahren wir mit der nächsten Lektion fort. 82. 8.18 Item-Kostenfunktion abrufen: Jetzt können wir eine neue Funktion namens Artikelkosten abrufen erstellen eine neue Funktion namens Artikelkosten abrufen Versuchen wir, das innerhalb des Players zu machen , weil es am sinnvollsten wäre. Denn hier hast du die Anzahl der Münzen und wir arbeiten hier mit Münzen. Ich werde tatsächlich eine neue Funktion erstellen. Ich nenne das „Artikelkosten abfragen“. Versuchen wir herauszufinden, was wir hier tun müssen. Auch hier werde ich es in ein reines ändern weil wir nur paar Informationen über die Kosten für den Artikel erhalten. Wir haben gerade diese Datentabelle und Funktionsbibliothek erstellt steht, dass wir die Artikelkosten ermitteln und wir können diese verwenden. Wir benötigen die Information wie viele Artikel wir bisher gekauft haben. Denken Sie daran, wir haben diese Karte bereits. Das können wir also ganz einfach tun , indem wir „Finden“ sagen. Genau wie zuvor müssen wir den entsprechenden Artikel finden, wir benötigen tatsächlich den Artikelnamen. Wir brauchen hier eine Variable. Anstatt nur den Artikelnamen zu haben, klicken wir einfach hier oben. Da ich später hier weiß, ob wir das ändern, müssen wir auch den Artikelpreis auswählen . Wenn ich nur eine Rücksendung mache, damit Sie sehen können, was vor sich geht, erstelle ich hier einen Rücksendeknoten. Wir müssen die Kosten des Artikels zurückerstatten, weil das das eigentliche Ziel dieser Funktion ist. Wir müssen die Artikelkosten kennen. Jetzt brauchen wir das, je nachdem, lassen Sie uns hier einen ausgewählten Knoten erstellen. Es hängt davon ab, über welchen Artikel wir sprechen, und wir können diese anschließen. Aber das Problem ist, dass wir hier keine Zeichenfolge einstecken können. Denn wenn ich eine Zeichenfolge mache, mache ich jetzt eine Zeichenfolge und versuche, sie anzuschließen, ist sie nicht kompatibel. Ich denke, wir müssen die Aufzählung, die wir erstellt haben, tatsächlich zu unserer Artikelstruktur oder zur Struktur der Artikelinformationen hinzufügen erstellt haben, tatsächlich zu unserer Artikelstruktur oder zur Struktur der Artikelinformationen Nun, ich habe bereits gesagt, dass wir es möglicherweise in der Artikelinformation benötigen, und ich denke, das tun wir tatsächlich Lassen Sie uns das jetzt tatsächlich tun. Das ist sehr einfach, weil wir bereits alles haben, was wir brauchen. Wenn ich mich an die Aufzählung erinnere, haben Sie diese Artikelaufzählung bereits Gehen wir zu den Strukturen, öffnen wir die Artikelinformationen. Und der Grund, warum wir es hier hinzufügen müssen ist hier drüben. Ich kann hier einfach Artikel sagen, Artikelinfo. Und ich kann den Artikel einfach so hinzufügen, denn jetzt haben wir den Artikelnamen und wir haben auch die Aufzählung Fügen wir die Aufzählung zu dieser Struktur hinzu. Lass uns hier rüber gehen. Fügen Sie eine neue Variable namens item hinzu. Lassen Sie uns dies in die Artikelstruktur ändern , die ich zuvor erstellt habe. Kompilieren oder einfach speichern, lass mich es einfach hier nach oben unter den Namen verschieben. Speichere alles noch einmal. Jetzt müssen Sie zur Datentabelle zurückkehren. Sie müssen die Artikelinformationen öffnen . Jetzt müssen Sie hier natürlich rechts eine neue Spalte hinzufügen und diesen einen Artikel nennen. Kopieren Sie einfach alles hier und jetzt sind Sie fertig. Sie einfach die CSV-Datei herunter und benennen Sie diese um. Jetzt habe ich diesen schon, also werde ich ihn löschen. Ich werde es in Artikelinfo umbenennen und dann gehe ich zurück zur Engine hier drinnen. Gehen wir zu den Datentabellen und ziehen wir diese hier hinein. Und jetzt haben wir alle Informationen, die wir benötigen. Okay, speichern wir alles. Gehen wir jetzt zurück zum Player. Und was wir tun können, ist , das aufzuschlüsseln. Jetzt können wir den Namen M hinzufügen. Wir haben das, lassen Sie mich einfach alles hierher verschieben. Jetzt können wir den Artikelnamen hinzufügen. Das ist erledigt. Jetzt können wir das hier einstecken. Das ist also die Anzahl der Artikel, die wir gekauft haben. Es wird also automatisch der Preis für den nächsten Artikel ermittelt. , dass wir innerhalb dieser Funktion Denken Sie daran, dass wir innerhalb dieser Funktion eine hinzugefügt haben. Es geht also automatisch zum nächsten Artikel, um zu sehen, wie viel er kostet. Also jetzt haben wir das. Wir werden den Preis des Artikels auswählen, je nachdem, über welchen Artikel wir sprechen. Jetzt, wo wir diese Aufzählung haben, können wir sie einfach anklicken, hierher ziehen und hinzufügen Jetzt wissen wir bereits, über welches Element wir sprechen , weil wir es jetzt in unserer Datentabelle definiert haben In der Datentabelle wissen wir, über welchen Artikel wir sprechen. ausgewählt Abhängig von der Aufzählung wird automatisch der richtige Wert Fahren Sie einfach fort und verbinden Sie all diese miteinander. Und es wird automatisch einen Wert auswählen je nachdem, welchen Wert dieser Wert hier unten hat. In Ordnung, wir sind mit dieser Funktion fertig. Bevor wir das beenden, lassen Sie uns noch einmal etwas verbessern. Wenn ich zum Spielmodus zurückkehre. Denken Sie daran, dass wir das alles innerhalb der Spawnpunkte des Sets gemacht innerhalb der Spawnpunkte des Sets gemacht Eigentlich haben wir die Elementaufzählung bereits verwendet, aber bei den Get-It-Spawn-Punkten haben wir diesen Schalter für die Zeichenfolge verwendet sogar ein bisschen besser machen Jetzt, wo wir die Aufzählung haben , können wir es Lassen Sie mich das einfach löschen und sagen, ändern Sie das tatsächlich in Elemente Gehen Sie weiter und wählen Sie es aus. Das ist der Artikelname. Das ist in Ordnung. Wir können sagen switch on, wir haben switch on enumeration statt switch on string Es ist viel einfacher, weil es Ihnen automatisch alle Werte gibt , die Sie in der Aufzählung notiert haben der Aufzählung notiert Nochmals, mach einfach weiter und füge es hinzu. Jetzt können Sie während der Spieleentwicklung sehen, dass es einige Dinge gibt, die Sie in Zukunft benötigen könnten. Zum Beispiel wollte ich diese Aufzählung vorher nicht hinzufügen, aber jetzt ist es viel sinnvoller, sie im Spiel zu haben Es ist immer schön, zu deinen vorherigen Mechaniken zurückzukehren deinen vorherigen Mechaniken und Dinge hinzuzufügen , die besser sind, wenn du sie während der Entwicklung brauchst Jetzt, wo wir Gegenstände bekommen haben, ein Punkt. Denken Sie daran , dass wir auch zum Spieler gehen müssen. Also wenn ich das Spielerdiagramm öffne , weil du jetzt eine Ära hast. Denn denken Sie daran, dies ist das vorherige Problem, das wir zuvor hatten. Wir können einer Aufzählung keine Zeichenfolge hinzufügen, aber jetzt haben wir die Aufzählung innerhalb der Struktur Wir können es einfach hierher ziehen. Lass diesen Stift stehen und mach weiter und kompiliere. Mach einfach weiter und gestalte es so strukturierter. Wenn wir jetzt einfach auf die Platte klicken , um das Spiel zu testen und zu sehen ob alles so funktioniert, wie ich sehen kann, funktioniert alles genauso gut wie zuvor. Okay, jetzt ist das viel besser. Wir haben unsere neue Funktion zum Abrufen der Artikelkosten eingerichtet, und wir können damit die Kosten für den Artikel austauschen. Lass uns mit dem nächsten weitermachen. 83. 8.19 Steigende Artikelkosten: In Ordnung, willkommen zurück. Jetzt sind wir bereit, die Artikelkosten zu aktualisieren. Die Artikelkosten werden in der Benutzeroberfläche angezeigt. Lassen Sie uns hier die Artikelkarte des Shops für den Preis öffnen. Gehen wir zur Grafik. Bisher legen wir nur fest, dass der Preis hier in dem Event-Konstrukt, in dem wir den Preis festlegen, statisch ist. Lassen Sie uns das noch einmal innerhalb eines benutzerdefinierten Events tun, genau wie wir es für die Anzahl der Artikel getan haben . Lassen Sie mich hier mit der rechten Maustaste klicken und ein neues benutzerdefiniertes Ereignis erstellen. Nennen wir dieses eine Update Artikelkosten. Nun zu den Artikelkosten, das Ziel hier ist im Grunde nur , den Text festzulegen. Also werde ich einfach wie zuvor den Text zum Artikelpreis verwenden. Das ist letztendlich das, was wir jetzt für den Artikeltext tun müssen . Auch hier kommt es darauf an, über welchen Artikel wir sprechen. Lass mich hier einfach mit der rechten Maustaste klicken. Dieser Artikel hat gekostet, weil wir jetzt diese Funktionsbibliothek erstellt haben . Wir können das nehmen und es aufschlüsseln. Aber jetzt können Sie sehen, dass das Problem darin besteht, dass wir nicht wissen , welches wir verwenden sollen. Denken Sie daran, dass wir, anstatt diesen zu verwenden, einfach einen innerhalb des Players erstellt haben. Lass uns stattdessen diesen verwenden. Wenn ich den Spielerbauern nehme und das hier nehme und sage, die Kosten für den Gegenstand ermitteln, haben wir diese Funktion vom Spieler Jetzt müssen wir nur noch den Gegenstand einstecken, weil wir das alles in der vorherigen Lektion gemacht haben , wo wir ihn auswählen, je nachdem, welchen Gegenstand wir ihm geben. Gehen wir zurück zum Artikel Code. Lass mich das hier oben einfach löschen . Die Artikelinformationen haben wir schon, also werde ich sie einfach einstecken. Jetzt. Wir haben die Artikelkosten. Jetzt können Sie sehen, wie einfach es ist, den Artikel so zu kosten. Es sieht auch viel sauberer aus, wenn man Dinge zu Funktionen macht. Lassen Sie mich das alles hier neu anordnen. Jetzt haben wir die Artikelkosten. Anstatt es hier oben als statischen Wert festzulegen, werde ich es einfach löschen. Klicke auf diesen und verstecke unverbundene Pins hier oben. Was wir sagen können, ist die Aktualisierung der Artikelkosten. Und nenne im Grunde einfach die Funktion, die wir sind, das Ereignis, das wir hier unten erstellt haben. Also aktualisiere auch diese. Okay, das funktioniert jetzt. Das Problem ist, dass wir es genauso wie den Preis aktualisieren müssen , für alle anderen Artikel oder andere Orte, an denen wir den alten Artikelpreis verwendet haben. Denn wenn ich das nur hervorhebe, wenn ich einfach mit der rechten Maustaste auf diese Artikelinformation klicke, denke daran, dass wir hier die Kosten für den Artikel oder die Münzen haben . Und wir brauchen es nicht mehr wirklich, weil wir es von diesem bekommen. Was wir tun können, ist, mit der rechten Maustaste darauf zu klicken und Referenzen zu finden. Und ich werde auf das kleine Symbol hier unten klicken, weil ich die Referenzen in allen Bauplänen finden muss . Wenn ich auf den ersten klicke, schaue ich mir gerade an und sehe wo ich diese Münzen verwende, weil ich sie gegen diesen austauschen muss Nehmen wir noch einmal den Spieler, sagen wir, den Artikelpreis ermitteln. Stecken Sie den Artikel ein, bei dem es sich um diesen handelt. Stecken Sie es hier ein. Anstatt diesen Artikelpreis zu verwenden, können wir stattdessen diesen verwenden. Lass uns das löschen. Sie müssen es austauschen, da dies der korrekte Artikelpreis ist, den Sie gerade verwenden. Gehen wir zurück zu unseren Referenzen und klicken wir auf die nächste. Zeigt nichts an , da dies nur der Artikelname ist . Klicken Sie auf den nächsten. Auch dies sind wieder die Artikelkosten. Mal sehen, ob wir das kopieren können. Lass mich das einfach kopieren, damit ich es nicht noch einmal auf den Artikel schreiben muss. Wir haben diese Informationen bereits hier. Stecken Sie es ein, verbinden Sie es, löschen Sie das. Lass es uns einfach hier drüben, kompilieren. Lassen Sie uns die Referenzen öffnen. Klicken Sie noch einmal auf den nächsten, hier ist nichts. Klicken Sie auf den nächsten. Jetzt sind wir im Player, also können wir es einfach von hier aus übernehmen. Hol es dir. Kosten. Und der Artikel ist hier. Und die Kosten, wir können es einfach wieder hier einstecken. benutzen wir nicht. Klicke darauf. Verstecken Sie unverbundene Pins wie diesen. Kompilieren. Gehen Sie noch einmal zu den Referenzen zurück. Klicken Sie auf den nächsten, Nichts hier. Klicken Sie erneut auf den nächsten. Und hier verwenden wir auch nicht die Artikelkosten. Jetzt können wir auf Plate klicken , um zu sehen, was passiert. Wenn ich jetzt auf Nach klicke, siehst du, dass die Artikelkosten nicht aktualisiert werden. Das liegt natürlich daran, dass wir dieses Ereignis „Artikelkosten aktualisieren“ nennen müssen . Das macht Sinn , wenn wir einen Artikel kaufen. Wenn ich zum Player gehe und wir zu diesem einen Kaufartikel gehen , nennen wir ihn hier. Rufen wir es immer dann auf, wenn wir zu dieser Map etwas hinzugefügt und die Anzahl der Artikel , die wir gekauft haben, aktualisiert haben, bevor wir die Farbe des Kauf-Buttons oder die Farbe des Texts aktualisiert haben. Lass es uns hier tatsächlich hinzufügen. Wenn ich einfach von hier wegziehe und sage Artikelkosten aktualisieren, verbinden wir es so. Das sollte gut funktionieren. Denken Sie daran, dass dieser Pin vom Shop-Artikel stammt, da wir eine Referenz von ihm hatten. Und lass mich einfach auf diesen klicken. Unverbundene Pins ausblenden, kompilieren, auf Abspielen klicken. Wenn ich jetzt kaufe, können Sie sehen, dass der Artikelpreis steigt. Es steigt, je nachdem, was ich in die Datentabelle geschrieben habe. Lassen Sie mich jetzt, nur um sicherzugehen, die Datentabelle öffnen und sehen, ob ich die Dinge richtig gemacht habe. Jetzt sollte Artikel Nummer 15 128 kosten. Artikel Nummer 15 kostet 128 und das ist richtig. Jetzt können Sie es sehen, und das sollte für alle funktionieren. Also dieser letzte, Artikel Nummer 11, sollte 929€ kosten Artikel Nummer 11 ist dieser, der letzte kostete 929, das ist also richtig Jetzt wissen wir, dass das richtig ist und dass es auch richtig berechnet wird Weil du jetzt sehen kannst, ob du auf den letzten klickst, sollte er 929 subtrahieren Und wenn wir hier drücken, ist das auch der Fall, alles funktioniert einwandfrei Speichern wir alles und fahren wir mit dem nächsten fort. 84. 8.20 Das Item-Tooltip-Widget entwerfen: Was ich als Nächstes tun möchte, ist, wenn wir auf Spielen klicken und die Maus über Ich möchte ein paar haben, einen Tooltip, der dir zeigt, wie viel Schaden pro Sekunde du bekommst oder Schaden du pro Sekunde bekommst, wenn du diesen Artikel kaufst Lass uns weitermachen und einen Tooltip erstellen. Klicken wir mit der rechten Maustaste auf die Benutzeroberfläche und erstellen Sie ein neues Widget, einen Blueprint Nennen wir diesen einen WB-Tooltip. Tooltip, wie dieser. Und lass es uns jetzt öffnen. Auch hier müssen wir wie gewohnt eine Leinwand hinzufügen, bevor wir mit dem Entwerfen beginnen. Dann glaube ich, ich gehe einfach hier rein. Ich werde dieses kopieren, dieses Overlay und dieses Bild Ich werde C und V hier drinnen kontrollieren. Ich werde hier oben auf den Vollbildmodus klicken. Und wählen Sie stattdessen erneut die gewünschte Option auf dem Bildschirm aus. Für den Ankerpunktsensor ist es rechts 0,5 in der Ausrichtung für X und Y. Dann klicken Sie ebenfalls auf Größe zum Inhalt. Und Position x und Y sollten Null sein. Y Null, jetzt ist es in der Mitte. Okay, jetzt fangen wir an, es zu entwerfen. Ich mache einfach weiter und lösche dieses Bild sowie dieses horizontale Feld. Ich ziehe den Text einfach hierher. Lösche das horizontale Feld. In diesem Fall werde ich die Größe dieses Textes reduzieren. Ich denke, es ist vielleicht zu groß. Versuchen wir es stattdessen mit 18. Für den Schatten-Offset. Lass mich stattdessen zwei hier schreiben. Okay, für dieses Bild schreibe ich, anstatt dass das Bild eine bestimmte Größe hat, anstatt dass das Bild eine bestimmte Größe hat, einfach 32, was die Standardgröße ist. Und wir können es einfach an den Inhalt von innen nach außen anpassen. Fangen wir mit dem Text an. Was den Text angeht, müssen wir zum Beispiel sagen, dass jede Fackel fünf DPS liefert Das wollte ich sagen. Anstatt es nur als Text zu haben, möchte ich tatsächlich ein vertikales Feld hinzufügen , weil ich etwas anderen Text darunter benötige. Lassen Sie uns ein vertikales Feld hinzufügen. Füge den Text zu diesem hinzu. Und fahren Sie einfach fort und drücken Sie D , um es hier unten zu duplizieren. Ich will damit sagen, dass es dir anscheinend sagen wird, wenn du hier oben zum Beispiel Null DPS machst , wenn du hier oben zum Beispiel Null DPS , wie viel DPS dieser Gegenstand gibt Und DPS ist übrigens, falls du es nicht weißt, Schaden Also, wie viel Schaden pro Sekunde wird dieser Artikel anrichten, wenn Sie ihn kaufen ? Wie viel machst du derzeit? Das ist, wenn zum Beispiel 15 davon, es sollte 15 mal fünf heißen. Und es wird dir sagen, wie viel DPS du für die Farbe verwendest Ich werde einfach diese Farbe kopieren, die wir hier haben. Füge es in dieses ein. Und füge es auch in dieses ein. Jetzt denke ich, dass ich ihm auch etwas Platz geben werde. Hier können wir ihm zum Beispiel einen Abstandshalter zwischen den beiden Texten geben einen Abstandshalter zwischen den beiden Texten Geben wir ihm ein Leerzeichen von zehn und Y. Und geben wir dem vertikalen Feld auch etwas Schreiben wir 30 und den Abstand, sodass wir jetzt einen gewissen Abstand für den DPS haben Ich möchte auch die Textfarbe ändern , weil ich finde, dass es besser aussieht , wenn wir hier ändern, wie sehr DPs die Textfarbe mögen, weil sie einfacher zu Nun, wir können es nicht wirklich nur mit einem Text machen , weil es sonst die Farbe des gesamten Textes ändert Stattdessen müssen wir diesen Text duplizieren, indem wir auf Strg D klicken . Fügen wir ihn in ein horizontales Feld ein, weil wir ihn nebeneinander haben müssen. diese beiden zu einem horizontalen Feld hinzufüge, ich diese beiden zu einem horizontalen Feld hinzufüge, lösche ich die fünf DPS aus diesem und dem anderen Ich werde den gesamten anderen Text bis auf die fünf DPS wie diesen löschen bis auf die fünf DPS wie Denken Sie daran, hier ein Leerzeichen hinzuzufügen. Also klicke ich auf diese eine Werbefläche. Nun, so sieht es aus. Jetzt können Sie sehen, dass der Raum etwas zu groß ist. Ich werde das Leerzeichen tatsächlich löschen und stattdessen ein Leerzeichen hinzufügen, weil wir jetzt kontrollieren können, weil wir jetzt kontrollieren können wie viel Abstand zwischen den Zeichen ist Und ich werde vier in das X schreiben . Ich finde, das sieht viel besser Lass uns das Gleiche hier unten tun. Ich werde diesen einfach duplizieren. Eigentlich, lösche den hier unten. Zieh es so unter dem Abstandshalter runter. Dann können wir hier unten zum Beispiel Null DPS schreiben hier unten zum Beispiel Null DPS Wir können derzeit mit null DPS schreiben. Ich möchte zum Beispiel sicherstellen, dass dieses horizontale Feld zur Mitte ausgerichtet ist, ebenso wie dieses andere horizontale Feld ebenfalls zur Mitte ausgerichtet Lassen Sie uns nun die Farbe der fünf DPS oder des DPS-Textes hier oben ändern fünf DPS oder des DPS-Textes hier oben Ich werde es in etwas Violettes wie dieses ändern. Du kannst versuchen, die Farbe zu finden , die du magst, vielleicht so etwas. Was die Sättigung angeht, möchte ich nicht, dass sie zu gesättigt sonst ist sie etwas zu schwer zu lesen. Ich werde es auf etwa 0,42 einstellen . Das ist für die Lautstärke, eins ist in Ordnung Klicken Sie auf Okay, das ist ein anderer Text. Jetzt können Sie ihm etwas mehr Sättigung verleihen. Zum Beispiel 0,445 Sie können dies auch in den anderen kopieren Jetzt möchte ich auch die Schattenfarbe darunter ändern die Schattenfarbe darunter weil sie nicht mehr passt. Ich werde das einfach hier oben auf der Grundlage dieser beiden kopieren. Ändere es so, dass es etwas sehr Dunkles wie dieses ist. Vielleicht 0,4, so etwas wie 0,4 die Cola. Dann mach weiter und kopiere das über die Schattenfarbe hinaus und sieh es dir an, und ich denke, es sieht viel besser Lassen Sie mich diesen Wert hier oben stattdessen auf 0,4 ändern. Bei der Farbsättigung kopiere ich diese Farbe einfach nach unten. Und ich werde die Konturfarbe auch hier unten kopieren . Jetzt können Sie sehen, dass es eine andere Farbe hat und viel einfacher zu lesen ist. Ich glaube, wir sind mit der Gestaltung dieses Modells fertig. Lass uns mit dem nächsten weitermachen. 85. 8.21 Aktualisieren der Tooltipp-Informationen: Lassen Sie uns nun weitermachen und die Tooltip-Benutzeroberfläche hier aktualisieren. Gehen wir zur Grafik und aktualisieren wir die Informationen tatsächlich Ich werde das alles löschen. Und lassen Sie uns noch einmal mit der rechten Maustaste klicken und ein neues benutzerdefiniertes Ereignis namens Update Tooltip UI Nun zu diesem Thema, was wir im Grunde tun wollen, ist, den Text dieser zu ändern Der erste, siehe hier, da steht der Name des Artikels. Wir brauchen hier einen dynamischen Wert, wir brauchen den Namen jedes Elements. Klicken Sie auf dieses, ich nenne es einfach, es gibt PS. Dieser Text hier oben. Ich nenne es einfach, wie viel Schaden pro Sekunde wird dir dieser Artikel geben? Wie DPS wird dieser Artikel funktionieren? Oder wie viel du hier oben machen wirst. Ich nenne es einfach PS. Ich nenne es einfach genauso , gibt DPS-Betrag Das ist der Betrag hier unten. Ich nenne es einfach PS. Das ist die Menge an PS. Okay, lassen Sie uns kompilieren und sagen wir, gehen wir jetzt zurück zur Grafik. Fangen wir mit dem gibt P an, dem ersten Text. Wir wollen den Text einfach wie gewohnt so einstellen. Denken Sie jetzt daran, was ich vorhin gesagt habe. Ich habe bereits gesagt, dass Sie, wenn Sie einen dynamischen Text wie diesen haben, einen Formattext verwenden müssen. Schreiben wir von hier aus und sagen Text formatieren. Schreiben wir einfach denselben Satz. Da steht, dass jeder geben soll. Was wir hier schreiben müssen, ist jeder. Und dann müssen wir die geschweifte Klammer öffnen , weil die Fackel ein dynamischer Wert ist Wir sagen einfach den Elementnamen und schließen ihn mit den geschweiften Klammern (Enter). Sie können sehen, dass jeweils eine Eingabe erscheint und der Elementname so aussieht Und jetzt können wir den Artikelnamen eingeben, wir benötigen tatsächlich die Artikelinformationen. Um das zu tun, fügen wir hier einfach einen Pin hinzu, ändern ihn in die Artikelinformationsstruktur und nennen ihn Artikel. Jetzt können wir das nehmen, wir können es kaputt machen und wir können den Artikelnamen nehmen und ihn hier einstecken. Und es wird korrekt aktualisiert. Okay, das ist fertig. Schauen wir uns als Nächstes diese Menge an DPS an. Nehmen wir, gibt den PS-Wert an und stellen den Text noch einmal ein. Auch jetzt brauchen wir im Grunde einen Formatierungstext wie zuvor. Also mach weiter und nimm das. Anstatt das zu sagen, können wir EPS-Betrag sagen und wir können DPS sagen, hier die Zahl, und danach den Text DPS Jetzt müssen wir den DPS-Betrag eingeben. Jetzt haben wir das nicht Wir müssen es tatsächlich hinzufügen und wir müssen es dem Artikel hinzufügen , weil jeder Artikel, den wir kaufen seine eigene Menge an DPS haben sollte Gehen wir zu den Blueprint-Strukturen und öffnen wir die TM-Informationen Fügen wir eine neue Variable namens DPS oder Schaden pro Das liegt an dir. Verwandle es in ein Float , speichere, speichere alles. Denken Sie jetzt daran, dass Sie es auch über Google Sheets zur Datentabelle hinzufügen müssen . Aber vorerst öffne ich nur die M-Informationen. Du kannst hier einfach schreiben, was du willst. Ich werde einfach 10.20 und 30 oder vielleicht 50 schreiben. Ich werde es nur für die ersten drei schreiben, nur zum Testen. Ich brauche es jetzt wirklich. Wir brauchten nur den Wert hier in der Artikelinformation. Jetzt hast du dieses DPS, mach weiter und schließ es hier Und das sollte gut funktionieren. Lassen Sie uns nun für den Rest das Doing DPS nehmen. Jetzt. Es ist der Text hier unten. Es wird heißen, dass ich es derzeit tue. Jetzt können Sie hier sehen, dass wir keine dynamischen Werte haben und wir diesen Text nicht wirklich ändern müssen. Wir müssen diesen Text eigentlich nicht manipulieren. Wir müssen nur diesen ändern. Gehen wir zurück und nehmen den Betrag namens Geschenke, PS-Betrag. Stellen Sie stattdessen Text ein. Wir müssen es auf den Betrag einstellen. Ich werde diesen einfach kopieren. Und dieser zeigt die Gesamtmenge an DPS für diesen Artikel an, die Sie verwenden können Ich werde hier einfach die Gesamtmenge an DPS und danach nur noch DPS schreiben Gesamtmenge an DPS und danach nur noch DPS Ich habe es nicht angeschlossen. Die Gesamtmenge an DPS hängt nun davon ab, wie viele Artikel Sie gekauft haben Und denk dran, das haben wir bereits im Player. Wir brauchen einen Hinweis auf den Spieler. Lass uns das machen. Hier ist es übrigens, Spielercharakter, versuche das selbst zu machen, wenn du kannst. Weil ich denke, dass du es schaffen kannst. Wir haben bereits die Variable, die Kartenvariable innerhalb des Players, die Sie verwenden müssen, sagen wir, es ist eine Spielerreferenz aus der Blueprint-Oberfläche Mach weiter und verbinde dich. Jetzt hieß es Item Spot. Mach weiter und hol dir diese Karte hier. Nun müssen wir anhand dieser Karte den Gegenstand finden, mit dem wir arbeiten. Ich ziehe hierher und sage Finden. Und wir müssen den Gegenstand finden. Und wenn wir den Artikel finden, wird es uns sagen, wie viele von diesem Artikel wir gekauft haben. Ziehen wir das einfach ganz hierher. Jetzt haben wir die Anzahl der Artikel, die wir gekauft haben. Um den gesamten Schaden pro Sekunde zu berechnen, musst du die Anzahl der Artikel, die du gekauft hast, mit der Anzahl der DPs oder der Menge pro Sekunde multiplizieren , die jeder Artikel hat Nehmen wir diesen und multiplizieren ihn mit der Menge an PS, die jeder Artikel Und damit haben wir die Gesamtmenge an DPS, die wir hier anschließen können Mach weiter und stecke das auch hier ein. Jetzt sind wir tatsächlich fertig, also machen Sie weiter und klicken Sie auf „Nicht verbundene Pins ausblenden Machen Sie weiter und doppelklicken Sie darauf, um neue Kunstnotizen zu erstellen und Ihren Code zu organisieren Ordnung, jetzt ist das organisiert und wenn das fertig ist, kompilieren Sie und speichern Sie alles. Und jetzt sind wir mit der Aktualisierung des Dual-Tip I fertig. 86. 8.22 Das Tooltip-Widget anzeigen: Jetzt ist es an der Zeit, dieses von uns erstellte Tooltip-Widget anzuzeigen dieses von uns erstellte Tooltip-Widget Um das zu tun, müssen wir das innerhalb des Shop-Artikels Cod machen. Denken Sie daran, dass dieser Tooltip angezeigt werden soll, wenn wir auf Play klicken . Immer wenn wir mit der Maus über diese Karten fahren, sie sich tatsächlich im Shop-Artikel. Das machen wir Lass uns hier reingehen. Ich möchte dieses Widget anzeigen. Immer wenn ich mit der Maus über etwas auf dieser Karte fahre, klicke ich einfach auf dieses Overlay und mache es Das bedeutet, dass überall dort, wo wir den Mauszeiger auf dieser Karte bewegen, sie angezeigt wird Klicken Sie auf dieses Overlay. Ich gehe hier in das Menü Verhalten und klicke auf Erweitert Hier unten siehst du dieses Tool namens Tool Tip Widgets. Fahren Sie fort und klicken Sie auf Binden und erstellen Sie eine Bindung. Dann mach weiter und erweitere das. Jetzt brauchen wir das Widget, das wir erstellt haben, das Shop-Tooltip-Widget Wir haben keinen Verweis darauf erstellt , da wir normalerweise Verweise auf die Benutzeroberfläche innerhalb der Play-Steuerung erstellen Verweise auf die Benutzeroberfläche innerhalb der Play-Steuerung Für dieses Widget haben wir jedoch nicht wirklich etwas erstellt. Ich möchte es nicht hier drinnen erstellen , wie wir es bisher getan haben. Weil es nichts ist, was man öffnen und schließen kann. Es ist einfach etwas, das immer dann erscheint, wenn Sie mit der Maus über Karten Anstatt es hier zu tun. Was ich tun werde, ist normalerweise, dass meine Ereignisse, die ich in meinen Spielen finde, als Initialisierungsschicht bezeichnet In diesem Event füge ich alles hinzu, was ich brauche, was passieren soll, wenn ich das Spiel öffne Zum Beispiel muss dieses Tooltip-Widget erstellt werden, sagen wir, Widgets erstellen. Und fahren Sie fort und wählen Sie das Tooltip-Widget aus, diesen einen Shop-Tooltip Und mach weiter und mach daraus eine Variable namens Shop-Tooltip Zum Beispiel Shop Tool, Okay. Das ist jetzt erstellt, und denken Sie auch daran, es hier hinzuzufügen. Ich werde das tun, bevor ich die Karten erstelle. Jetzt ist es nicht wirklich wichtig. Aber nur um hier sauber zu bleiben. Der Spieler wurde initialisiert. Jetzt rufen wir dieses Ereignis hier unten auf, stellen es in Verbindung, was auch immer ich brauche, um zu passieren Wenn ich das Spiel öffne, füge ich es dem ersten Spielerevent hinzu. Jetzt haben wir einen Verweis auf dieses Tooltip-Widget. Also, was wir jetzt innerhalb der Karte machen können, wir können uns den Player-Controller holen, den Player-Controller holen Dann können wir von hier aus weiterleiten und sagen, die Player-Controller-Referenz aus dem Widget-Blueprint abrufen Player-Controller-Referenz aus dem Widget-Blueprint Jetzt können wir diesen nehmen und Tooltip sagen, und wir können dieses Widget bekommen, das wir gerade erstellt Für dieses Widget müssen wir, wenn ich zurück zum Widget-Shop gehe, Tooltip hier aufrufen wenn ich zurück zum Widget-Shop gehe . Denken Sie daran, dass wir die Tooltip-Benutzeroberfläche aktualisiert haben Nennen wir diesen einen Update-Tooltip, den ich angeschlossen habe. Jetzt braucht es einen Artikel , weil wir ihn verwenden, um im Grunde alle Informationen zu aktualisieren, die wir haben. Das liegt daran, dass wir uns im Shop-Artikelcode befinden und wir diese Artikelinformationen zuvor erstellt haben, die wir auch hier verwendet haben, um die Artikelinformationen zu aktualisieren. Nehmen wir diesen und stecken ihn hier ein. Und dann verbinde das. Denken Sie auch daran, dieses Widget-Tool hier mit Putt und dem letzten Knoten zu verbinden hier mit Putt und dem letzten Knoten zu Auch hier können Sie doppelklicken. Sie haben sich so organisiert. Okay, das sollte funktionieren. Wenn wir kompilieren und alles speichern. Und wenn ich auf Play klicke, kannst du jetzt sehen, dass es tatsächlich mit dem richtigen Namen für das Objekt angezeigt wird. Sie können sehen, dass jeder Lauf eines Gegenstands oder jeder Lauf von Zeit angezeigt wird, und der Beschützer schützt jeden Königshelm, jede Königskrone und so weiter Jetzt wird auch der Tooltip mit den richtigen Informationen angezeigt . Jetzt gibt es ein Problem. Wenn ich jetzt erneut auf Play klicke und etwas kaufe, siehst du, dass kein DPS und nichts wirklich angezeigt wird Lassen Sie uns nun versuchen, es zu schließen und überprüfen wir in der Datentabelle, ob wir die Dinge richtig geschrieben haben Wenn ich die Artikelinformation öffne, sollte der erste DPS, die Lichtfeder 1020 sein, dann 50. Und wenn ich auf Play klicke und ankreuze, dass der erste Wert 1.020,50 sein sollte und ich sehe, dass hier nichts angezeigt Aber du kannst hier sehen, dass jedes Mal, wenn ich etwas kaufe, es tatsächlich korrekt angezeigt wird Wenn ich meine Maus bewege und wieder mit der Maus drüber fahre, wird 20 DPS angezeigt Schauen wir uns an, wo es schief geht. Wenn ich das Shop-Tools-Widget öffne, gibt es mir die Informationen hier, erste wurde aufgerufen, DPS Dieser gibt den DPS-Betrag an. Das ist richtig Schauen wir uns an, wie der DPS-Betrag angegeben ist und wie dieser festgelegt wird Schauen wir uns auch den anderen Teil des Codes an, und hier geht es tatsächlich schief Weil ich den angegebenen DPS-Betrag verwende, anstatt den DPS-Betrag zu verwenden, ist das falsch Lassen Sie mich diesen hier einfach löschen und kompilieren. Klicken Sie auf Play und wenn ich mit der Maus darüber fahre, wird es jetzt korrekt angezeigt Das lag daran, dass ich den Text hier falsch gesagt habe. Text, der EPS macht, ist der richtige und gibt an, dass DPS auch korrekt war Okay, wenn ich jetzt etwas kaufe, kannst du sehen, dass es immer noch Null anzeigt, wenn ich gerade Aber wenn ich mich davon entferne und wieder dorthin übergehe, können Sie sehen, dass es korrekt angezeigt wird. Wenn ich mich entferne oder zu ihr gehe, wird sie korrekt angezeigt. Bei den derzeit 30 DPS müssen wir den aktuellen DPS wie an einem anderen Ort aktualisieren , da er nicht sofort aktualisiert wird Was wir tun können, ist, dass ich dieses Update bei jedem Kauf eines Artikels ToolPi aufrufen kann dieses Update bei jedem Kauf eines Artikels ToolPi Wenn ich alle schließe, gehe ich zurück zu den Bauplänen Öffne den Player hier. Wir haben diesen einen Kaufartikel gemacht. Was wir hier mit dem Kaufartikel machen können , ist, dass ich ihn einfach hier aktualisieren kann. Am Ende brauchen wir den Player-Controller. Ich nehme den Player-Controller und erhalte Tooltip-Widget , das wir erstellt haben. Lassen Sie uns dann jedes Mal, wenn wir einen Artikel kaufen, die Update-Tooltip-Benutzeroberfläche ausführen jedes Mal, wenn wir einen Artikel kaufen, die Update-Tooltip-Benutzeroberfläche Und was ist der Artikel? Es ist dieser, den wir hier eingegeben haben. Nehmen wir das und schließen es wieder an. Organisiere es einfach so. Und lass uns kompilieren und auf Play klicken und sehen, was passiert. Wenn ich jetzt kaufe, können Sie sehen, dass die Schadenssumme pro Sekunde sofort aktualisiert wird und dass es auch korrekt aktualisiert wird, je nachdem, welches GPS wir erstellen. Um das zu beenden, öffne hier dein Google Drive. Lass uns die Level-Informationen finden, die Artikelinformationen hier, Artikelinformationen und danach, was die Münzen kosten. Lassen Sie uns DPS hinzufügen. Für das TPS schreibe ich einfach für das erste Element, es macht fünf DPS und dann sagen wir einfach gleich Ich werde einfach Zufallszahlen mit 1,5 multiplizieren lassen . Ich werde es einfach bis hier unten machen Ich werde einfach alle Dezimalstellen entfernen , weil ich sie nicht benötige. Und wir können es ungefähr so machen. Man kann auch sagen, multipliziert mit 1,8 Wir richten tatsächlich mehr Schaden an wir nun diese CSV-Datei herunter und denken Sie daran, diese Datei umzubenennen und T item info umzubenennen Fahren Sie fort und öffnen Sie das Projekt. Gehen Sie zu den Datentabellen, fahren Sie dann fort und importieren Sie die Artikelinformationen hierher. Lassen Sie uns die Artikelinformationen überprüfen, um sicherzustellen , dass TPS vorhanden ist. Und das ist es auch Und so können Sie jetzt sehen jeden Artikel die richtige Menge an DPS angezeigt wird Und wenn Sie etwas kaufen, wird der aktuelle DPS korrekt angezeigt Offensichtlich machen wir momentan nicht wirklich DPS, weil wir keinen automatischen Schaden haben Aber zumindest funktioniert unser System jetzt , sodass wir den Kurs fortsetzen können 87. 9.01 Schäden automatisch anwenden: Es ist jetzt an der Zeit, dem Feind automatisch Schaden zuzufügen Und das wird normalerweise in Clicker-Spielen gemacht, wenn du es kaufst Und es verursacht Schaden pro Sekunde. Es sollte es automatisch tun, anstatt dass du weiter auf den Feind klickst. Lass uns weitermachen und das tun. Lass uns das im Player machen. Gehen wir zurück und gehen in den Player. Jetzt haben wir schon etwas mit dem Schaden hier drinnen gemacht . Im Inneren des Spielers, oder eigentlich war es im Inneren des Feindes, wo wir hier etwas Schaden angerichtet haben. Lasst uns nun etwas Schaden im Inneren des Spielers anrichten. Das ist jetzt der Spieler, der Schaden anrichtet. Lassen Sie uns mit der rechten Maustaste klicken und ein neues benutzerdefiniertes Ereignis erstellen. Nennen wir das Auto Damage. Wird bei diesem automatisch Schaden anrichten. Um den automatischen Schaden zu verursachen, brauchen wir etwas, das sich wiederholt. Wir brauchen einen Looping-Code , der ständig läuft und der nie aufhört und Schaden anrichtet Sie haben so etwas wie einen Timer. Wir haben etwas, das Event genannt wird. Stellen Sie den Timer nach Ereignis ein. Sie haben auch etwas, das nach dem Funktionsnamen set tim genannt wird. Jetzt sind sie sich ähnlich. Diese beiden Funktionen sind ähnlich. Normalerweise benutzen wir sie, wenn wir etwas Looping brauchen. Wir verwenden den Delay-Node immer dann, wenn wir Code verzögern und danach etwas tun müssen Code verzögern und danach etwas tun Denkt daran, dass wir den Delay-Node innerhalb der feindlichen Basis verwenden. Wenn ich hier reingehe, verwenden wir das, um den Code tatsächlich zu verzögern , weil wir darauf gewartet haben, dass der Flip vorbei ist. Wir haben den Code um die Länge des Flipbooks verzögert und dann überprüft, ob der Spieler oder der Feind tot war oder nicht. Hier nutzen wir die Verzögerung. Wenn Sie etwas benötigen, das in einer Schleife läuft, muss der Code in einer Schleife laufen Es ist besser, einen Timer zu verwenden. Wir haben einen Timer nach Funktionsnamen und einen Timer nach Ereignis. Jetzt spielt es keine Rolle, welche Sie verwenden, da sie fast identisch sind. Eigentlich verwende ich beide, also habe ich nicht wirklich eine Präferenz. Ich kann Ihnen zeigen , wie man sie für das T benutzt . Lassen Sie uns zuerst den Timer nach Ereignis verwenden. Lassen Sie mich das hier rüberstellen und das hinauszögern. Lassen Sie uns das zuerst per Event verbinden. Du musst es dem Timer sagen. Wie schnell möchtest du loopen? Ich möchte zum Beispiel alle 0,1 Sekunden eine Schleife wiederholen. Das bedeutet, dass der Code alle 0,1 Sekunden ausgeführt wird . Der Code hier wird zehnmal pro Sekunde ausgeführt. Ich werde es auf Looping setzen. Jetzt brauchen wir eine Veranstaltung Ich werde das hier runterziehen , direkt bei der benutzerdefinierten Veranstaltung. Nennen wir das Auto Damage Loop. Welchen Code du auch schreibst, er ist jetzt raus und wird in einer Schleife wiederholt. Zum Beispiel, wenn ich von hier ziehe und eine Print-Zeichenfolge schreibe und sie sollte Hallo sagen und ich kompiliere. Jetzt dieser Autoschaden, du musst offensichtlich irgendwohin rennen und ich werde es einfach am Anfang ausführen. Spiel hier oben. Und lasst uns schreiben, Schaden anrichten. Jetzt veranstalten wir diese Veranstaltung hier. Und es wird diesen Timer ausführen, der den Code wiederholt. Kompilieren Klicken Sie auf Play. Es führt diesen Code tatsächlich aus und er läuft immer noch. Wie Sie hier sehen können, läuft es oder es sagt zehnmal pro Sekunde Hallo. Wenn ich zum Beispiel 0,04 schreibe und auf Play klicke, kannst du sehen, dass es viel schneller Wenn Sie nicht gut in Mathe sind, können Sie es jederzeit berechnen, indem Sie zum Beispiel 1/0 0,04 sagen. Das bedeutet, dass der Code 25 Mal pro Sekunde ausgeführt wird Nun ein Häkchen, vielleicht kennst du diesen ich dir immer sage , dass du Event nicht verwenden sollst Dieser sehr schlechte läuft tatsächlich bei, wenn Sie recht haben, 1/0 0,02, das ist tatsächlich 50 Mal, dieser Event-Tick läuft 60 Dieser ist eigentlich nicht einmal genug. Es läuft vielleicht 0.18 oder sogar niedriger. Wie Sie sehen können, ist Event Tick super, super schnell. Es läuft tatsächlich so. Das Complay, das ist das Event. Sie können sehen, der Timer ist viel optimierter. Sie können den Code nicht annähernd so schnell ausführen, aber Sie können immer noch die gleichen Ergebnisse erzielen, wenn ich ihn mit 0,05 ausführe . Das bedeutet, dass ich den Code 20 Mal pro Sekunde ausführe Das ist manchmal notwendig, denn wenn Sie den Code zu langsam ausführen, fühlt es sich an, als ob die Statusleiste hinterherhinkt, weil dadurch die Gesundheit auf diese Weise beeinträchtigt wird . Dies ist der Fall, wenn Sie den Timer zu langsam laufen lassen. Und das können wir tatsächlich sehen, wann immer wir das alles tun. Jetzt den Timer nach Funktionsnamen einstellen. Der Unterschied zwischen diesen beiden darin, dass eine Funktion in einer Schleife ausgeführt wird, eine Funktion, die wir hier erstellen. Ich werde diese tatsächlich verwenden, weil ich hauptsächlich diese verwenden möchte, weil sie den Code sauber hält. Ich muss mein Ereignisdiagramm nicht mit zufälligen Ereignissen schreiben oder spammen . Ich kann eigentlich einfach eine Funktion erstellen und sie ist versteckt, und für diese Funktion ist es viel sauberer Nennen wir es Autodamage. Lassen Sie uns diese Funktion auch hier einrichten. Es wiederholt den Namen, den Sie hier geschrieben haben. Es wird diese Funktion wiederholen. Denken Sie jetzt daran, dass Sie es genau so schreiben müssen , wie Sie es hier geschrieben haben. Damit es funktioniert, steige ich um 0,05 oder lass uns tatsächlich um 0,14 erhöhen. Jetzt versuchen wir das. Lass mich das löschen Lassen Sie mich das auch löschen. Lass es mich verbinden, lass uns das schreiben, es zu einer Variablen hochstufen, damit wir den Timer stoppen können, wenn wir ihn brauchen. Ich nenne es einfach Auto Damage Handle, denn wenn Sie die Maus darüber halten, wird angezeigt, dass es sich um einen Timer-Griff oder einen Damage-Handle handelt. Wir können es verwenden, um den Code zu stoppen oder den Timer zu stoppen. Nun, im Grunde genommen dieser Schaden, ich möchte ihn hier oben im Event ausspielen oder mit dem Spielen für den Spieler beginnen. Immer wenn wir das Spiel starten, wir an, den Orodamage zu Natürlich richten wir keinen Schaden an , wenn wir noch keine Artikel gekauft haben Gehen wir hier zur Funktion Oder Schaden. Genau wie zuvor möchte ich Schaden anrichten und jetzt ist der beschädigte Akteur der Feind. Und denken Sie daran, dass wir im Play-Controller einen Hinweis auf den Feind haben. Ich nehme den Player-Controller und suche nach gespawnten Feind, weil wir ihn zu einer Variablen gemacht haben , und verbinde ihn Was nun den Basisschaden angeht, werden wir in der nächsten Lektion damit arbeiten Im Moment schreibe ich nur fünf und das sollte gut funktionieren. Jetzt Flic, spiel. Sie können jetzt sehen, dass der Feind automatisch beschädigt wird Und es sieht gut aus. Aber wir müssen natürlich einige der Animationen hier korrigieren. Jetzt möchte ich dir zeigen , dass es sich verzögert anfühlt, wenn du dieses Mal sagst. Oder zu langsames Spiel, es sieht verzögert aus, es sieht von schlechter Wenn Sie es jedoch auf etwas wie 0,04 einstellen , was ich eigentlich setzen möchte, sieht es viel sauberer Je niedriger Sie es einstellen, desto sauberer wird es aussehen, so wie Sie können hier sehen, dass es viel reibungsloser läuft. Denken Sie jedoch daran, je niedriger Sie ihn einstellen, desto mehr werden Sie diesen Timer und desto mehr Ressourcen werden Sie in Ihrem Spiel verwenden und desto weniger optimiert wird es sein Ich möchte dir hier sagen, dass vier Timer versuchen sollten, ihn so hoch wie möglich einzustellen ohne das Aussehen des Spiels zu beeinträchtigen Wenn ich denke, dass 0,05 für Leggy steht, setze ich es auf 0,04 und ich werde mit dieser Zahl zufrieden sein Auch hier kannst du reingehen und sagen, was 1/0 0,04 ist . Das bedeutet, dass mein Code 25 Mal ausgeführt wird. Das ist gut Das ist in Ordnung. Viel besser als der Event-Tick , der 60 Mal pro Sekunde ist. Okay, jetzt sind wir mit all dem fertig und fahren wir mit der nächsten Lektion fort. 88. 9.02 Den Gesamt-DPS berechnen: Um die richtige Schadenssumme anzuwenden, müssen wir berechnen wie viel Schaden der Spieler pro Sekunde Da der Spieler all diese Gegenstände kaufen kann, müssen wir alles zusammenfügen und es dann als automatischen Schaden auf den Feind anwenden. Lassen Sie uns das tun, indem wir eine neue Funktion erstellen. Und dieser wird Update Total EPS heißen. Zuerst benötigen wir alle Artikel , die der Spieler gekauft hat. Nehmen wir diese Karte. Um das zu tun, haben wir zwei Funktionen. Wir haben zwei Knoten. Wir können einen benutzen, den man Schlüssel nennt. Was Schlüssel sind, ist die erste Spalte hier, die Zeichenfolge. Das nennt man Schlüssel. Wenn ich nach unten gehe und Werte sage, dann kannst du die Werte dieser Schlüssel abrufen. Wir haben hier Schlüssel , das sind die Zeichenketten, und dann haben wir die Werte. Jetzt brauchen wir alle Gegenstände , die der Spieler gekauft hat, also müssen wir die Schlüssel benutzen. Ich werde diese Schlüssel hierher bringen. Jetzt haben wir alle Elemente in einer Reihe. Ich werde sie alle durchgehen. Für jeden Loop, für jedes dieser Elemente wollen wir wissen, wie viel Schaden pro Sekunde sie machen Denken Sie daran, dass wir für den DPS die Option Get Item Info, Get Info haben , die wir aus der Funktionsbibliothek Machen wir weiter und holen uns das für den Artikelnamen. Lass es uns hier einstecken. Und jetzt können wir diese Struktur durchbrechen . Und jetzt haben wir die Menge an DPS Nun wieder die Menge an DPS. Sie hängt auch davon ab, wie viele Artikel wir von diesem ausgewählten Artikel gekauft haben , den wir gerade haben Wir müssen auch die Werte verwenden. Ich werde das hier kopieren und Werte angeben , weil wir wissen müssen, wie viel wir tatsächlich von diesen Artikeln gekauft haben. Bei den Werten werde ich von hier aus weiterleiten und „ get“ sagen , weil wir uns hier bereits in einer Endlosschleife befinden, sodass ich das nicht wiederholen muss Also sage ich einfach , besorgen Sie sich eine Kopie. Welchen Index möchtest du haben? Ich werde einfach den Indizes oder Indizes für diesen Artikel folgen , damit wir die richtige Anzahl von Elementen für den entsprechenden Artikel erhalten für den entsprechenden Artikel Was wir nun damit machen können, wir können sagen, das ist die Anzahl der Artikel multipliziert mit DPS Wenn wir zum Beispiel fünf von dem Artikel haben, heißt es fünf Mal Zum Beispiel sind zehn DPS zehn. Dann benötigen wir eine neue Variable , um den gesamten DPS zu speichern. Ich werde eine neue Variable namens Total DPS erstellen. Ich ändere es nicht in ein Float. Was wir jetzt tun können, ist die alte Menge an DPS, los, den DPS, den wir gerade berechnet haben , wir können ihn hier auf den neuen DPS setzen Wenn wir das nicht tun, wenn ich einfach alles verschiebe, wenn wir das hier machen und es verbinden, bedeutet das, dass jedes Mal, wenn es berechnet, dieses EPS tatsächlich auf diese Zahl gesetzt wird Und das wollen wir nicht, weil wir alle Elemente durchgehen und im Grunde alle Zahlen stapeln Und multiplizieren und multiplizieren und ergänzen Sie diese Variable weiter und ergänzen Sie diese Anstatt sie auf einen statischen Wert zu setzen, müssen wir den alten Betrag des gesamten DPS-Werts zu Und wir erhalten hier den neuen Betrag, und wir können hier im Grunde den gesamten DPS festlegen Jetzt haben wir den gesamten DPS. Und vielleicht bekommen wir auch eine Zahl oder nicht wirklich einen Dollar, aber wir zeigen einen Dollar an, wo es weiter berechnet wird und vielleicht wird die Zahl an einem bestimmten Punkt falsch angezeigt Was ich tun möchte, ist, dass ich, anstatt den gesamten DPS zu verwenden, eine neue Variable erstellen werde, eine lokale Variable namens Das ist eine lokale Variable, die nur innerhalb dieser Funktion existiert, in der wir uns gerade befinden Ich werde hier tatsächlich die lokale Variable verwenden , um die Menge an DPS festzulegen Denken Sie jetzt daran, dass die lokalen Variablen nicht außerhalb der Funktionen Wenn Sie das nächste Mal versuchen, den DPS zu berechnen, wird dieser Wert Null sein Diese lokalen Variablen werden jedes Mal gelöscht, wenn Sie versuchen, diese Funktion auszuführen Aus diesem Grund können Sie dies nicht außerhalb dieser Funktion verwenden. Im Grunde müssen wir, wenn wir die Schleife abgeschlossen haben und diese Gesamtmenge an DPS eingestellt haben, diese lokale Menge an DPS nehmen und wir können die gesamte DPS Sie können es so machen, oder Sie können es im Grunde direkt hier oben machen Es ist nicht wirklich wichtig, aber ich kann mir vorstellen, dass es in Zukunft eine Displaybox geben wird. Wenn nicht alles in Ordnung ist, können Sie hier einfach den gesamten DPS anstelle des lokalen Ich werde es einfach so machen. Und jetzt haben wir den gesamten DPS-Wert eingestellt und können alles speichern Wir können hier klicken, unverbundene Pins ausblenden, wenn Sie möchten, und wieder alles neu organisieren Nun, da wir die richtige Anzahl an TPS haben , die wir machen, gehen wir zur nächsten Lektion über und beenden den und beenden den 89. 9.03 Den richtigen Schaden anbringen: wir nun die korrekte Schadenssumme oder den gesamten Schaden pro Sekunde berechnet haben , gehen wir noch einmal zur automatischen Schadensfunktion über und lassen uns die richtige Schadenssumme berechnen Anstatt hier zu schreiben oder einfach den gesamten Schaden pro Sekunde hierher zu ziehen und ihn hier anzuwenden, ist das falsch, weil du auf Jetzt spielen klickst und etwas kaufst Und du kannst hier sehen, dass es momentan keinen Schaden anrichtet, weil wir dieses Update tatsächlich ausführen müssen, total Lassen Sie uns das tatsächlich im Player machen , wenn wir einen Gegenstand kaufen, weil wir den DPS aktualisieren müssen. Für den DPS werde ich das tatsächlich nach oder vor dem Spawnen des Gegenstands tun nach oder vor dem Spawnen Und ziehen wir es rüber. Ziehen wir die Gesamtpunktzahl für das Update mit ein , um sicherzustellen, dass sie bei jedem Kauf aktualisiert wird. Und wenn ich auf Jetzt spielen klicke und etwas kaufe, kannst du sehen, dass es pro Sekunde Schaden anrichtet Was ich jetzt machen möchte, ist, dass ihr hier den Schaden pro Sekunde sehen könnt , also für den ersten sollten es fünf sein, wenn ich nur einen kaufe. Aber wie Sie sehen können, verursacht es nicht fünf Schaden pro Sekunde. Jede Sekunde macht viel mehr. Der Grund dafür ist, dass wir unseren Timer laufen lassen. Wenn ich zum Ereignisdiagramm zurückkehre, läuft unser Timer bei 0,04. Wir lassen ihn nicht einmal pro Sekunde laufen Also, wie Sie hier sehen können, fünf neben der Lichtfeder. Jetzt werden wir fünf Schaden pro Sekunde verursachen, was richtig ist, aber wir machen fünf Schaden pro Sekunde verursachen, was richtig ist, es bei 0,04. Wir müssen tatsächlich eine Division machen , um die richtige Zahl pro Sekunde zu bekommen Lassen Sie uns das innerhalb des Autoschadens hier machen. Was wir tun müssen, ist im Grunde zu sagen, dass wir genau das gemacht haben, was wir zuvor gemacht haben, wo wir es hier gesagt haben Denken Sie an 1/0 0,04 und das gibt uns 25. Im Grunde läuft dieser Code 25 Mal pro Sekunde. Wir müssen die gesamte DPS durch 25 teilen , um die richtige Zahl zu erhalten. Lass uns das machen Sagen wir 1/0 0,04 Hier nehme ich, nehme ich klicke einfach mit der rechten Maustaste hier, teile und wähle das aus Wir sagen 1/0 0,04 Im Grunde genommen haben wir das in unserem Lassen Sie uns das tatsächlich in eine Variable umwandeln. Lassen Sie uns daraus eine Variable namens Auto Damage Tim Time machen. Jetzt können wir diese innerhalb des Autoschadens verwenden und sie hier einstecken. Und dividiere durch 11 geteilt durch die Zeit des Autoschadage-Timers, die 0,04 ist. Das ergibt uns 25. Wie wir hier gesehen haben , ergibt uns das 25. Was wir tun müssen, ist die Summe pro Sekunde geteilt durch 25, uns die richtige Menge an Schaden pro Sekunde ergibt Jetzt wird es korrekt fünf Schaden pro Sekunde anrichten. Wenn ich jetzt kompiliere und auf Play klicke und jetzt auf By für die Lichtfeder klicke, wird sie tatsächlich fünf Schaden pro Sekunde korrekt verursachen. Sag einfach 75, wenn es fertig ist. Und hier stand tatsächlich 75. Weil wir 5 Sekunden durchmachen und fünf mal fünf ist 25. Das ist richtig. Aber ich kann sehen, dass die Zahl hier mit Dezimalstellen angezeigt wird , und das gefällt mir nicht wirklich. Lass es uns reparieren. Lass es uns schließen. Gehen wir zurück zur Benutzeroberfläche. Lass uns die Gesundheitsleiste öffnen. Und hier in der Grafik für den Gesundheitsbalken fügen wir einfach den Float ein. Deshalb spielt es hier mit Dezimalstellen, wenn du den Feind triffst. Anstatt das zu tun, können Sie von hier aus ziehen. Wenn Sie die Funktionen nicht kennen, können Sie im Grunde einfach Floats schreiben Sie können versuchen, all diese durchzusehen. Aber im Grunde möchte ich entweder den Boden oder das Siegel verwenden . Was Boden und Siegel im Grunde sind, du kannst mit der Maus drüber fahren und du kannst sehen, was da steht. Da steht, dass es abgerundet wird, du kannst es sehen. Aus -1,6 wird -2,1 0,6 wird eins. Entweder das oder du kannst Seal verwenden . Ich denke, ich werde Seal verwenden. Daher werden aus 1,6 im Grunde zwei statt eins. Ich werde Seal verwenden, und Sie können sehen, dass es es in eine Ganzzahl umwandelt. Und denken Sie daran, dass eine Ganzzahl keine Dezimalstellen hat. Ich werde Alt gedrückt halten. Klicken Sie hier, um die Verbindung zu trennen und dann stattdessen diese Verbindung herzustellen. Jetzt haben wir also eine Ganzzahl. Und wenn ich auf Play klicke und die Lichtfeder kaufe, kannst du jetzt sehen, dass sie fünf Schaden pro Sekunde verursacht. Es werden keine Antidezimalstellen angezeigt, alles funktioniert einwandfrei. Aber wie Sie hier bei all den Effekten sehen können, möchte ich nicht, dass dieser Effekt eintritt. Lassen Sie uns in der nächsten Lektion weitermachen und all diese Probleme beheben. 90. 9.04 Den Hit-Effekt beheben: In Ordnung, jetzt sind wir mit dem Autoschaden fertig. Sie können hier jedoch sehen, dass wir diesen Effekt haben. Ich möchte nicht, dass dieser Effekt da ist. Also müssen wir etwas aus dem Code löschen. Wie Sie sehen können, ist auch das Abspielen der Todesanimation nicht falsch. Lass uns weitermachen und das alles reparieren. Lasst uns den Feind öffnen , denn der Schaden ist hier drinnen. Jetzt wird der Treffereffekt abgespielt, denn jedes Mal, wenn wir dem Feind Schaden zufügen, wird der Treffereffekt abgespielt. Lass uns weitermachen und das abschalten und schauen, was passiert. Ich klicke auf Spielen und kaufe etwas Schaden. Hier kannst du sehen, dass es richtig funktioniert. Die Todesanimation wird jedoch aus irgendeinem Grund nicht abgespielt. Ich glaube, das liegt daran, dass wir den Code viele Male wiederholen und er bleibt Wenn ich jetzt einfach dieses Todesereignis kopiere und versuche, es hier einzufügen, ergibt das keinen Sinn mehr, weil wir den Feind bei jedem Klick sofort töten werden den Feind bei jedem Klick sofort töten Und wie Sie hier sehen können, ist das nicht der richtige Ansatz. Was wir hier tun können, ist zu fragen, ob der Feind tot ist. Lass es uns hier versuchen. Ist der Feind tot? Weil wir nicht wirklich wollen, dass es den Treffereffekt erleidet. Wenn ich das einfach verbinde und versuche, auf Play zu klicken und ein paar Bände kaufe, sieht es jetzt richtig aus Und wenn der Feind stirbt, kannst du richtig sehen, dass der Feind stirbt Okay, also alles funktioniert. Wir haben den Treffereffekt deaktiviert und alles funktioniert. Wenn ich jetzt auf mich selbst klicke, kannst du sehen, dass ich keinen Treffereffekt habe. Also muss ich das auch für den Treffereffekt korrigieren. Wenn ich jetzt darauf klicke, also das ist der Mausklick, können wir stattdessen den Treffereffekt hier oben hinzufügen. Und wenn ich auf Abspielen klicke, treffe ich jetzt mit der Maus Man kann den Spieler sehen, der Gegner trifft, aber man kann auch sehen, dass die Animation gebucht ist. Ihr seht hier, wenn ich klicke, manchmal steht der Feind still. Und ich habe es wieder versucht. Aber ich glaube, der zweite, der gebucht wurde, liegt daran, dass wenn ich zu schnell klicke, du diesen sehen kannst. Die Todesanimation hatte ein Buch. Das liegt daran, dass hier in The is Dead diese Todesanimation sowohl für den Auto-Clicker als auch für Sie abgespielt den Auto-Clicker als auch für Sie Wenn Sie auf die Todesanimation klicken wird sie grundsätzlich zweimal abgespielt Und das wird die Animation buchen, weil du diesen Timer hier dauernd spammst und er nie richtig abgespielt wird Was wir tun können, diese sehr einfache Lösung, ist Schaden, den wir Da wir eine sogenannte Schadensart haben, können wir im Grunde angeben, ob es der automatische Schaden ist , oder ist es der Klick oder die Maus, der Schaden anrichtet? Um das ganz einfach zu machen, gehen wir zu den Bauplänen Und hier schreibe ich einfach Click Go to Blueprint Class, wir können nach der Schadensart suchen Wenn du nur nach Schaden suchst, kannst du ihn hier unten sehen, Schadensart Fahren Sie fort und wählen Sie das aus, nennen Sie es einfach Autoschaden. Nun, wir werden hier drinnen nicht wirklich auf Schäden eingehen. Wir brauchen im Grunde nur diesen Blueprint-Kurs. Sie können sich das so vorstellen, als würden mit Aufzählungen arbeiten, bei denen wir eine Liste haben , die im Grunde diese Klasse und einen Aufzählungstyp verwendet diese Klasse und einen Gehen wir zurück und gehen wir zum Player. Wie Sie hier im Player sehen können, konnten Sie, als wir den Schaden angerichtet haben, als wir den Schaden angerichtet haben, eine Schadensklasse festlegen Jetzt können wir sie auf den automatischen Schaden setzen , den wir gerade kompiliert haben. Was ich hier tun möchte, ist, dass ich das spielen will , wann immer es ist, den automatischen Schaden, der den Schaden anrichtet. Was wir hier drinnen für den Schaden oder den Feind tun können , ist, dass wir diese Schadensart annehmen können und wir können im Grunde nach einem Namen suchen und wir können ihn anzeigen lassen. Jetzt können Sie eine Zeichenfolge drucken und sehen, was sie bewirkt, wenn ich das einfach abklemme, weglege und Sie eine Druckzeichenfolge schreiben können. Mach weiter und verbinde es. Und verbinde auch diesen. Schau einfach, was es auf den Bildschirm bringt. Wenn ich auf Abspielen klicke und etwas kaufe, um automatischen Schaden zu verursachen, siehst du, dass dort im Grunde der Name des Bauplans angezeigt wird und dort Auto Damage steht So haben wir es genannt. Ich kann das zu meinem Vorteil nutzen, indem ich es nutze und nach Inhalten suche. Ich werde nur sehen, ob diese Zeichenfolge etwas enthält, nach dem ich suche. Und wenn ich nur nach Autoschäden suche , weil das Teil des Namens des Bauplans Wenn der Name des Schadens, den ich verursacht habe, Autoschaden enthält, kann ich hier eine Abzweigung erstellen Ich kann auch rausgehen und das verbinden, oder im Grunde, was Sie tun können. Sie können auch sagen, wenn Sie nicht beide Filialen hier haben wollen, können Sie das nehmen und Goldbarren sagen Im Grunde genommen können Sie das stattdessen hier übernehmen und diesen verbinden Sie können das andere Edelmetall löschen. Wenn der Name Schaden enthält und der Feind tot ist, kannst du weitermachen und diesen spielen Lass uns weitermachen und kompilieren und speichern. Jetzt kannst du sehen, ob ich auf Play klicke und hier etwas kaufe, Damage. Du kannst sehen, dass alles richtig funktioniert. Nichts ist ins Stocken geraten. Auch wenn ich auf Play klicke und versuche, den Feind zu töten, funktioniert alles perfekt wie zuvor Und wenn ich kaufe oder beschädige und auf den Feind klicke, tun wir beide etwas. Sie können sehen, dass es nur einmal abgespielt wird. Und der Code steckt auch nicht viel Geld. Jetzt wissen wir, dass der Code perfekt funktioniert. Ordnen Sie das alles neu an und fahren wir mit der nächsten Lektion fort und fahren wir mit der nächsten Lektion 91. 10.01 Die Level-Anzeige entwerfen: Was wir jetzt tun müssen, ist genau wie in Clicker Heroes, wo du das Level, das du erreicht hast, hier oben sehen kannst Das Gleiche müssen wir auch für diesen Clicker tun. Kehren wir zur Benutzeroberfläche zurück und fügen wir es hier im Haupt-U hinzu, zur Seite innerhalb der Haupt-Widgets Ich werde diesen Teil einfach hier kopieren. Ich klicke einfach auf dieses Overlay und kopiere das Ganze hier, Steuerung C. Und dann klicke ich auf das Steuerelement V. Und füge es einfach hier Bei diesem werden wir es nun zur Seite legen. Ich klicke auf den Ankerpunkt und platziere ihn für den Offset nach rechts . Ich werde einfach Null in das X schreiben. Der untere Rand ist ebenfalls Null. Jetzt kannst du sehen, dass es nicht auf dem Bildschirm ist, es ist tatsächlich an der Seite hier. Wir müssen hier im Grunde die Ausrichtung für das X vornehmen, wir müssen es nach innen verschieben Wir schreiben hier nur eins in die Ausrichtung, jetzt ist es auf dem Bildschirm Was wir jetzt tun müssen, ist für die Position x, wir müssen sie nur wieder vom Bildschirmrand wegdrücken , genau wie zuvor, Sie können auf diese klicken. Wenn Sie sich nicht erinnern, was Sie getan haben, Sie es 30 Pixel weggeschoben. Lassen Sie uns hier dasselbe tun, um konsistent zu bleiben. auf das Overlay klicke, werde ich es im X-Offset um 30 drücken , eigentlich -30, sonst geht es in die andere Richtung Und 30 mal versetzt von oben. Und noch einmal 30 von unten. Ich brauche auch einen Text hier oben, wo Level steht. Lass uns diesen Text einfach hier oben kopieren, Steuerung C und dann Steuerung V. Hier unten auf dem Overlay Ich werde ihn über dem Scrollfeld platzieren. Eigentlich müssen wir ein vertikales Feld hinzufügen, sonst wird es in der Mitte sein. Lass uns nach einer vertikalen Box suchen. Mach weiter und füge es hinzu. Fügen Sie dann den Text und das Scrollfeld in das vertikale Feld ein. Klicken Sie auf das vertikale Feld, fahren Sie fort und füllen Sie es hier horizontal und vertikal aus. Und auch das Scrollfeld, das Sie ausfüllen müssen, um hier auf Füllen zu klicken. Jetzt müssen wir es auch etwas auffüllen, denn wie Sie sehen können, befindet sich der Text auch über den Rändern Und was die Frontgröße angeht, glaube ich, werde ich die Vorderseite etwas weiter verkleinern, also schreibe ich hier vielleicht stattdessen 24. Was wir jetzt tun können, ist, dass wir hier für das Scrollfeld eine Null in die Polsterung schreiben können , weil ich jetzt der ganzen Sache Polsterung hinzufügen werde auf dieses vertikale Feld klicke, gebe ich ihm eine Polsterung von. Lass uns mit 50 beginnen und sehen, wie es aussieht Okay, das sieht gut aus. Und außerdem muss ich das Overlay vielleicht etwas vergrößern, das Overlay vielleicht etwas damit ich sehen kann, wie es rechts und links aussieht rechts und links Ich glaube nicht, dass ich es rechts und links so stark ergänzen muss Ich werde stattdessen 35 schreiben. Auf diese Weise klicke ich auf diese Zeilen, um sie zu entfernen. Um zu sehen, wie es aussieht. Ich muss hier unten natürlich einen Abstandshalter zwischen dem Text und dem Scrollfeld hinzufügen hier unten natürlich einen Abstandshalter zwischen dem Text und dem Scrollfeld Füge einen Abstandshalter von vielleicht 15 und dem Y hinzu. Jetzt haben wir das Display hier oben fertig Lass uns stattdessen einfach Level schreiben. Gehen Sie zu und kompilieren Sie es und machen Sie es einfach etwas größer. Wir müssen auch die Größe festlegen, je nachdem, wie groß die Levelkarte sein wird. Im Moment sieht alles gut aus. Aber lass uns jetzt zur nächsten Lektion übergehen und die Karte entwerfen. 92. 10.02 Die Level-Karte entwerfen: Um die Level-Karte zu entwerfen, gehen wir genauso vor wie hier bei der Shop-Artikelkarte Also lass mich einfach mit der rechten Maustaste hier klicken, zur Benutzeroberfläche gehen und eine neue erstellen. Nennen wir das One Level Card. Lass es uns wieder öffnen. Fahren Sie fort und fügen Sie ein Leinwandfenster hinzu, bevor wir etwas tun. Ändern Sie es auch so, wie es auf dem Bildschirm gewünscht ist. Jetzt sind wir bereit. Was ich tun möchte, ist, dass die Karte im Grunde ein Knopf sein wird , weil es hier eine Reihe von Tasten geben wird, um den Level zu wechseln. Je nachdem, zu welchem Level du wechseln möchtest, kopiere ich einfach diesen Button , den wir hier gemacht haben. Klicken Sie auf dieses Overlay und die Schaltfläche und den Text und klicken Sie auf Steuerung C. Gehen Sie zurück zur Level-Karte und drücken Sie V hier. Nun zum Overlay, ich klicke auch für den Text auf Größe zum Inhalt Bevor ich das hier für das Overlay mache, ändern wir den Ankerpunkt so, dass er in der Mitte und 0,5 in den Ausrichtungen und 00 in X und Y liegt. Jetzt ist er perfekt zentriert für Ich werde vorerst nur einen schreiben. Das wird also sowohl das Level als auch für diese Tastengröße anzeigen . Ich denke, ich werde es etwas reduzieren, ich brauche es nicht so breit. darauf klicken, können wir die Größe im X reduzieren . Ich glaube, ich schreibe hier 100. Achten Sie nur darauf, diese Bildgröße zu kopieren und sie sowohl auf das Bild zu kopieren, als auch auf das gedrückte Bild einzufügen. Für diese Textfarbe Ich werde es einfach wieder auf diese Standardfarbe ändern. Also mach weiter und kopiere diese Farbe. Gehe zurück zur Levelkarte und füge sie auch hier ein. Jetzt ist dieser im Grunde fertig. Schauen wir uns an, wie es aussieht, wenn ich zum Hauptmenü oder zur Haupt-Benutzeroberfläche zurückkehre . Und ich klicke hier, und diese Liste heißt Artikelliste. Ich werde den Namen dieses vertikalen Felds tatsächlich in eine Ebenenliste ändern . Kompilieren. Suchen wir nun hier oben nach der Levelkarte und ziehen sie in die Levelliste. Und duplizieren Sie es ein paar Mal, damit Sie sehen können, wie es aussieht. Was ich hier etwas korrigieren möchte , ist die Größe dieses Overlays Wenn du es einfach hineinschiebst, bis das hier verschwindet, versuche es einfach so zu machen, so klein wie möglich, aber ohne so zu nerven Auch die Scrollleiste. Ich möchte es hier am Rand dieses Buttons starten. Also hier oben klicken, die Bildlaufleiste runtergehen und die Überschrift der Bildlaufleiste nach oben finden. Ich werde einfach so etwas wie acht schreiben. Das ist gut. Ich denke , das brauchen wir auch für den unteren Teil. Ich bin mir gerade nicht sicher. Aber wir können das immer ein paar Mal duplizieren und einen Blick darauf werfen und auf das letzte klicken. Und das brauchen wir auch. Für das untere Klopfen. Ich werde auch acht schreiben. Eigentlich braucht es weniger. Schreiben wir statt acht, schreiben wir stattdessen etwa fünf. Wir können jederzeit hierher zurückkehren, wenn wir weitere Dinge an der Benutzeroberfläche ändern müssen . Aber im Moment sieht alles gut aus, und wenn ich auf Play klicke, hoffe ich, dass die Maus darüber fährt, funktioniert alles. Was ich jetzt tun kann, ist einfach alles zu löschen , damit es sauber ist und wir nur diese Levelliste haben. Kompiliere, speichere alles und lass uns weitermachen. 93. 10.03 Das Level einstellen: Lassen Sie uns nun fortfahren und diese Stufe für diese Schaltfläche dynamisch ändern Das wird jetzt sehr einfach sein, denn lassen Sie uns auf diesen Text klicken und ihn einfach in Compile auf Textebene umbenennen. Und jetzt gehen wir zur Grafik. Jetzt machen wir es genauso wie zuvor mit dem Shop-Artikel. wenn wir es der Liste hinzufügen, werden diese Informationen innerhalb des Event-Konstrukts geändert . Es wird im Grunde genommen die Artikelkosten aktualisieren und das alles für dieses Event, nehmen wir wieder dieses Event-Konstrukt. Das Einzige, was wir tun müssen, ist im Grunde das Niveau festzulegen , das wir zur Festlegung der Zahl benötigen. Was nun die Ebene angeht, lassen Sie uns hier einfach eine neue Variable erstellen und eine Ganzzahl verwenden. Nennen wir das eine Ebene. Wir werden ihm diese Information geben. Wann immer wir dieses Widget erstellen, kannst du jederzeit zum Player-Controller zurückkehren, falls du dich nicht mehr daran erinnern kannst, was du mit dem Item-Shop gemacht hast. Ihr seht hier, wenn ihr runtergeht, was wir gemacht haben, ist im Grunde diese Artikelinformationsvariable zu erstellen. Und wir haben bei Spawn und Instance Editable auf Expose geklickt und wir konnten Informationen hineinschreiben Wir werden hier tatsächlich dasselbe für die Level-Instanz „ editierbar“, „Beim Spawn verfügbar“ machen Level-Instanz „ editierbar“, „Beim Spawn Wir können das im Grunde einfach anklicken und so hierher ziehen und schon sind wir hier fertig. Wir können dem ein paar Informationen geben , wann immer wir die Karte spawnen, und das werden wir in der nächsten Lektion tun 94. 10.04 Das neue Level freischalten: Ordnung, lassen Sie uns jetzt weitermachen und dem ein paar Informationen geben Auch hier arbeiten wir mit der Benutzeroberfläche, also werde ich das hier unten im Player-Controller erstellen . Lassen Sie uns ein neues benutzerdefiniertes Ereignis erstellen. Und nennen wir dieses eine Unlock-Level. Wir können diesen benutzen, um das Level zu entsperren oder diese Level-Anzeige hier drüben anzuzeigen. Immer wenn der Spieler einen Feind besiegt. Dieses freigeschaltete Level erzeugt im Grunde genommen dieses Widget an der Seite. So können wir das Level sehen. Im Grunde genommen ist das momentan der Button, es hat eine Ära weil ich das ohne jegliche Information verbunden habe. Wenn ich auf Play klicke, erscheint im Grunde immer ein Button, wenn du ein Level geschafft hast. Und genau das wollen wir tun. Es erstellt im Grunde das Widget. Welches Widget erstellt es? Es ist die Levelkarte , die wir erstellen müssen. das Level angeht, können wir ihm später sagen , welches Level freigeschaltet werden soll. Also werde ich das einfach anklicken und hierher ziehen. Ich möchte diese Schaltfläche zu meiner Levelliste hinzufügen. Wenn ich zur Benutzeroberfläche zurückkehre und die Haupt-Benutzeroberfläche öffne, nennen wir das eine Liste auf VB-Ebene Hier wollen wir die Karte hinzufügen. Wenn ich zum Play-Controller zurückkehre, kann ich sehen, was ich habe. Ich habe dieses WB-Hauptmenü, also kann ich es von hier aus hinzufügen und nach der Levelliste suchen. Mach weiter und klicke darauf Jetzt können wir sagen, füge zwei hinzu, und du kannst diese auswählen. Fügt dem vertikalen Feld ein Kind hinzu. Im Grunde können Sie dieses Widget, das Sie gerade erstellt haben , zu Ihrer vertikalen Box hinzufügen und mit der Kompilierung fortfahren. Jetzt beginnen wir mit Level eins. Und Level eins sollte standardmäßig da sein weil dieses Level, in dem wir uns gerade befinden, lass uns Level eins einfach standardmäßig hier im Player Controller freischalten . Immer wenn wir das Spiel starten, schreibe ich Unlock Level und wir können hier im Grunde einfach eins schreiben. Wir schalten standardmäßig Level eins frei und klicken auf Play Du kannst jetzt sehen, dass Level eins freigeschaltet ist und angezeigt wird Und wir müssen alle anderen Level freischalten , wenn wir einen Feind besiegen. Machen wir weiter und machen das innerhalb des Spielmodus, denn wenn wir im Spielmodus zurückgehen, ist es lange her, dass wir das hier im Spielmodus gemacht haben , aber hier haben wir dieses Inkrement zum aktuellen Level gemacht Lasst uns stattdessen das Level hier freischalten. Immer wenn wir das Level erhöhen und es noch nicht freigeschaltet haben, können wir es freischalten Nennen wir es, es befindet sich im Player-Controller. Also brauchen wir hier den Player-Controller. Und wir können nach dem Unlock-Level suchen. Und mach weiter und nimm das hier. Was wir hier tun müssen, anstatt nur dieses aktuelle Level freizuschalten Da wir vielleicht tatsächlich ein niedrigeres Level spielen, wollen wir es nicht wieder freischalten, wenn wir in ein höheres Level aufsteigen wollen Stellen Sie sich vor, ich spiele hier und bin auf Level fünf, aber ich entscheide mich dafür, erneut auf Level eins zu klicken und das erste Level zu spielen. Ich möchte Level zwei nicht erneut freischalten , weil ich es bereits freigeschaltet habe. Wir benötigen hier eine neue Variable, um das zuvor freigeschaltete Level zu speichern. Lassen Sie uns eine neue Variable erstellen und sie die zuvor entsperrte Ebene nennen und sie die zuvor entsperrte Ebene daraus eine Ganzzahl machen. Was wir hier sagen können ist, ist das aktuelle Level, ist es höher als das zuvor freigeschaltete Level? Wenn wir uns zum Beispiel auf Stufe eins befinden und die zuvor freigeschaltete Stufe vier ist, müssen wir Stufe drei und so weiter nicht wirklich freischalten. Nochmals, da wir uns bereits auf Stufe vier, unserer höchsten Stufe, befinden , sollten wir diese Verzweigung vornehmen, falls die aktuelle Stufe höher ist als die zuvor freigeschaltete Stufe. Wenn wir Stufe fünf erreicht haben und Stufe vier früher freischalten, wenn das stimmt, nehmen wir diese zuvor freigeschaltete Stufe setzen sie auf die aktuelle Stufe, die jetzt Stufe fünf statt vier ist. Und wir können diese Informationen einfach hier unten eingeben. Wenn ich jetzt kompiliere und auf Play klicke , können wir diesen Feind besiegen. Sie können sehen, dass Level zwei jetzt freigeschaltet ist. Wenn ich auch diesen Feind besiege, wird Level drei freigeschaltet und so weiter. Also jetzt funktioniert das alles richtig. Aber auch hier haben wir den Knopf nicht wirklich beschichtet, sodass wir nicht wieder ins Level zurückkehren können. Und daran werden wir als Nächstes arbeiten. 95. 10.05 Den aktuellen Level einstellen: Was wir im Moment erreichen wollen, ist, dass wir verhindern wollen , dass der Feind spawnt, indem ein Level wie dieses automatisch ändern Wir wollen die Stufen manuell ändern, wenn wir auf diese Schaltflächen klicken Lassen Sie uns weitermachen und als Nächstes damit arbeiten. Jetzt befinde ich mich im Spielmodus und lass uns das ein bisschen herunterdrücken. Hier befinde ich mich unter dem aktuellen Ereignis , das wir zuvor erstellt haben Was ich hier machen möchte, ist ein neues benutzerdefiniertes Ereignis. Lassen Sie uns das machen, nennen wir dieses eine festgelegte aktuelle Stufe. Wir werden dieses benutzerdefinierte Ereignis immer dann verwenden , wenn wir auf diese Level-Buttons hier draußen klicken. Wir werden das Level manuell einstellen und das aktuelle Level einstellen. Offensichtlich brauchen wir hier das aktuelle Level und wir müssen es einstellen. Und wir müssen das mit den Ereignissen verbinden, weil wir es dann an anderen Orten manuell einstellen können. Jetzt stellen wir hier das aktuelle Level für das aktuelle Level ein, ich sage einfach ein Level. Wir setzen das Level, das wir wählen , auf das aktuelle Level. Dann ändern wir, wir, wir ändern ein Level. Wir wollen sicherstellen , dass der Feind sich in dem aktuellen Level, in dem wir uns befinden, entfernt wird, sonst spawnen sie übereinander Denken Sie daran, dass es im Plate-Controller ist, also werde ich den Plate-Controller einfach hierher kopieren Ermitteln Sie die generierte gegnerische Variable. Klicken Sie mit der rechten Maustaste und sagen Sie „In einen validierten Get konvertieren “. Weil wir jetzt sagen können, ob es gültig ist, können wir weitermachen und die Acta vernichten Nachdem wir die Acta zerstört haben, wollen wir den neuen Feind spawnen Im Grunde kann ich das hier kopieren. Ich kann es einfach kopieren, einfügen und so verbinden. Wenn der Feind noch nicht gültig ist, können wir einfach weitermachen und den neuen Feind spawnen Denn der einzige Grund, warum wir diesen Teil hinzugefügt haben , ist sicherzustellen, dass der aktuelle Feind zerstört wird und aktuelle Feind nicht existiert Wir können einfach weitermachen und den neuen Feind spawnen. Jetzt können wir mithilfe dieser Logik tatsächlich das aktuelle Level einstellen mithilfe dieser Logik tatsächlich das aktuelle Level Lassen Sie uns also alles kompilieren und speichern. Gehen wir nun zurück zur Benutzeroberfläche. Wenn ich hier in der Benutzeroberfläche auf die Level-Karte und dann auf diese Schaltfläche klicke, gehe ich runter zu der Schaltfläche und klicke, klicke, klicke hier auf das Plus, um hier ein Event zu erstellen. Immer wenn du klickst, wird der Button für Button aufgerufen und er ist nicht wirklich korrekt. Ich werde den Button einfach umbenennen. Ich nenne es Level Compile. Gehen wir zurück zur Button-Ebene. Immer wenn wir darauf klicken, wollen wir das Level ändern. Wir wollen dieses Event hier im Spielmodus nennen. Lass uns weitermachen und das tun. Sagen wir, klicken Sie mit der rechten Maustaste hier und sagen Sie Spielmodus abrufen. Dann ziehen wir von hier und sagen Spielmodus-Referenz abrufen, die von der Blueprint-Oberfläche Lassen Sie uns von hier aus zuschlagen und sagen „ Aktuelle Stufe festlegen “, denn so haben wir es genannt Jetzt haben wir diese Level-Information bereits , weil wir sie hier eingegeben Lass es uns einfach so anschließen. Lassen Sie uns kompilieren. Und lass uns auf Comp klicken und sehen, was passiert, wenn ich einen Feind töte Ich töte auch den nächsten. Töte auch den nächsten. Mal sehen, ob ich das Level ändern kann. Wenn ich auf zwei drücke, kann ich es ändern, drücke auf eins. Und ich kann sehen, dass ich tatsächlich zwischen den Levels wechseln kann und alles funktioniert. Der Timer wird jedes Mal zurückgesetzt, wenn ich die Stufen wechsle. Das wollen wir verhindern Jetzt haben Sie hier zum Beispiel einen Bug. Wenn du den Feind in Level eins tötest, kannst du sehen, dass er automatisch auf Level zwei wechselt. Ich will das nicht wirklich tun. Wir wollen die Stufen manuell umschalten. Lass uns weitermachen und als Nächstes daran arbeiten. 96. 10.06 Den automatischen Feind-Spawn verhindern: Um zu verhindern, dass die Feinde automatisch spawnen oder zum nächsten Level wechseln, öffnen wir nun den Spielmodus Noch einmal müssen wir diesen Modus mit dem Namen „Aktuelle Stufe erhöhen“ neu schreiben oder neu schreiben, denn denken Sie daran, dass wir ihn beim Tod des Feindes verwenden, wenn wir zur feindlichen Basis gehen Innerhalb der Todesereignisse erhöhen wir das Level jedes Mal, wenn wir den Feind töten Wir müssen jetzt etwas dagegen tun , anstatt das aktuelle Level zu erhöhen, denn in diesem Spiel wirst du es niemals, es wird es niemals automatisch erhöhen. Stattdessen nenne ich es „Level freischalten“. Wir entsperren das Level und wechseln dann manuell zum nächsten Level. Dies geschieht in Clicker-Spielen, weil normalerweise das nächste Level vielleicht zu schwierig ist und du ein Level zurück gehen musst , um mehr Geld zu verdienen, um Dinge zu kaufen, und dann kannst du zum neuesten Level gehen Du hast freigeschaltet, deshalb ist es fertig. Dieser wird auch als Unlock-Level bezeichnet. Denken Sie daran, dass dies in der Spielersteuerung , wo wir das Level hinzufügen. Lassen Sie uns den Namen dieses Spiels tatsächlich ändern , um nicht verwirrt zu werden. Anstatt es hier im Player-Controller als entsperrtes Level zu bezeichnen, nennen wir es Level-Taste, UI. Hier fügen wir die Schaltfläche zur Liste hinzu. Nennen wir es stattdessen so. Und lasst uns zum Spielmodus zurückkehren, damit wir jetzt nicht verwirrt werden. Es heißt so. Okay, dieses Unlock-Level. Wir wollen es hier tatsächlich weiterführen. Immer wenn der Feind tot ist, wollen wir das Level freischalten. Aber du willst das Level nur freischalten , wenn du dich auf dem neuesten Level befindest. Immer wenn ich auf diesem Level bin und spiele, möchte ich das nächste Level freischalten. Ich möchte das Level nicht freischalten wenn ich gerade Level eins spiele, weil ich Level zwei bereits freigeschaltet habe. Um das zu verhindern, gehen wir in den Spielmodus und hier in das freigeschaltete Level. Bevor wir das alles tun, können wir das aktuelle Level erreichen. Wir können uns fragen, entspricht das dem freigeschalteten Level? Anstelle dieses Levels haben wir das Level, das als zuvor freigeschaltetes Level bezeichnet wird. Wir müssen diesen Code tatsächlich ändern. Lass mich ihn einfach hier unten umbenennen. Anstelle des vorherigen freigeschalteten Levels nenne ich es einfach Unlocked Level Compile. Stellen Sie sicher, dass das entsperrte Level standardmäßig eins ist , da Sie bereits Level eins haben. Das aktuelle Level ist ebenfalls eins. Wir haben Level eins standardmäßig freigeschaltet. Wenn das aktuelle Level dem freigeschalteten Level entspricht, wollen wir weitermachen und das nächste Level freischalten. Denn das heißt, wenn das aktuelle Level, das gerade eins ist, dem freigeschalteten Level entspricht, das gerade eins ist, dann spielen wir tatsächlich auf dem neuesten Level. Und wir wollen das Level freischalten wann immer wir diesen Feind töten. Lass uns weitermachen und das einsperren. Auch hier wollen wir das aktuelle Niveau erhöhen, falls dies zutrifft. Jetzt fragen wir, ob das weniger oder gleich dem Maximalwert ist, ob das stimmt. Jetzt wollen wir den Feind nicht wirklich spawnen, weil wir nur das Level freischalten, wir wechseln nicht das Level wir wechseln nicht Anstatt den neuen Feind zu spawnen, werde ich ihn tatsächlich löschen Lösche das auch hier. Diesen können wir auch löschen. Und dieser auch. Wir können einfach weitermachen und das anschließen. Lass mich das einfach reinziehen , damit du das Ganze sehen kannst. Was wir sagen ist, dass das aktuelle Level dem freigeschalteten Level entspricht. Dadurch wird nur überprüft, ob wir uns tatsächlich auf dem neuesten Level befinden . Wir haben es zuvor freigeschaltet Wenn das stimmt und wir den Feind besiegt haben, schalten Sie oder nehmen Sie einfach dieses aktuelle Level und fügen Sie ihm eins hinzu. Wenn du das getan hast, dieses freigeschaltete Level, lass uns dieses einfach löschen, denn jetzt können wir es einfach hier einstecken , sperren oder entsperren. Aber es wird eine Schaltfläche für die neueste Ebene der aktuellen Ebene hinzufügen , weil wir eine hinzugefügt haben, anstatt Stufe eins zu sein, jetzt ist es Stufe zwei und es wird die Schaltfläche für eine Ebene zwei hinzugefügt. Eigentlich ist das ausreichend. Jetzt schalten wir mit diesem Event im Grunde nur das Level frei Und dann legen wir das aktuelle Level den Feind hier erscheinen zu lassen, bevor wir Dieses aktuelle Level ist eigentlich falsch, weil wir das freigeschaltete Level hier einstellen wollen Weil wir das entsperrte Level hinzufügen wollen, nicht das aktuelle Level. Denn auch hier wollen wir das Level nicht automatisch wechseln. Ich möchte auf dem aktuellen Level bleiben , in dem ich mich gerade befinde, aber ich möchte nur das freigeschaltete Level erhöhen. Auch hier unten, liste dieses und lass uns das freigeschaltete Level einfügen. Stattdessen werden wir eine Schaltfläche für das freigeschaltete Level hinzufügen , das ist alles korrekt. Um nun sicherzugehen, dass hier alles funktioniert, gehen wir auch zur feindlichen Basis und stellen sicher, dass der Code korrekt ist. Jetzt sind wir beim Todesereignis, und hier im Todesfall wollen wir das richtige Level freischalten. Und denkt daran, dass das freigeschaltete Level nur funktioniert, wenn das aktuelle Level dem freigeschalteten Level entspricht. Wir stellen sicher , dass wir uns auf dem neuesten Level, dem freigeschalteten Level, befinden , aber wir müssen auch sicherstellen, dass wir das aktuelle Level festlegen wollen , weil dadurch unsere Feinde hervorgebracht Gehen wir zurück zur Basis und nennen das eingestellte Level das aktuelle Level Lass uns weitermachen und es hier verbinden . Auch hier verbunden. Nehmen wir das aktuelle Niveau, und das ist hier die Variable. Wir werden das Niveau auf das aktuelle Niveau einstellen. Fahren Sie fort und kompilieren Sie jetzt Das aktuelle Level wird sich ändern, wenn Sie auf die Taste drücken. Wenn Sie zur Benutzeroberfläche gehen, zum Levelcode gehen und auf diese Taste drücken, wird der aktuelle Levelwert geändert. Es wird das eingestellte aktuelle Level ändern. Lass uns weitermachen und das versuchen. Lass uns auf Play klicken. Ich werde einen Feind töten. Jetzt können wir sehen, dass der Feind nicht automatisch gewechselt wird, weil wir im Grunde genommen, wenn ich zum Code zurückkehre, den Feind töten und dann den Feind für das aktuelle Level spawnen Denken Sie daran, dass wir diese Funktion entwickelt haben, wir nehmen nur das aktuelle Level , das wir nicht erhöhen Wir erhöhen das freigeschaltete Level nur um eins, wenn wir uns auf dem aktuellen Level befinden Wenn ich also zurückgehe und weiterspiele, kann ich zum nächsten gehen Jetzt kann ich diesen Feind töten und das nächste Level freischalten. Ich kann zu Level eins, zwei oder drei zurückkehren. So kann ich zum Beispiel zu eins zurückkehren und diesen Feind töten. Und ich kann so lange Geld von diesem Feind bekommen , bis ich das Gefühl habe ich stark genug bin, hier ein paar Sachen zu kaufen. Und dann kann ich zum nächsten Level gehen und ich kann sehen, dass du die Feinde wechseln kannst, wie du willst. Und es wird nur eine Schaltfläche hinzugefügt, wenn du den letzten Feind besiegt hast . In Ordnung, wir sind hier also fertig. So verhindert man automatisches Spawnen. Schau dir einfach an, ob du vielleicht einen kleinen Fehler hast, stelle sicher, dass es das aktuelle Level ist , das dem freigeschalteten Level entspricht Und es ist auch das freigeschaltete Level, das du hier hinzufügst, alles hinzufügst, kompilierst, speicherst und lass uns mit dem nächsten weitermachen. 97. 10.07 Schädel-Symbole zu Chefs hinzufügen: Wir werden das Spiel ein bisschen interessanter machen. Ich möchte den Bussen ein Totenkopfsymbol hinzufügen. Denkt daran, dass wir in der Datentabelle ausgewählt haben, dass es sich bei einigen Gegnern um Busse handelt. Dieser, der Zauberer zum Beispiel und der Ritter von Rogan. Ich möchte der Levelanzeige ein Totenkopfsymbol hinzufügen Levelanzeige ein Totenkopfsymbol hinzufügen Gehen wir zur Benutzeroberfläche, öffnen die Levelkarte, genau genommen im Designer. Lass uns hier anfangen. Lass uns ein Bild hinzufügen. Lassen Sie uns dieses Bild von hier nach unten auf das Overlay für dieses Bild ziehen das Overlay für dieses Bild Lass es uns in ein Totenkopfsymbol ändern. Denken Sie daran, dass wir das in den Assets-Objekten tatsächlich verwenden können . Das hier sind Sprites. Ich werde einfach die Textur oder den Schädel verwenden. Wenn du einfach nach einem Schädel suchst und du ihn hier finden solltest , werde ich einfach die Textur anstelle des Sprites verwenden Mach weiter und bearbeite die Größe. Versuchen wir es mit 50 mal 50 und der Position. Ich gehe hier runter zur Transformation und bearbeite die Übersetzung dafür. Zum Beispiel können wir für das X minus sechs sagen, und das wird in diese Richtung gehen, und dann minus sechs, und das wird so nach oben gehen. Zoom, ich finde, es sieht gut aus. Wir können es jederzeit ändern, aber es sieht gut aus. Nun, dieses Symbol hier, standardmäßig, ich möchte es ausblenden, weil ich nicht möchte , dass es hier für jede einzelne Schaltfläche angezeigt wird. Was ich tun möchte, ist hier in der Sichtbarkeit, lass es uns jetzt im Diagramm auf versteckt kompilieren setzen, lass es uns nur Feinden hinzufügen, die Busse sind. Denken Sie daran, dass wir hier drinnen immer sagen können, dass wir Feindinformationen abrufen können. Wir brauchen zuerst den Namen des Feindes. Haben wir den Namen des Feindes? Wenn Sie sich erinnern, wenn ich in der Bibliothek wieder in die Bibliotheken gehe und es aufstelle, wenn Sie sagen, Level-Informationen abrufen, erinnern wir wenn ich in der Bibliothek wieder in die Bibliotheken gehe und es aufstelle, wenn Sie sagen, Level-Informationen abrufen, uns an die Struktur mit den Level-Informationen. Wenn ich die Level-Info-Struktur öffne, habt ihr den Namen des Feindes , der dort erscheint Du kannst das tatsächlich zu deinem Vorteil nutzen. Du kannst also sagen Levelinformationen abrufen. Wir haben das Level schon hier. Wir können es nehmen und aufteilen. Wenn wir es auflösen, haben wir den Namen des Feindes , den wir hier eingeben können. Klicken Sie hier, um unverbundene Pins auszublenden. Dann kannst du von hier aus ziehen. Und zerlegen Sie es auch. Ab hier hast du jetzt den Feindtyp. Lass uns von hier wegziehen. Sagen wir, ist das gleichwertig? Und wir werden diesen nicht auswählen. Wir werden diese auswählen, weil es sich um eine Aufzählung handelt Dieser entspricht einem Boss. Klicken Sie erneut auf diesen. Verstecken Sie nicht verbundene Pins wir jetzt von hier wegziehen können, und machen Sie einen Zweig Wenn es wahr ist, dass es ein Boss ist, wollen wir einfach dieses Bild anzeigen Nehmen wir dieses Bild auf. Jetzt haben wir es nicht zu einer Variablen gemacht. Lassen Sie uns den Namen in Bild ändern. Der Schädel ist variabel. Jetzt können wir zur Grafik gehen. Wir können es herausnehmen und sagen, Sichtbarkeit einstellen. Und stellen Sie die Sichtbarkeit ein. Wir können es so einstellen, dass es sich merkt und nicht, dass es getestet werden kann. Es blockiert die Schaltfläche nicht, weil Visible die Mausklicks blockieren wird Wir können also nicht auf die Schaltfläche klicken. Hit testbar besser. Das sollte es sein Wenn ich kompiliere und auf Play klicke, kannst du jetzt sehen, dass nichts hier ist. Wenn ich hier etwas kaufe, damit ich den Feind viel schneller töten kann, können wir zu den Levels wechseln und sehen, dass alles perfekt funktioniert. Wenn ich zu Stufe vier wechsle und es hier auf Stufe fünf erscheinen sollte, kannst du sehen, dass es ein Symbol gibt und es funktioniert einwandfrei. Ich werde die Benutzeroberfläche nur etwas vergrößern, damit sie nicht ausrutscht Ich minimiere das einfach. Ich gehe hier zurück zur Haupt-Benutzeroberfläche Lassen Sie mich einfach eine Ebene hinzufügen. Wenn ich nur eine Level-Katze hinzufüge, kann ich sehen, was ich so mache. Jetzt können wir auf das Overlay klicken und es etwas größer machen , damit es unser Schädelsymbol nicht Kompilieren und spielen. Und los geht's. Alles sollte gut funktionieren. Mach weiter und lösche diesen, sonst wird er Fehler machen. Als zusätzliche Sache. Bevor wir fertig sind, fügen wir neben dem Namen des Bosses auch ein Totenkopfsymbol hinzu. Im Namen des Bosses ist es hier in den Feindinformationen. Also im Grunde müssen wir hier einen hinzufügen. Genau wie zuvor werde ich nach einem Bild suchen, wir brauchen tatsächlich ein horizontales Feld weil wir hier nichts haben. Ich werde einfach zuerst nach einem horizontalen Feld suchen. Füge es hier hinzu. Suche nach dem Bild. Fügen Sie es auch für das Bild hinzu. Genau wie zuvor werde ich es auf die Punktzahl ändern, eine Größe davon ist, lass uns 60 mal 60 fahren. Auch hier glaube ich, dass es 60 mal 60 war, oder vielleicht waren es 50. Wenn ich einfach wieder hierher gehe, waren es 50. Lass uns einfach 50 mal 54 draus machen. Lassen Sie mich nun diesen Text in das horizontale Feld einfügen. Diese beiden Elemente sind hier drin. auf das horizontale Feld klicke, werde ich den Anker in der Mitte platzieren, 0,5 in den Ausrichtungen, um sicherzustellen, dass er sich in der Mitte befindet Außerdem ist die Position Null mal Null, also ist sie perfekt in der Mitte Das Verhältnis von Größe zu Inhalt ist wahr. Ändern Sie grundsätzlich die Größe des horizontalen Felds auf den Inhalt, den es hat. Okay, jetzt haben wir es hier. Nun zur Ikone. Ich werde nur etwas Polsterung an der Unterseite hinzufügen , vielleicht zwei Wir schieben es ein bisschen nach oben. Eigentlich möchte ich statt einer Polsterung eigentlich Null schreiben Eigentlich möchte ich die Übersetzung hier unten ändern . Du kannst es also ändern. Anstatt eine Polsterung hinzuzufügen, können Sie die Übersetzung ändern Ich wollte minus zwei sagen, also ist es ein bisschen nach oben gedrückt Okay, genau wie zuvor, werde ich die Sichtbarkeit auf „ Versteckt“ stellen und zur Grafik hier gehen, um die Feindinformationen zu aktualisieren. Genau wie zuvor. Jetzt haben wir den Namen des Feindes, also sage ich einfach, hol dir Feindinformationen. Wir haben den Namen des Feindes bereits. Dann können wir das aufteilen, genau wie zuvor, wir können den Feindtyp nehmen und sagen, ist er uns ebenbürtig? Wenn das der Fall ist, fahren Sie fort und zeigen Sie dieses Symbol erneut an, genau wie zuvor. Ändern wir den Namen in Image Skull. Lassen Sie uns einstellen, dass es variabel ist. Nehmen wir das Schädelbild und stellen die Sichtbarkeit so ein, dass sie bei Treffern testbar Klicken Sie noch einmal auf diesen. Versteckte nicht verbundene Pins. Schlag ihn an, vielleicht ein bisschen näher. Probieren wir es einfach aus und sehen, was passiert. Ich klicke im Spiel auf Play. Ich kaufe ein paar davon, damit ich viel schneller Schaden anrichten und zu den Levels aufsteigen kann. Jetzt ist hier der Feind und du kannst sehen, dass das Symbol erschienen ist. Es funktioniert perfekt. Aber du kannst es hier sehen, eigentlich ist mir gerade aufgefallen, dass dieser Name zur Seite geschoben wird. Es ist nicht im Zentrum dieses Feindes. Das liegt daran, dass die Ikone des Schädels tatsächlich da ist. Es ist einfach versteckt. Anstatt den Schädel in diesem Fall auf versteckt zu stellen, war es in diesem Fall in Ordnung, weil er einfach da ist. Dieser drängt tatsächlich auf den Namen. Was wir tun können, ist einstellen statt versteckt, Sie können es auf reduziert setzen. Es ist, als würdest du ein Menü minimieren. Es ist nicht mehr aus deiner Sicht. Es auf den Kollaps zu stellen, sollte gut funktionieren. Wenn ich nur schnell den Level wechsle , nur um es dir zu zeigen, stirbt jetzt dieser. Wenn ich jetzt gehe, kannst du sehen dass Skeleton hier war, bevor der Text hier begann. Jetzt fängt es an der richtigen Position an. Collapse ist in diesem Fall viel besser zu verwenden. Okay, cool. Also, jetzt haben wir diesen Schädel ausgestellt. Sieht cooler aus als zuvor. Und ich kann auch sehen, dass es sich ein bisschen dehnt, die Ausrichtung, ich werde es stattdessen auf die Mitte setzen. Fahren Sie fort und kompilieren Sie, speichern Sie alles und lassen Sie uns weitermachen. 98. 10.08 Symbole zu Shop-Karten hinzufügen: Als Nächstes möchte ich hier auch die Symbole für die Autos hinzufügen , für die Ladenkatzen Aber weil du es hier sehen kannst, sieht es gut aus. Aber ich denke, es wird besser aussehen wenn wir ein Symbol neben diesem Text haben Lassen Sie uns das tatsächlich hinzufügen. Lass uns den Laden hier drüben aufmachen. Fügen wir das Symbol neben diesem Text hinzu. Jetzt befindet es sich in einer oder einer vertikalen Box. Wir brauchen hier unten eine horizontale Kiste. Ich suche einfach erneut nach einem horizontalen Feld und füge es hier unten hinzu, direkt über dem Text. Füge den Text dem horizontalen Feld hinzu. Fügen Sie dann auch ein Bild zum horizontalen Feld hinzu, direkt über dem Text hier. Für dieses Symbol werden wir es nun in das Artikelsymbol ändern. Aber vorerst fahren Sie einfach fort und wählen Sie ein zufälliges Symbol für die Ausrichtung aus. Fahren Sie fort und stellen Sie es in die Mitte, damit es sich nicht für die Größe dieses Symbols dehnt. Ich denke, 32 mal 32 ist in Ordnung. Ich glaube nicht, dass wir mehr als das brauchen. Ich brauche wahrscheinlich einen kleinen Abstandshalter dazwischen. Lass es besser aussehen, füge einfach das X hinzu, vielleicht vier und einfach so. Ja, es sieht gut aus. Okay, lass uns weitermachen und auf dieses Bild klicken und es Bildelement nennen. Lassen Sie uns das in Ist variabel ändern. Gehen wir jetzt zur Grafik und machen Dinge damit. nun hier im Ereignisdiagramm an, Schauen wir uns nun hier im Ereignisdiagramm an, wo wir das am besten machen können. Wir haben den Update-Punkt I. Wir haben das Update, die Kosten. Wir haben auch das Event-Konstrukt. Wann immer diese Karte hinzugefügt wird, wäre dies der beste Ort. Immer wenn die Karte über den Spieler-Controller hinzugefügt wird, fügen wir einfach sofort das Symbol hinzu. Lass mich das einfach wegschieben. Nachdem ich den Textnamen aktualisiert habe, möchte ich das Bildsymbol nehmen und sagen wir, Pinsel einstellen. So legt man dynamisch eine Textur oder ein Bild fest. Stellen Sie den Pinsel aus der Textur ein. Fahren Sie fort und wählen Sie diesen aus. Das bedeutet im Grunde, dieses Bild aus einem Bild auszuwählen, das ich in diese Engine importiert habe. Stellen Sie den Pinsel anhand der Textur ein. Nun, welche Textur brauchst du? Ich glaube, wir haben die Icons schon, und wir haben sie eigentlich nicht. Lass uns weitermachen und das hinzufügen. Wir haben nur den Sprite hier unten. Um fortzufahren, müssen wir dieses Vorschaubild zur Artikelinformation hinzufügen dieses Vorschaubild zur Artikelinformation wir zurück, gehen wir zu den Artikeln und fügen hier tatsächlich Informationen zur Artikelstruktur hinzu Fügen wir eine neue Variable namens Thumbnail Nail hinzu. Fügen wir diese hinzu oder ändern wir sie in eine Textur mit zwei D, was nur eine Textur ist, die Sie importieren, oder ein Bild Und fahren Sie fort und wählen Sie die Objektreferenz. Ich werde das direkt über das Vorschaubild oder den Artikelnamen nach oben verschieben über das Vorschaubild oder den Artikelnamen nach oben Denken Sie daran, dass Sie jetzt zu Ihrer Google Sheets-Datei gehen müssen. Jetzt gehe ich hier rechts zu den Artikelinformationen. Ich klicke einfach mit der rechten Maustaste hier oben und füge die Spalte rechts ein. Nenn es Thumbnail. Das Gleiche wie die Variable. Jetzt können wir das Vorschaubild hier hinzufügen, Referenzen. Gehen wir nun zurück zu, lassen Sie uns sehen, ob wir sie hier in den Objekten haben , eigentlich nur hier in den Texturen, Sie können sie einfach als Referenzen verwenden , denn das sind die Elemente Ich möchte, dass du den Tisch öffnest. Die erste ist die Lichtfeder. Auch hier, genau wie vor der leichten Rechtsklick-Referenz. Gehen Sie zurück zu Ihrem Dokument. Eingesetzt Als Nächstes klicken Sie mit der rechten Maustaste hier, Referenz für die Fackel eingefügt Und mach weiter und tu das für sie alle. Dies war der letzte für mich. Ich werde weitermachen und erneut auf Datei Als CSV-Datei herunterladen klicken . Dann werde ich diesen wieder in meinen Datentabellenordner importieren . Fahren Sie fort und portieren Sie es, und Sie sollten alle Informationen haben. Gehen wir jetzt wieder zurück und arbeiten und die Arbeit fortsetzen. Lassen Sie uns die Artikelkarte des Shops noch einmal öffnen. Jetzt haben wir dieses Vorschaubild. Dieses Vorschaubild können wir hier einfügen. Ich werde klicken, um einen solchen Umleitungsknoten zu erstellen, und dann auf diesen klicken Und verstecke verbundene Pins, kompiliere und speichere. Jetzt sollte alles funktionieren. Wenn ich auf Play klicke, kannst du jetzt sehen, dass alle Icons hinzugefügt wurden. Auch hier muss ich dieses Feld etwas vergrößern, damit es nicht ausgeschnitten wird, wenn ich nur eine Karte hinzufüge, damit ich es besser visualisieren kann. Wenn ich also eine Shop-Artikelkarte zur Artikelliste hinzufüge, kann ich auf das vertikale Feld klicken und es dann hier etwas vergrößern. Es schneidet also nicht so aus. Jetzt können Sie sehen, dass alles gut aussieht. Es sieht viel besser aus, wenn Sie ein Symbol neben Ihren Shop-Artikeln haben . Ja, so fügst du sie hinzu und das sollte es sein. Mach einfach weiter und speichere. Vergewissern Sie sich einfach erneut, klicken Sie auf dieses Symbol. Stellen Sie sicher, dass Sie angegeben haben, die Sichtbarkeit nicht testbar Blockiere nichts. Ja, lass uns mit dem nächsten weitermachen. 99. 11.01 Den Mauszeiger zum Shop hinzufügen: Ordnung, jetzt ist es an der Zeit , etwas mit dem Mauszeiger hinzuzufügen Bisher haben wir mit den Elementen gearbeitet, aber jetzt wollen wir etwas mit dem Mauszeiger machen. Im Moment klickst du auf den Feind und verursachst 15 Schaden pro Klick. Das ist gut. , wenn Sie die Level durchqueren Nehmen wir jedoch an, wir haben diesen automatischen Clicker und wir gehen durch die Level Sie stellen fest, dass die Feinde viel mehr Gesundheit erhalten als zuvor 15. Schaden wird ihnen nicht wirklich viel anhaben, besonders wenn wir zum Beispiel auf Stufe 20 sind, müssen wir unseren Cursorschaden verbessern. Lass uns weitermachen und das tun. Aber zuerst müssen wir den Click-Artikel zum Shop hinzufügen, damit wir ihn kaufen und den Cursor aktualisieren können. Machen wir weiter und machen das zuerst. Übrigens können Sie versuchen, es selbst zu tun, wenn Sie möchten. Das ist wirklich eine nette Übung. Lass uns versuchen, es zusammen zu machen. Wenn Sie sich nicht sicher sind, wie Sie eine hinzufügen sollen, öffnen wir die Aufzählungen. Und denken Sie daran, dass wir alle Artikel hier aufgelistet haben. Lassen Sie uns eine neue Aufzählung hinzufügen und diese mit einem Mausklick aufrufen Ich werde es einfach als erstes Element hinzufügen , weil ich möchte, dass es ganz oben steht Das ist der Mausklick. Lass es uns schließen. Als nächstes müssen wir zur Datentabelle gehen. Öffnen Sie Ihre Google Sheets erneut . Lassen Sie uns hier die Artikelinformationen öffnen. Ich möchte es als ersten Artikel hinzufügen. Mach weiter und nenne es Mausklick. Klicken Sie auch hier. Nun zu dem Vorschaubild, das ich Ihnen in den Kursmaterialien gegeben habe Gehen Sie einfach zurück zu den Assets, den Objekten und den Texturen, ich Ihnen in den Kursmaterialien gegeben habe Wenn Sie zu Objekten gehen, Cursor fort und importieren Sie dieses Objekt, klicken Sie mit der rechten Maustaste darauf, konvertieren Sie es oder wenden Sie Papier auf die Einstellungen an Klicken Sie nun mit der rechten Maustaste darauf und machen Sie daraus ein Sprite-Sprite Und ziehe es in die Objekte hier drüben. Klicken Sie nun auf die Objekte. Jetzt haben wir dieses Sprite eingerichtet. Lass uns weitermachen und alles speichern. Gehen wir zurück zur Datentabelle. nun für das Vorschaubild zu den Texturen, Gehen wir nun für das Vorschaubild zu den Texturen, klicken wir mit der rechten Maustaste und kopieren Sie die Referenz. Bei dieser Bearbeitung der Miniaturansicht wird das Element als Mausklick für das Element bezeichnet Dies ist die Aufzählung. Denken Sie daran, es der Aufzählung hinzuzufügen. Wir brauchen auch eine Klausel dafür , weil wir es auf dem Boden spawnen müssen Lassen Sie uns eigentlich zu den Bauplänen gehen und das machen. Wenn ich jetzt zu Items gehe und zur Artikelbasis gehe, kann ich mit der rechten Maustaste auf die Artikelbasis klicken einen untergeordneten Blueprint erstellen Nennen wir es Mausklick. Und lass es uns öffnen. Klicken wir auf die Render-Komponenten und fügen das einzige Sprite am Cursor Kompilieren und speichern. Denken Sie daran, dass wir auch die Artikelnamen für jeden Artikel hinzugefügt haben. Hier können Sie den Artikelnamen sehen. Wir haben ihn, denken Sie daran, für jeden Artikel geschrieben. musst du also schreiben, sonst liest es nicht aus der Datentabelle. Denken Sie daran, hier auf die Klassenstandardwerte zu klicken. Nennen wir es Mausklick. So wie Sie es in der Datentabelle genannt haben. Jetzt haben wir das erstellt, und um einen Verweis darauf zu erhalten, wie zuvor, kopieren wir einfach dieses. Fügen Sie es hier ein. Ich werde diese Lichtfeder einfach in Mausklick umbenennen . Und dieser auch. Mausklick. Okay. Nun zum Sprite, gehen wir wieder zu den Assets-Objekten Wir können mit der rechten Maustaste auf dieses Sprite klicken und die hier eingefügte Referenz kopieren Jetzt müssen wir festlegen, was es kostet. Sagen wir einfach, es kostet vielleicht zehn oder so. Wir können es später jederzeit ändern. Klicken wir nun erneut auf Datei, Herunterladen, CSV-Datei herunterladen. Jetzt ziehe ich es in den Ordner mit den Datentabellen. Ziehen Sie es erneut hinein und speichern Sie alles. Stellen Sie einfach sicher, dass hier alle Informationen korrekt sind. Alles sieht gut aus. Wenn ich jetzt auf Play klicke, kann ich meinen Mausklick sehen. Und ich kann es auch hier sehen, ich kann auf Von klicken. Im Moment heißt es Null für den Preis dieses Artikels. Etwas stimmt hier nicht. Denken Sie daran, das liegt daran, dass wir hier in der Artikelinformation diese Kosten für Münzen tatsächlich nicht mehr verwenden. Verwechseln Sie uns nicht mehr. Gehen wir auch zu den Artikelinformationen und lassen Sie uns die Kosten für Münzen von hier entfernen Gehen Sie fort und speichern Sie jetzt alles Stellen wir sicher, dass wir es aus der Datentabelle entfernen. Klicken Sie mit der rechten Maustaste und löschen Sie die Spalte, hier ist sie auch. Gehen wir jetzt zu den Artikelkosten über, denn hier haben wir tatsächlich die Kosten. Lassen Sie uns das ändern. Lassen Sie mich einfach mit der rechten Maustaste hier klicken und rechts eine neue Spalte hinzufügen. Nenn es hier Mausklick. Nehmen wir an, es beginnt mit 18, nur weil ich eine andere Zahl als alle anderen haben möchte , sagen wir, das ist gleich eins mal 1.2. Ziehen wir sie ganz nach unten Nun, das wird natürlich eine Menge Arbeit im Spieldesign erfordern , wenn du willst, dass all diese Zahlen Sinn ergeben, aber im Moment testen wir nur Ich werde einfach die Tabelle mit den Kostendaten für diesen Artikel hier in der Engine herunterladen . Lassen Sie uns weitermachen und es erneut importieren. Gehen Sie zu den Datentabellen und importieren Sie die Artikelkosten. Die Mausklick-Eigenschaft kann jetzt nicht in ST-Kosten gefunden werden. Schauen wir uns das gemeinsam an. Wenn ich auf Okay klicke und einfach zu den STM-Kosten gehe. Wenn ich zur Benutzeroberfläche gehe, ich tatsächlich zur Struktur und öffne die Artikelkosten Das liegt daran, dass uns diese Variable hier fehlt . Lass mich eine neue hinzufügen. Nennen Sie es Mausklick, machen Sie daraus eine Ganzzahl. Zieh es einfach ganz nach oben. Und fahren Sie fort und klicken Sie auf Alle speichern. Jetzt kostet dieser Artikel auch. Denken Sie im Player daran, wenn ich zum Player gehe, haben wir eine Funktion aufgerufen, die aber kostet. Wenn ich darauf klicke, müssen wir sie miteinander verknüpfen, sonst funktioniert es nicht mehr so wie zuvor. Mach weiter und verbinde sie miteinander. Kompilieren Sie, wenn Sie sicherstellen möchten, dass Sie keine anderen Orte verpasst haben. Klicken Sie außerdem mit der rechten Maustaste auf diesen Artikel Kosten, fahren Sie fort und klicken Sie auf Referenzen suchen, nur um sicherzugehen. Und klicken Sie auf das kleine Symbol Daraufhin werden Ihnen alle Referenzen angezeigt , die Sie dafür verwendet haben. auf dieses klicken, haben wir hier nicht wirklich etwas getan. Alles sollte gut funktionieren. Gehen wir jetzt zurück zu den Datentabellen und ich werde sie erneut importieren, damit es so korrekt ist. Jetzt ist es in Ordnung. Jetzt klicken wir auf Play. Jetzt ist mein Motor abgestürzt und das passiert normalerweise manchmal, wenn man Dinge innerhalb einer Struktur bearbeitet und versucht, auf Play zu klicken, stürzt es ab Aber wenn du das zweite Mal öffnest, sollte es funktionieren. Wenn ich jetzt auf Play klicke und du manchmal solche Dinge siehst, kannst du das tatsächlich beheben. Manchmal muss es aktualisiert werden. Wenn Sie die Wiedergabesteuerung öffnen und auf Datei klicken, alle Knoten aktualisieren und erneut auf Abspielen klicken, sollte es funktionieren. Ich weiß nicht, warum es das tut, manchmal tut es das normalerweise auch bei meinen anderen Spielen. Aber du kannst rausgehen und dich aktualisieren und es funktioniert einwandfrei. Okay, jetzt können Sie sehen, dass der Mausklick einwandfrei funktioniert. Und wenn ich immer mehr kaufe, funktioniert es auch gut. Es zeigt mir den Preis. Jetzt müssen wir einen Spannpunkt für diesen Mausklick hinzufügen. Und das machen wir in der nächsten Lektion. 100. 11.02 Den Mauszeiger zum Startpunkt hinzufügen: Um die Maus hinzuzufügen. Also Spawnpoint, lass uns das hier machen Öffnen wir die Spawn-Punkte. Jetzt haben wir Spawnpunkte für diesen Gegenstand, sodass wir nicht wirklich Kinder erstellen müssen. Denken Sie daran, dass wir nur diesen verwenden Wir können auf den ersten klicken und sicherstellen, dass es ein Mausklick ist Dies ist standardmäßig so, weil wir die Aufzählung zuvor neu angeordnet haben die Aufzählung zuvor neu angeordnet Wenn Sie auf diesen einen Mausklick klicken, öffnen Sie jetzt Ihre Aufzählung und stellen Sie sicher , dass alle in der richtigen Reihenfolge sind Ich glaube, dass einer von ihnen falsch ist , weil wir immer noch zehn haben und wir den Mausklick als einen von ihnen haben, eines dieser Elemente fehlt Stellen Sie einfach sicher, dass Sie sich alle durchklicken und sicherstellen , dass sie korrekt sind. Ich werde das einfach hier oben kopieren. Lassen Sie mich sicherstellen, dass es die gleiche Entfernung ist wie bei allen anderen und dass es so ist. Ich stelle sicher, dass dies ein Mausklick ist. Der nächste ist Light Feather. Und gehen Sie sie hier einfach durch. Der nächste ist Torch und so weiter. Okay, jetzt sind sie in der richtigen Reihenfolge. Mach weiter und speichere sie alle , wenn sie es sind. Wenn du jetzt auf Play klickst und versuchst, es zu spawnen, wird es nicht erscheinen Denken Sie daran , dass wir einige festgelegt haben, um die wir uns kümmern müssen Wenn ihr den Spielmodus öffnet und euch daran erinnert, was ihr mit den Gegenstandspunkten gemacht habt, haben wir hier diese Funktion namens Gegenstände auf Punkte setzen und Gegenstandspunkte sammeln erstellt . Lass uns diese Funktion öffnen: Gegenstände punktgenau platzieren. Wir müssen einen für die Mausklicks machen. Ich werde diesen duplizieren. Ich werde es Mausklickpunkte nennen. Mach weiter und füge es hier hinzu. Stellen wir sicher, dass wir nichts anderes haben. Lass uns kompilieren. Gehen wir zu Get Items, um auch Punkte zu finden. Lass mich das hier einfach kopieren und einfügen. Löschen Sie diesen und fügen Sie stattdessen die Mausklicks hinzu. Fahren Sie fort und stellen Sie eine Verbindung her. Kompilieren. Ich glaube, das sollte es sein. Klicken Sie auf dieses, Sie können sehen, dass es richtig funktioniert, genau wie die anderen Artikel. Jetzt funktioniert das einwandfrei. Jetzt gibt es momentan ein Problem damit, weil es nicht Null DPS anzeigen sollte, und es sollte auch nicht angezeigt werden, dass derzeit Null DPS angezeigt Das Problem mit diesem ist momentan, dass die Maus nicht wirklich Schaden pro Sekunde verursacht, die Maus verursacht Schaden pro Klick Anstatt Schaden pro Sekunde anzuzeigen, müssen wir Schaden pro Klick anzeigen. Im Moment heißt es Null Schaden pro Sekunde, weil wir in den Artikelinformationen nicht angegeben haben, wir in den Artikelinformationen nicht angegeben haben wie viel Schaden pro Sekunde es haben sollte Du könntest zum Beispiel fünf sagen. Und wenn ich auf Play klicke, siehst du, dass dort fünf steht. Aber auch hier sind wir nicht wirklich an Schaden pro Sekunde interessiert, wir sind eher an Schaden pro Klick interessiert. Lassen Sie uns also weitermachen und das als Nächstes beheben. 101. 11.03 Den Schadentext richtig anzeigen: Damit der Text korrekt angezeigt wird? Offensichtlich müssen wir jetzt zur Benutzeroberfläche gehen und den Tooltip ansehen. Lass uns hier reingehen Lassen Sie uns jetzt für den DPS öffnen , nur um sicherzugehen, dass der Text korrekt angezeigt wird Nun zum Schaden, ich schreibe einfach etwa 40, um sicherzugehen , dass das, was ich mir ansehe, falsch oder statisch ist Ich stelle sicher, dass ich, wenn ich auf „Abspielen“ klicke wirklich das Original sehe , nur um sicherzugehen , dass ich keine Ära habe. Nun, hier in der Grafik müssen wir sicherstellen, dass dort für die Maus steht, dass jeder Mausklick fünf Schaden pro Klick verursacht. Und derzeit verursacht es zum Beispiel fünf Schaden pro Klick anstelle von Schaden pro Sekunde Denken Sie beim ersten Text daran, wie sie heißen. Der erste heißt, gibt DPS und der zweite gibt DPS-Betrag Nun, das müssen wir nicht wirklich ändern, wir müssen nur den DPS-Betrag angeben und wenn wir den DPS-Betrag machen, gehen wir zurück Dieser gibt den DPS-Betrag an. Anstatt diesen zu sagen, werde ich die Verbindung trennen Ich werde von hier aus Regie führen und Select sagen. Jetzt müssen wir einen ausgewählten Knoten verwenden. Wofür werden wir nun auswählen? Wir werden auswählen, ob es sich um einen Mausklick handelt oder nicht. Denken Sie daran, dass wir die Artikelinformationen hier haben. Und wenn ich dieses Vorschaubild einfach ausblende , weil wir es nicht brauchen Aber ich zeige dieses Objekt, das wir von hier ziehen können, und dann Equal, Equal Enum sagen , wenn das gleichbedeutend ist Mausklick und füge es hier unten ein Was wir jetzt sagen können ist: Denken Sie daran, dass wir ein Textformat verwenden müssen Ich ziehe wieder hierher und sage Text formatieren. Ich werde hier unten auch einen verwenden, Text formatieren. Nun zu diesem, wenn es kein Mausklick ist, sollte es einfach dasselbe sagen wie zuvor. Fahren Sie fort und fügen Sie es in Eingabetaste ein, um dies zu sehen. Jetzt ist das der DPS-Betrag, genau wie zuvor. Ich werde das tatsächlich wieder hierher ziehen und ich werde es einfach wegschieben , damit ich etwas Platz habe Nun zu diesem, wenn es wahr ist , dass das der Mausklick ist, möchte ich hier anstelle von DPS einfach Schadenssummen sagen Sagen wir Schaden pro Klick. Jetzt sage ich Schaden pro Klick. Im Grunde genommen ist der Schaden pro Sekunde hier. diesem DPS können wir festlegen, wie viel Schaden er anrichten soll wie viel Schaden er dir geben soll oder wie viel Schaden er dir geben soll, wann immer du im Laden kaufst Wenn ich einfach kompiliere und zu meiner Datentabelle zurückkehre, nur um sicherzugehen, dass sie korrekt ist, öffne ich meiner Datentabelle zurückkehre, nur um sicherzugehen, dass sie korrekt ist, dafür die Artikelinformationen, die tatsächlich keinen Artikel kosten Ich werde nur sagen, dass es mir jedem Upgrade 25 Schaden zufügt. Und stellen Sie sicher , dass Sie zu Ihren Google Sheets gehen und es hier ändern, sonst wird es falsch sein. Sie jedes Mal, wenn Sie diese Tabelle importieren sicher, dass sie hier beispielsweise 25 ist. Gehen wir jetzt hier zurück zum Tooltip und lassen Sie uns weitermachen Das sollte korrekt sein. Ich kann diesen löschen und alles zur Seite schieben , damit ich sie in der Ansicht habe. Ordnung. Ich ordne die Dinge einfach gut Das ist jetzt richtig. Jetzt lass uns weitermachen. Das nächste ist dieser eine Text, der DPS macht. Diesen, bevor du ihn von hier ziehen und Auswählen sagen kannst. Dann kurz vor dem Formatieren für das erste, formatieren Sie Text, formatieren Sie Sex für das zweite. Auch hier sollte es wählen, ob es der Mausklick ist oder nicht. Ich werde das einfach hier reinziehen, genau wie zuvor. Wenn es nicht der Mausklick ist, fügen wir einfach diesen hinzu , den wir zuvor hatten. Wir ändern es jetzt nicht. Wenn es jedoch der Mausklick ist, wollen wir hier den Gesamtschaden sagen. Dies ist zum Beispiel die Gesamtsumme des Schadens. Dieser wird im Grunde sagen , dass er derzeit zum Beispiel 60 Schaden anrichtet. Sie können es auch Schaden pro Klick nennen , wenn Sie konsistent bleiben möchten. Nennen wir es Schaden pro Klick. Nun zum Schaden: Es ist nicht wirklich dieser Schaden pro Sekunde, den wir hier hinzufügen, aber es ist richtiger, die Cursor-Schadensvariable hinzuzufügen Denken Sie an das Innere des Spielers, wenn ich zurückgehe, ist das schon lange her Eigentlich haben wir von Beginn des Kurses an diesen Cursor Damage Float hier erstellt, wir können diesen hinzufügen. Ich gehe zurück zum Tooltip, wir haben den Spieler schon, wenn ich vom Spieler ziehen und Cursorschaden sagen kann . Jetzt können wir das hier hinzufügen und es sollte gut funktionieren. Auch hier werde ich diesen für diese Nummer löschen. Nochmals, stecken Sie es hier ein , damit es nicht falsch ist. Das hatten wir schon einmal. Ich werde die Dinge einfach schön neu anordnen. Ordnung, einfach so und mach weiter und kompiliere und speichere alles Lass uns auf Play klicken und sehen, was passiert, wenn ich mit der Maus darüber halte. Es heißt, dass jeder Mausklick 25 Schaden pro Klick verursacht. Man kann es auch DPC nennen, ich glaube, das ist ein Begriff, statt DPS kann man DPC für Schaden pro Klick nennen, wenn man Sie können sehen, dass es nicht wirklich etwas aussagt und das liegt daran, dass wir es nicht aktualisieren wie all die anderen, die wir tun. Das ist eigentlich das nächste , was wir tun müssen. Wir müssen das aktuelle Update aktualisieren, da es dir tatsächlich 25 Schaden pro Klick zufügt. Aber du kannst es nicht sehen, weil du den Text darunter nicht aktualisierst. Sie aktualisieren diese Variable, die den Cursor beschädigt, nicht. Lassen Sie uns mit der nächsten Lektion fortfahren und das tun. 102. 11.04 Schaden des Mauszeigers aktualisieren: Es ist jetzt an der Zeit, die Maus zu aktualisieren , wenn du auf Spielen und kaufen klickst Wenn Sie hier mit der Maus klicken, können Sie sehen dass sie automatischen Schaden anrichtet, was nicht passieren sollte, da der Mausklick im Grunde dort ist, wo Sie auf den Feind klicken und er mehr Schaden anrichten sollte. Lass uns weitermachen und den Mausschaden verbessern , anstatt den automatischen DPS Lassen Sie uns das schließen. Und das haben wir im Player gemacht. Wenn du den Player öffnest und wir zurück zum Event-Diagramm gehen, wenn du „Organisieren“ sagen möchtest, kannst du jederzeit mit der rechten Maustaste hier oben klicken und die Tabs auf der rechten Seite schließen damit wir nicht alles sehen müssen. Denken Sie daran, dass wir beim Kauf des M den gesamten Schaden pro Sekunde aktualisiert haben Das war diese Funktion hier. Anstatt den gesamten DPS beim Kauf per Mausklick zu aktualisieren , sollten wir das hier tun Wir wollen stattdessen die Maus aufrüsten. Hier ist rechts in den Funktionen, wir können auf das Plus klicken. Lassen Sie uns eine neue Funktion namens Cursorschaden erhöhen erstellen. Das einzige, was sie hier in der Eingabe tun wird, ist, einen Float hinzuzufügen und diesen einen Schaden hinzuzufügen. Nehmen wir den Cursorschaden wir zuvor verursacht haben. Fügen wir den Schaden hinzu, den wir hinzufügen möchten. Dann setzen wir es wieder in diese Variable zurück. Jetzt haben wir also diesen neuen Cursorschaden. Das ist im Grunde die Funktion dieser Funktion hier, dass sie nur den Schaden, den wir dem Cursorschaden hinzufügen wollen, hinzufügt und ihn hier als neuen Wert festlegt. Kehren wir zum Ereignisdiagramm zurück und verwenden wir diesen, um den Cursorschaden zu erhöhen, anstatt den gesamten Schaden pro Sekunde für die Maus Um nun zu wissen, ob es die Maus handelt oder nicht, denken Sie daran, dass wir hier in der Artikelstruktur auf die Artikelinformationen klicken und alles vorerst ausblenden können , dass wir hier in der Denken Sie daran, dass wir hier in der Aufzählung die Mausklick-Aufzählung gemacht haben die Mausklick-Aufzählung gemacht Ich mache, klicken Sie hier und ich ziehe von hier aus Und dann sage ich Gleiche, gleiche Aufzählung. Und dann mach weiter und wähle diesen Mausklick hier. Wenn diese Aufzählung einem Mausklick entspricht, wenn dieses Element, über das wir sprechen, einem Mausklick entspricht So wie wir das innerhalb der Datentabelle wissen, geben Sie hier Ihre Informationen ein Wenn Sie die Artikelinformationen öffnen und dann mit der Maus klicken, denken Sie daran, dass wir das Objekt hier als Mausklick eingestellt haben, damit es weiß, was Sie ausgewählt haben. Wenn Sie hier etwas falsch ausgewählt haben, erhalten Sie eine Fehlermeldung, wenn das Objekt hier mit der Maus angeklickt wird und wir von hier aus ziehen und dann eine Verzweigung erstellen können. Jetzt werde ich es hinzufügen. Nachdem ich den Gegenstand gespawnt habe, werde ich die Verbindung zu diesem Objekt tatsächlich trennen Und lass uns die hierher ziehen. Bevor wir die Benutzeroberfläche aktualisieren, da wir dies tun müssen, bevor wir die Benutzeroberfläche aktualisieren, die Benutzeroberfläche korrekt aktualisiert. Wir müssen die Informationen hinzufügen, wir werden das Objekt spawnen und dann werden wir diesen Zweig verbinden Okay, das ist der Mausklick. Wenn der Gegenstand der Mausklick ist, wollen wir den Kristallschaden erhöhen. Ist dies nicht der Fall, möchten wir den gesamten DPS aktualisieren. Denken Sie dann daran, sie wieder hierher zu verbinden. Wenn du etwas übersichtlicher bleiben möchtest, kannst du an einem hinteren Routenknoten wie diesem jederzeit auf diesen doppelklicken . Und du kannst das nehmen und es hier einstecken, damit es besser aussieht. Jetzt wollen wir den Schaden, den wir hinzufügen wollen, hier hinzufügen. Nehmen wir einfach das DPS. Wenn ich hier drüben klicke, klicke ich auf das DPS und ich kann es bis zur Funktion ziehen Auch hier werde ich einige hintere Routenknoten dafür erstellen. Und einfach so, okay, jetzt haben wir das DDPS blockiert Nun, jedes Mal, wenn wir den Mausklick verbessern, werden wir ihn zum erhöhten Cursorschaden hinzufügen , statt zum gesamten Schaden werden wir ihn zum erhöhten Cursorschaden hinzufügen, statt zum gesamten Schaden pro Sekunde. Wenn ich jetzt kompiliere und auf Play klicke und hier ein Upgrade durchführe, kannst du sehen, dass meine Benutzeroberfläche korrekt ist oder aktualisiert Wenn ich auf den Feind klicke, richtet er auch den richtigen Schaden an. Wenn ich auf ihn klicke, heißt es 65. Wenn ich erneut aktualisiere, heißt es 90. Ich führe ein paar Mal erneut ein Upgrade durch. Es heißt 240 und es sollte jetzt 340 heißen. Und Sie sehen, dass es die richtige Menge an Schaden anrichtet. Jetzt sind wir mit dem Upgrade des Cursors fertig. 103. 11.05 Das Mauszeiger-Widget entwerfen: Um es ein bisschen interessanter zu machen, lassen Sie uns den Mauszeiger ändern, da Sie sehen können, dass wir den normalen Windows-Mauszeiger haben Aber lassen Sie uns es in ein anderes Symbol ändern, damit es ein bisschen besser aussieht, das zu tun. Ich habe dir hier in den Kosteninformationen Informationen gegeben, ich habe dir einige Mauszeiger gegeben , die ich tatsächlich in Farm Tail verwendet habe, aber wir können sie jetzt verwenden Gehen wir hier zur Benutzeroberfläche und zu den Symbolen. Ziehen wir diese Symbole einfach hierher. Jetzt müssen Sie auf diese Einstellungen kein Papier mehr auftragen, da es sich nicht um die Pixelmenge handelt. Gehen wir zurück zur Benutzeroberfläche. Und lassen Sie uns hier mit der rechten Maustaste klicken neue Benutzeroberflächen-Widgets erstellen. Fahren Sie fort und klicken Sie hier. Nennen wir diesen einen Mauszeiger. Lass es uns hier drinnen öffnen. Was ich zuerst tun möchte, ich möchte ein Leinwand-Panel hinzufügen . Ziehen wir das nach unten. Das einzige, was wir hinzufügen wollen, ist ein Bild. Und das wird der Cursor sein. Was ich noch einmal machen werde, ich werde hier oben klicken und auf dem Bildschirm „Gewünschtes“ für dieses Bild sagen . Wir können ihm eine Größe geben. Was nun die Größe des Bildes angeht, hängt es von der Größe des Mauszeigers ab. Wenn ich zu den Symbolen gehe und mir diesen Mauszeiger ansehe, ist es 93 mal 101. Lassen Sie uns also das schreiben, 93.100.1 Wie Sie sehen können, ändert sich die Bildgröße Das liegt daran, dass Sie auf Größe zum Inhalt klicken müssen, und jetzt ist es korrekt Okay, das ist richtig. Jetzt wollen wir es auch auf dem Bildschirm zentrieren. Und da ich nicht hier oben bin, werde ich den Anker in die Mitte ändern. Und ich werde hier 00 in X und Y schreiben. Und wir wollen nicht 0,5 in die Ausrichtungen schreiben, weil die Maus tatsächlich in die Mitte der Leinwand klickt in die Mitte der Leinwand Das ist soweit richtig. Wenn wir auf dieses Widget klicken, ändern wir es in den Cursor. Und das ist die Standardeinstellung. Der Mauszeiger hier. Und lassen Sie uns kompilieren und speichern. Ich glaube, wir müssen es kleiner machen , weil es im Spiel sehr groß sein wird. Aber wir müssen es zuerst testen, bevor wir es wissen. Auch für dieses Image möchte ich es so einstellen, dass es nicht testbar ist, damit es das Spiel nicht beeinträchtigt Jetzt ist es einsatzbereit. Gehen wir zurück zum Player-Controller. Innerhalb des Player-Controllers wollen wir, genau wie bei dem, was wir zuvor mit der Benutzeroberfläche gearbeitet haben , mit diesem hier oben im initialisierten Player arbeiten hier oben im initialisierten Player Jetzt werden wir hier kein Widget öffnen und schließen. Es macht keinen Sinn , hier Kredit aufzunehmen. Stattdessen werden wir es dem ersten Spieler hinzufügen. Ich werde einfach diese Widgets kopieren. Und lass uns nach unserem Mauszeiger suchen . Lass uns zuschlagen, klicke hier. Machen Sie daraus eine Variable und nennen Sie sie Mauszeiger. Wenn Sie nun von hier aus ziehen und einfach nach Maus suchen, sehen Sie etwas namens Mauszeiger-Widget setzen. Dies ist eine Standardfunktion in Unreal Engine. Wenn Sie darauf klicken, möchten Sie hier im Grunde Standard auswählen Dies wird unser Standardcursor sein. Wir haben jetzt definiert , dass dieses Widget wir gerade erstellt haben, jetzt der Standardcursor ist. Wenn Sie auf Play klicken, können Sie jetzt sehen, dass dies die Maus ist. Wir können damit klicken, und Sie können sehen, dass es sehr präzise ist. Jetzt schiebe ich es ein bisschen nach oben, denn wie Sie sehen können, klickt es ein bisschen nach oben. Wenn wir zum Widget zurückkehren, denke ich, dass ich es jetzt etwas kleiner machen werde , weil es vielleicht zu groß ist. Gehen wir zurück und reparieren das. Gehen wir zurück zur Benutzeroberfläche und öffnen den Cursor. Sie können jederzeit hier klicken und zum Beispiel minus fünf hier, minus fünf hier drin sagen . Minus fünf auch zwischendurch. Ich glaube, ich sage hier wieder minus fünf, minus fünf. Wenn ich auf Play klicke und mir das ansehe, kann es meiner Meinung nach etwas kleiner sein. Nochmals, minus zehn, vielleicht minus zehn hier. Klicken Sie auf Abspielen. Ich denke, das ist jetzt viel besser. Wenn du es nun nach oben drücken willst, kannst du die Position in X und Y jederzeit anpassen. Wenn du fünf schreibst, ist es eigentlich minus fünf, wenn du in die andere Richtung gehst Sagen wir mal minus fünf mal minus fünf. Das ist viel besser. Sie können auch hier versuchen, dies so gut wie möglich anzupassen , wenn Sie zufrieden sind. Das ist jetzt die Maus, die wir haben. Jetzt brauchen wir auch ein Klick-Event, denn wie Sie sehen können, wenn wir klicken, hat es nicht wirklich einen weiteren Effekt. Und ich denke, wir können es ein bisschen besser machen indem wir einen Klick-Effekt haben. Dies ist der andere Cursor, den wir importiert haben. Das ist der gedrückte, okay, also wenn wir jetzt hierher zurückkehren, setze ich diese Position x auf minus acht und minus fünf , um es ein bisschen besser zu machen. Wenn Sie nun bereit sind, gehen wir zur Grafik und mischen uns ein. Lass uns das alles löschen. Ich möchte ein neues benutzerdefiniertes Ereignis erstellen. Lassen Sie uns ein neues benutzerdefiniertes Ereignis erstellen und dieses One Set Image nennen . Was wir hier machen wollen, ich will eigentlich eine neue Aufzählung Wenn Sie zum Blueprint gehen und Aufzählungen öffnen, klicken wir mit der rechten Maustaste und erstellen eine neue Aufzählung klicken wir mit der rechten Maustaste und erstellen eine Dies wird im Grunde eine Liste der Zustände enthalten, in denen die Maus gedrückt wurde Wenn ich einfach seinen Status anrufe, öffne ich ihn, eigentlich gebe ich ihm hier am Ende ein S. Nun zu den Mauszeigerzuständen, wir könnten einen Standard-Mauszeiger haben, wir könnten einen gedrückten Mauszeiger haben. Jetzt haben wir diese beiden Zustände. Wenn ich jetzt zum Widget zurückkehre und dies als Eingabe hinzufüge, suchen wir nach Mäusen und wählen diese Aufzählung aus, die wir gerade Ich nenne es Moussa gibt hier das Ziel an. Wir versuchen, dieses Bild zu ändern, je nachdem, ob wir gedrückt haben oder nicht Ich nenne dieses Bild einfach Mauszeiger. Setzen wir es auf eine Variable, damit wir es im Code ändern können. Wenn ich hierher zurückgehe, ziehe ich das und sage „Pinsel aus Textur setzen“. Jetzt hängt die Textur davon ab, was wir als Mauszeigerstatus haben. Wenn ich einfach von hier ziehe und Auswahl sage und diesen Knoten hier auswähle, können wir ihn in den Index ziehen. Wenn es nun der Standardstatus ist, haben wir das in die Aufzählung geschrieben Wenn es der Standardstatus ist, möchte ich diesen Mauszeiger auswählen Wenn es der gedrückte Zustand ist, möchte ich diesen Mauszeiger hier auswählen. Jetzt können wir dieses eingestellte Bild verwenden, je nachdem, was wir im Spiel machen. Denken Sie daran, die Tasten zu drücken. Das haben wir im Player gemacht. Wenn ich zurück zum Player gehe, gehe ich zum Event-Graph, das ist richtig. Jetzt müssen wir das Event finden, das wir verwendet haben, wenn wir auf den Feind geklickt haben. Jetzt haben wir noch kein wirkliches gemacht, weil das, was wir bisher gemacht haben, innerhalb des Feindes passiert ist Wir haben hier dieses Klick-Event. Das hier oben hat auf die Kapselkomponente geklickt. Wir haben hier nicht wirklich eine Veranstaltung veranstaltet. Immer wenn wir mit der Maus klicken, müssen wir das eigentlich auch tun. Um das zu tun, müssen wir mit Eingaben arbeiten. Lassen Sie uns das in der nächsten Lektion machen. 104. 11.06 Die Mausklick-Eingabe hinzufügen: Ordnung, um das Ganze zu beenden, müssen wir eine Mauseingabe für jedes Mal hinzufügen , wenn wir mit der Maus klicken , damit wir das Bild ändern können Dazu müssen wir eine Eingabe für den Spieler hinzufügen. Wenn ich einfach schreibe, klicke hier und erstelle einen neuen Ordner, und ich nenne ihn einfach Player. Und zieh das hier rein. In diesem Player werde ich klicken und erneut einen neuen Ordner erstellen, den ich Input nenne. Gehen wir nun in diesen Ordner hinein und klicken Sie hier mit der rechten Maustaste auf die Eingabe. Wenn Sie noch nie damit gearbeitet haben, fügen Sie hier die Tastaturtasten usw. hinzu. Also wann immer du in einem RPG-Spiel herumläufst und so weiter. Also im Grunde nur die Eingabe für Tastatur, Maus und Pads Lassen Sie uns zunächst einen Eingabe-Mapping-Kontext erstellen. Das müssen Sie tun. Nennen wir das IMC Für den Eingabe-Mapping-Kontext können Sie es einfach Standard nennen Okay. Klicken Sie erneut mit der rechten Maustaste. Eingabe, und wir müssen etwas erstellen, das als Eingabeaktion bezeichnet wird. Mach weiter und erstelle eine. Nennen wir das einen Mausklick, zum Beispiel Mausklick. Lassen Sie uns diesen öffnen. Was wir hier drinnen tun müssen, ist im Grunde nichts. Lass es uns schließen, weil wir nur mit der Maus klicken müssen und schon sollte etwas passieren, also müssen wir hier nicht wirklich etwas tun. Lassen Sie uns den Eingabe-Mapping-Kontext öffnen. Hier müssen wir auf das Plus klicken. Wenn Sie jetzt auf das Plus klicken, müssen Sie eine Eingabeaktion hinzufügen. Das haben wir gerade erstellt und als Mausklick bezeichnet. Für diese Eingabeaktion müssen Sie eine Schaltfläche zuweisen. Für diesen hier klicke ich einfach hier. Und dann klicke ich mit der linken Maustaste. Und es wird es automatisch zuweisen. Finden Sie es auch hier oben, wenn Sie einfach nach Maus suchen und sehen können, dass Sie all diese Dinge hier auswählen können, aber wir haben es schon hier. Linke Maustaste. Ich werde hier in den Triggern klicken, ich werde auf Plus klicken und den Auslöser auswählen, der gedrückt heißt. Der Grund, warum ich das mache, ist, wenn du es nicht tust, wirst du mehrmals klicken. Ich werde dir zeigen, ob ich das vorerst einfach lösche Wir können es einfach lassen und dann wieder darauf zurückkommen. Jetzt müssen wir das dem Player hinzufügen. Wenn ich zum Player zurückkehre, öffne ich den Player, wir müssen hier den Eingabe-Mapping-Kontext hinzufügen. Bevor es funktioniert, machen wir das, bevor wir die Anzahl der Symbole und des Schadens usw. aktualisieren . Also lass es uns hier drinnen machen. Was wir tun können, ist den Player-Controller zu benötigen. Ich nehme tatsächlich diesen Player-Controller, du kannst nach Enhanced suchen, du siehst dieses Subsystem namens Enhanced Input Local Player Subsystem Wählen Sie das aus bevor wir weitermachen und damit arbeiten Immer direkt von hier aus und sag ist gültig, weil es manchmal zu einer Fehlermeldung führt , wenn es nicht geladen wurde und du versuchst, den Spieler zu bewegen oder Eingabeaktionen auszuführen. Fahren Sie fort und wählen Sie zuerst ist gültig. Wann immer es gültig ist, können wir von hier aus ziehen und sagen, dieses eingeben. Fügen Sie den Mapping-Kontext hinzu, fahren Sie fort und wählen Sie aus. Sie dann für den Mapping-Kontext den aus, Wählen Sie dann für den Mapping-Kontext den aus, den Sie gerade erstellt haben. Jetzt sollte es gut funktionieren zu testen, ob das tatsächlich funktioniert oder nicht. Sie können einfach hier hingehen und schreiben, klicken und nach dem Namen der Eingabeaktion suchen, den Sie erstellt haben. Ich habe den sogenannten Mausklick erstellt . Mach weiter und wähle es aus. Ich werde nur eine Zeichenfolge auf den Bildschirm drucken. Kompilieren. Wenn ich hier klicke, siehst du, dass dort Hallo steht. Wenn ich mit der Maus klicke, heißt es Hallo. Der Grund, warum wir einen Trigger hinzufügen müssen der für die Eingabeaktion gedrückt wird, ist, dass Sie sehen können , ob ich die Maus gedrückt halte, um diesen Code, den ich hier hineinschreibe, als Spam zu versenden. Und das wollen wir nicht. Wenn ich zum Eingabe-Mapping-Kontext und zu den Triggern zurückkehre , klicke ich auf das Plus und füge diesen gedrückten Zustand hinzu. Drücken bedeutet, dass der Code nur einmal abgespielt wird , wenn ich hier klicke. Und dieser Code wird abgespielt , wenn ich einfach noch einmal eine Druckzeichenfolge schreibe und auf Abspielen klicke. Wenn ich jetzt die Maus gedrückt halte, können Sie sehen, dass es kein Spam wird. Es wird es nur einmal sagen. Jedes Mal, wenn ich klicke , werde ich mehrmals klicken. Jetzt können Sie sehen, dass es immer nur tief gedruckt wird , wenn ich mit der Maus klicke, und es wird nur einmal gedruckt. Das dient nur der Optimierung, damit du das nicht immer und immer wieder spielst . Jetzt können wir diese Eingabeaktion tatsächlich verwenden. Lass mich das alles einfach nach oben verschieben. Lass mich das hier unten hinzufügen. Jetzt können wir damit unseren Mauszeiger anzeigen. Denken Sie daran, dass sich der Mauszeiger im Play-Controller befindet. Nehmen wir wieder den Play-Controller. Lassen Sie uns von hier aus nachverfolgen und dem Widget suchen, das wir erstellt haben. Wenn Sie nach Maus suchen und nach unten gehen, befinden sich Ihre Variablen immer dort. Wir haben diesen einen B-Mauszeiger hier drinnen erstellt. Wenn Sie sich nicht erinnern, gehen wir einfach zurück zum Rückruf. Gehe zu dem Diagramm, das wir erstellt haben. Dieses Bild heißt Set Mouse Cursor Image. Wenn ich zum Player gehe, ziehe ich und sage „ Maus pro Bild einstellen“. Immer wenn es ausgelöst wird, stellen wir das P so ein, dass es gedrückt wird. Anstatt das einfach zu tun, müssen wir jetzt zwei Dinge tun. Wann immer es abgeschlossen ist und wann immer es ausgelöst wird. Wann immer es ausgelöst wird, stellen wir es auf Drücken ein, und wir kopieren das und fügen es ein. Und ziehen Sie das in das Ziel , wenn es fertig ist. Machen wir die Standardeinstellung, schauen wir mal, was passiert. F p, Sie können sehen, dass es tatsächlich funktioniert, aber es wird sehr schnell ausgelöst Das liegt daran, dass es das hier auslöst. Aber wann immer es abgeschlossen ist, was fast sofort passiert, wird es wieder auf die Standardeinstellung gesetzt Das ist tatsächlich das, was passiert. Deshalb sieht es so aus. Um das zu beheben, kehren wir hier zum Eingabe-Mapping-Kontext zurück. Fügen wir noch einmal einen hinzu. Fügen wir einfach dasselbe hinzu. Die linke Maustaste, klicken Sie hier. Klicken Sie mit der linken Maustaste auf Ihrer Tastatur oder mit der Maus in den Triggern. Klicken Sie auf das Jetzt, anstatt nur hier oben zu drücken. Wir müssen auch Freigegeben auswählen. Mach weiter und mach das. Speichern. Gehen wir zurück zum Player. Eigentlich musst du nichts tun. Es ist richtig, wenn ich auf Abspielen klicke, jetzt kannst du sehen, ob ich klicke, lasse ich los. Das ist jetzt richtig. Das ist Do the Mouse. Jetzt können Sie sehen, dass es mit der Maus einen cooleren Effekt hat, wenn wir den Cursor auf diesen statt auf den Standardcursor geändert haben . Und wir haben auch die gedrückten Zustände. Wenn Sie in Zukunft weitere Maus-Widget-Status hinzufügen möchten , müssen Sie in die Aufzählung, die Blueprints, gehen und die Status hier hinzufügen Denken Sie dann daran, zur Benutzeroberfläche zu gehen, den Mauszeiger zu öffnen und auch im Diagramm die richtigen Bilder auszuwählen, die Sie hier verwenden möchten 105. 12.01 Die endgültige Karte entwerfen: In Ordnung, jetzt ist es an der Zeit, die Karte zu entwerfen. Also klicke ich auf Play. Alles sieht gut aus. Wir haben das Level, wir haben den Laden, wir haben die Münzen, wir haben den Mauszeiger. Aber lassen Sie uns jetzt tatsächlich auch das Level selbst entwerfen. Jetzt mache ich es in meiner Freizeit, aber nur um dich daran zu erinnern, wir zu den Objekten und zu den Umgebungen gehen müssen und zu den Umgebungen hier haben wir diese Kachelmap Gem Prison , die wir zuvor erstellt haben. Denken Sie daran, dass Sie hier zwischen den Kachelsets wechseln können . Du hast die Requisiten. Wenn Sie einige Requisiten hinzufügen möchten, zum Beispiel diese, können Sie darauf klicken Oder Sie können hier klicken und ziehen und beide auswählen. Sie können sie hier hinzufügen. Denken Sie daran, mit der Vorderschicht, der Basisschicht und den Dekorationen zu arbeiten . Sie können jederzeit weitere Ebenen erstellen, wenn Sie möchten, denn wenn Sie hier nur auf die Basisebene malen, werden Ihre Kacheln gelöscht. Sie müssen also eine neue Ebene erstellen und sie dann hinzufügen, damit Sie sie der Vorderseite hinzufügen können. Wenn Sie das auf der Rückseite haben möchten, können Sie jederzeit auf diesen Pfeil klicken. Jetzt befindet er sich unter den Kacheln, sodass Sie ihn nicht sehen können. Ich werde diesen vorerst löschen. Was ich jetzt tun werde, ist im Grunde nur die Kartengröße zu erhöhen, also die Breite und Höhe der Karte. Sie können zum Beispiel so etwas wie 50 mal 50 schreiben oder was auch immer Sie möchten. Vielleicht ist das zu groß, aber versuchen Sie, die Kartenbreite zu finden, die für Sie geeignet ist. Die Sache ist die, wir versuchen, all diesen schwarzen Raum an der Seite zu vermeiden, einfach besser hineinpassen zu lassen. Man muss zum Beispiel nur raten. Sie können einfach eine größere Karte erstellen und versuchen, so etwas hinzuzufügen. Und wenn du auf Play klickst, kannst du immer sehen, wo es ankommt und dann weißt du, wo du hier aufhören musst. Aber im Grunde werde ich diese Karte vergrößern, nur um den schwarzen Raum zu vermeiden. Wir müssen wirklich nichts anderes tun. Vergrößere einfach die Karte, versuche mit den Ebenen zu arbeiten. Fahren Sie fort und wählen Sie die Kachel aus. Versuchen Sie, die Karte nach Ihren Wünschen zu malen. jetzt daran, dass Sie all diese Spawnpunkte für diese Gegenstände haben diese Spawnpunkte für diese Gegenstände Sie können jederzeit, zum Beispiel, nur eine Idee haben, Räume für diese Gegenstände erstellen oder ein Loch für diese Gegenstände Im Grunde genommen müssen diese Gegenstände in das Spiel passen , genauso wie Feind vielleicht in der Mitte spawnt Es steht im Mittelpunkt dieses Spiels. Entwirf es einfach so gut du kannst. Hier gibt es wirklich keine Regeln. Ich werde es einfach so gut wie möglich entwerfen. Versuche einfach, mit all diesen zu spielen. Versuche vielleicht, mit der Ecke zu spielen. Schau, wie sie zusammenarbeiten. Zum Beispiel dieser mit diesem, so wie dieser und dieser hier. Im Grunde. Versuche einfach so gut du kannst, die Karte zu entwerfen und ich melde mich wieder bei dir. In Ordnung, jetzt bin ich zurück. Ich habe ungefähr 30 Minuten damit verbracht , diese Karte zu entwerfen. Wie Sie sehen können, habe ich die Karte entworfen. Und hier ist sie. Ich habe gerade die Karte innerhalb der Kachelkarte entworfen. Die Breite und Höhe der Karte beträgt 50. Ich habe gerade ein paar zufällige Kacheln hinzugefügt. Ich entwerfe die Karte einfach so, wie du willst. Es spielt keine Rolle, wie Sie sie entwerfen, es wird diesen Kurs nicht wirklich beeinflussen. Versuche einfach, so kreativ wie möglich zu sein und Spaß damit zu haben, wenn du fertig bist. Und du kannst hier sehen, dass ich auch die Spawnpunkte der Gegenstände so verschoben habe , dass sie auf dem Boden liegen. Immer wenn ich etwas kaufe, wird es tatsächlich in diesem Ding hier erscheinen Jetzt kann ich die Anzahl der Gegenstände in der Reihe erhöhen , die es hier spawnen kann Vielleicht möchte ich es erhöhen. Lass uns versuchen, das zu tun. Lass uns zum Bauplan gehen Und das haben wir im Spielmodus gemacht. Wenn ich den Spielmodus öffne und wir uns das hier ansehen, und wir uns das hier ansehen haben wir diese Punktefunktion für festgelegte Gegenstände. In dieser Funktion hatten wir einige lokale Variablen. Hier beträgt die lokale Anzahl von Zeilen zwei. Ich wollte zwei bleiben. Jetzt können wir den letzten Index der lokalen Schleife haben. Das ist die Anzahl der Artikel. Das sind zehn Artikel. Weil es so ist, denken Sie daran, dass 0-9 zehn Elemente Ich, versuchen wir, drei hinzuzufügen Ich werde ein paar Artikel kaufen. Hier sieht es aus wie. Und jetzt passt es zur Karte. Das ist es, womit ich mich begnügen werde. Das ist momentan meine Karte. Außerdem möchte ich den Timer etwas erhöhen , weil ich finde, dass er zu klein ist und ein großer Fokus im Spiel ist. Lass uns das schließen. Lass uns zur Benutzeroberfläche gehen. Öffne. Lass uns hier sehen, die Haupt-Benutzeroberfläche hier. Lass uns auf den Text klicken. Statt 28 schreiben wir vielleicht 36 und für das Icon müssen wir es erhöhen, vielleicht 60 mal 60. Lass uns stattdessen auf Play klicken. Ich denke, das ist viel besser weil es immer noch der Hauptfokus ist. Wir können es sogar noch weiter erhöhen, vielleicht auf 40, und dieser Wert ist 60, 64 mal 64. zum Beispiel auf Play klicken , so sieht es aus. Ich denke, das ist viel besser, weil es wiederum der Hauptfokus des Spiels ist. Alles sieht gut aus. Also, wenn du hier etwas am Spiel ändern willst, kannst du im Grunde immer hier reingehen und die Dinge anpassen. Aber ich mag es so wie es gerade ist. Mir gefällt alles daran. Sie können sogar den Namen und die Gesundheit erhöhen, wenn Sie möchten. Ich werde das sogar ein bisschen machen, nur damit wir es besser sehen können. hier statt auf 28 klicke, schreibe ich 32 für den Anruf. Ich werde 55 schreiben, 55 auch aus gesundheitlichen Gründen. Ich werde stattdessen auf Gesundheit 32 klicken. Kompiliere das com Play. Und jetzt kannst du sehen, dass es viel größer ist und wieder im Mittelpunkt des Spiels steht. Es ist also immer schön, wenn die Benutzeroberfläche größer ist. Okay, lass uns jetzt mit dem nächsten weitermachen. 106. 12.02 Die Sound-Cues vorbereiten: Ordnung, jetzt sind wir also an einem Punkt angelangt, an dem wir dem Spiel einige Soundeffekte und auch Musik hinzufügen können Spiel einige Soundeffekte und auch Musik hinzufügen Und das wird das Spiel viel besser machen. Soundeffekte machen fast die Hälfte des Spielerlebnisses aus. Du siehst, obwohl wir ein lustiges Spiel gemacht haben, ist es ohne Geräusche immer noch langweilig. Und ja, lass uns ein paar Soundeffekte hinzufügen und es interessanter machen. Jetzt werde ich im Inhaltsordner einen neuen Ordner namens Audio schreiben, darauf klicken und ihn erstellen. Und hier drinnen, lass uns hier rein gehen. In den Kostenunterlagen habe ich all diese Soundeffekte für Sie in die Kostenunterlagen aufgenommen . Fahren Sie fort und öffnen Sie den SFX-Ordner. Wählen Sie sie alle aus und ziehen Sie sie in den Audioordner Wenn du sie hineinziehst, siehst du all das, und übrigens, viele von ihnen sind sehr laut. Klicken Sie jetzt nicht auf Abspielen, sonst könnten Ihnen die Trommeln platzen. Du kannst dafür immer den Ton leiser stellen, aber sie sind sehr laut. Was wir tun wollen, ist, dass wir daraus so etwas wie Sound-Cues erzeugen Fangen wir zum Beispiel mit dem Namen Kauf Lass uns Q schreiben, klicken und erstellen, damit du es hier oben erstellen kannst. Normalerweise nenne ich es, dass ich dieses Q am Ende lösche. Und ich nenne es S C für Sound Que. Es heißt Sound Que Purchase. Jetzt doppelklicke ich auf diesen Sound Que. Und hier drinnen, ganz einfach, können wir den Sound einfach leiser machen. Ich werde 0,2 schreiben und dann auf Play klicken und schauen, ob es laut oder laut ist. Das ist der Klang davon. Ich kann es vielleicht 20.4 so machen 20.4 so Wir können den Sound später immer noch anpassen, aber ich möchte, dass du das tust Nehmen wir zum Beispiel ein anderes Beispiel, dieses mit dem Namen FX Punch, klicken Sie mit der rechten Maustaste. Und ich kreiere wieder eine Warteschlange daraus. Nennen wir es Sound Punch, öffnen wir es weiter unten. Der Ton vielleicht 0,4 Immer noch super laut. Vielleicht sogar niedriger. Weil das im Spiel als Spam angezeigt wird, vielleicht 0,1 oder 0,05, ich weiß nicht, wir werden es herausfinden Jetzt eine Methode für den Schlag, den du kannst. Es klingt genauso, wenn du auf den Feind klickst Es wird ein bisschen nervig , wenn du immer wieder das gleiche Geräusch hörst. Um das zu ändern, kannst du jederzeit von hier aus zuschlagen. Sie können sehen, dass es hier nicht viele Dinge gibt Sie hier tun können, wie in den Bauplänen, die wir normalerweise sehen Aber ich möchte, dass du diesen benutzt , den man Modulator nennt Wählen Sie es aus und verbinden Sie es stattdessen hier. Nun, was ein Modulator tut, er wird die Tonhöhe des Sounds ändern Wenn Sie darauf klicken und das Minimum der Tonhöhe auf 0,9 und das Maximum auf 1,1 ändern , speichern Sie alles Wenn Sie nun mehrmals auf Play klicken, können Sie hören, dass sich der Sound jedes Mal ändert, wenn Sie auf Play klicken. Es ist nicht ganz derselbe Sound. Es versucht, die minimale und maximale Tonhöhe zu regulieren oder zu ändern. Das ist für diesen gemacht. Wenn wir zum Beispiel mehrere Sounds haben , habe ich diesen hier oder Death 01020304 All das gehört zusammen. Wenn ich einfach alle auswähle, mit der rechten Maustaste klicke und eine einzige erstelle. Wenn wir das erstellen, werde ich es einfach in Sound Or Death umbenennen . Mach weiter und geh da rein. Und jetzt kannst du sehen, dass es das schon für dich gemacht hat. Es hat einen zufälligen Knoten erstellt. Es hat all diese Sounds reingesteckt. Es wird den Sound tatsächlich zufällig auswählen , wenn Sie auf Play klicken Bevor ich das mache, reduziere auch den Ton und klicke auf Super Loud abspielen. Vielleicht 0,10 0,15 Vielleicht ist 0,2 wirklich gut. 0,2 ist in Ordnung. Klingt nett. Jetzt ist das alles gut. Lass es uns vorerst einfach schließen. Schon wieder der Aufstieg, Rechtsklick. Erstelle ein A und lösche dieses. Nenn es S C, Ascension. Öffne es, reduziere die Lautstärke auf zum Beispiel 0,2 , schließe es Dann nehmen wir den nächsten , den Knopf bewegen. Klicken wir mit der rechten Maustaste und erstellen Sie ein Q für dieses. Nochmals, nennen wir es einen Button vorbei und reduzieren den Sound 20.2. Schließen wir es Gehen wir zum nächsten, das ist die Taste, die mit der rechten Maustaste gedrückt wird, erzeugen Sie einen Que-Sound wie diesen Sie können sehen, dass es immer wieder dieselbe Methode , nur um den Ton zu reduzieren. Jetzt drücke ich eine Taste und möchte tatsächlich auch einen Modulator hinzufügen Modulator auch für diesen. Und verbinde es mit minimaler und maximaler Tonhöhe. Stellen wir es dann 20,9 auf 1,1 ein. Jetzt klingt es jedes Mal anders, wenn wir die Taste drücken, was wirklich nett ist Jetzt haben wir wieder Night Death. Klicken Sie mit der rechten Maustaste. Erstellen Sie eine Sound-Queue. Es ist eine etwas langweilige Lektion, weil wir im Grunde einfach dasselbe machen. Aber ich möchte dir nur zeigen, wie du sie erstellst. Nur damit ich weiß, dass du das Konzept hast, lass uns einfach 0,2 machen. Klingt gut. Das nächste, das wir haben, ist das freigeschaltete Level, klicken Sie mit der rechten Maustaste. Erstelle eine Warteschlange. Benennen wir ihn um, um diesen unverschlossenen Level-Bus zu öffnen. Reduziere den Ton auf 0,2. Schließ ihn. Jetzt ist der nächste der entsperrte normale Rechtsklick. Erstelle eine Warteschlange, nenne sie Sound que so und öffne sie wieder, reduziere den Sound auf 0,2 Du kannst dieselbe Methode immer wieder sehen. Jetzt zur Musik. Klicken wir nochmal mit der rechten Maustaste hier, erstellen wir ein Sound-Queue, nennen wir es Sound Music Now für die Musik. Öffnen wir es und klicken wir hier. Lassen Sie uns sichergehen, dass wir angekreuzt haben. Das ist Looping, weil du die Musik loopen musst, sonst wird sie nicht wiederholt und irgendwann hört sie Das C haben wir jetzt schon gemacht. Hier ist der oder Tod. Das haben wir schon getan. Das ist auch der Knaller, der Kauf. Wir haben den Tod für die Raketen getan. Klicken Sie mit der rechten Maustaste auf que. Wir sind fast fertig. Es war eine langweilige Lektion. Nennen wir es Sound Q Rogue 0.2. Wir setzen uns hin. Das Skelett. Wählen wir nun das Skelett aus. Klicken Sie mit der rechten Maustaste, um eine einzelne Warteschlange zu erstellen. Nochmals, ändern wir es auf 0,2. Und ich sollte daran denken, auch den Namen für diese zu ändern. Der letzte ist der Zauberer. Klicken Sie mit der rechten Maustaste auf Erstellen. Nennen wir es Sound Que, öffnen Sie es. 0.2 Jetzt werde ich in meiner Freizeit all diese Lautstärken anpassen, all diese Lautstärken anpassen weil es im Grunde nur darum geht, hier auf Play zu klicken. Und dann hören Sie sich an, wie laut die Geräusche sind, passen Sie einfach die Lautstärke an, wenn Sie fertig sind. Gehen wir zur nächsten Lektion über. 107. 12.03 SFX zur Benutzeroberfläche hinzufügen: Ordnung, jetzt, wo Sie mit der Erstellung aller Sound-Cues fertig sind , gehen wir zurück zur Benutzeroberfläche Jetzt möchte ich, dass du sie eins nach dem anderen nimmst. Beim ersten kann ich die Feindinformationen sehen. Für diese haben wir nicht wirklich Soundeffekte, es sind nur Text und einige Gesundheitsteile. Die erste ist die Levelkarte. Immer wenn wir auf diese Level-Schaltfläche klicken, klicken wir auf die Schaltfläche. Lass uns hier runter gehen. Und du siehst etwas, das man „Sound and Hover gedrückt“ nennt. Sound Lass uns weitermachen und das ändern. Wenn Sie jetzt darauf klicken, können Sie alle Sound-Cues und den Sound sehen , den Sie in diese Engine importiert haben Jetzt ist dieser hier der gedrückte Wenn wir einfach nach Press suchen und diesen hier auswählen, suchen wir nach Hover und wählen diesen aus Kompilieren. Wenn du jetzt auf Play klickst und es ausprobierst, kannst du sehen, dass das der Hover ist, das ist die Presse Es ist ein bisschen interessanter , dass sie hier Sounds haben. Lass es uns schließen. Lass uns zum nächsten gehen. Lassen Sie mich einfach diese Shop-Karte löschen , nur um diese Benutzeroberfläche hier zu sehen oder zu testen. Wir haben hier wirklich nichts, was Geräusche macht. Lass es uns schließen. Lass uns den Artikel im Laden öffnen, Cod. Drinnen haben wir wieder diesen Button. Lass uns die Suche runtergehen, tatsächlich nach diesem hier gedrückt. Lass uns nach dem Hover-Sound suchen , der behoben ist. Lass es uns schließen. Der letzte ist der Tooltip , der auch nichts enthält. Lass uns weitermachen und jetzt alles speichern. Bevor wir fertig sind, fügen wir auch den Mausklick hinzu. Das geht am besten, wenn wir die Feinde öffnen und die feindliche Basis öffnen. Denken Sie daran, dass wir hier drinnen geklickt haben. Wir haben auch all diesen Schaden angerichtet. Spawn-Effekt, Float-Effekt und Treffereffekt. Lass es uns tatsächlich hier machen. Wenn Sie von hier ziehen, wenn Sie einfach nach Sound suchen, haben Sie etwas namens Play Sound Two D. Sie haben auch etwas, nach dem ich gerade suche, Play Sound habe etwas namens Play Sound two D und Play Sound an Ort und Stelle. Sound am Standort abspielen wird normalerweise ganz normal verwendet. Zum Beispiel in drei D-Spielen, in denen sich ein Feind weit entfernt befindet und Sie den Ton an einem bestimmten Ort weit entfernt hören können . Dies ist jedoch ein Zwei-D-Spiel und wir haben den Sound im Grunde als zwei D. Spielen wir den Sound als zwei D. Dies wird hauptsächlich für UI-Elemente verwendet. Man kann auch mit der Maus darüber fahren und es wird direkt ein Geräusch ohne Dämpfung angezeigt, was im Grunde bedeutet, dass man es nicht hören kann, als käme es aus der Ferne oder von einem Ort Es ist perfekt für UI-Sounds. Wählen wir diesen für den Sound aus. Sie können weitermachen und den Punch auswählen. Und mach weiter und wähle es jetzt aus, du kannst es so machen oder du kannst es auch einfach hier machen, zu einer Variablen heraufstufen und du kannst es zum Beispiel Punch-Soundeffekt nennen . Das ist immer gut, denn anstatt später in deinem Spiel suchen und du weißt nicht mehr, wer es war, kannst du jederzeit einfach hier klicken und den Soundeffekt von hier aus ändern. Jetzt haben wir den Punch-Soundeffekt wenn ich auf Jetzt spielen klicke und ihn ausprobiere. Die andere Sache, die wir jetzt tun können ist, jedes Mal, wenn du ein Level freischaltest, lass uns weitermachen und ein Geräusch machen. Ich denke, das wird auch viel interessanter sein , um die Level freizuschalten Denken Sie daran, dass Sie das im Spielmodus gemacht haben. Wenn ich im Spielmodus zum Entlüftungsdiagramm zurückkehre und wir uns das Freischaltlevel ansehen, spielen wir es von hier aus. Lass uns weitermachen und das hier machen. Lass uns von hier wegziehen. Und nochmal, spiel Sound Two D, ich habe tatsächlich zwei verschiedene Sounds für dich hinzugefügt. Wenn du zum Audio zurückkehrst und es öffnest, kannst du hier sehen, dass du etwas namens Unlocks und Unlocked Normal hast Unlocks und Unlocked Normal Je nachdem, ob der Feind ein Boss oder ein normaler Feind ist, können wir tatsächlich etwas damit anfangen Jetzt machen wir das wieder so, dass wir von hier aus ziehen und „Auswählen“ sagen können, denn jetzt können wir je nach Wert den Sound auswählen , um den Status des nächsten Feindes zu ermitteln. Zum Beispiel, ob es ein Boss oder ein normaler Feind ist. Denken Sie daran, wir können sagen, holen Sie sich Feindinformationen. Fahren Sie fort und wählen Sie Feindinformationen abrufen aus. Mach weiter und mach es kaputt. Brecht die Struktur von hier aus auf, den wir kennen, den feindlichen Typ hier. Lass uns weitermachen und das einstecken. Je nachdem, ob es sich um einen normalen oder einen Boss handelt, können wir weitermachen und auswählen, dass wir stattdessen mit der rechten Maustaste hier klicken, diese Variable heraufstufen. Nennen wir es Level Unlocked FX. Dieser ist der Normale. Klicken wir mit der rechten Maustaste auf diese Variable und bewerben Sie diese Variable. Nennen wir diesen einen Boss am Ende. Okay, jetzt haben wir diese beiden ausgewählten und nicht verbundenen Pins Nun zum Namen des Feindes, wo haben wir den her? Denken Sie daran, wir können jederzeit mit der rechten Maustaste klicken und „ Levelinformationen abrufen“ sagen . Mach weiter und wähle es aus. Das Level, von dem wir es bekommen wollen, ist das freigeschaltete Level. Mach weiter und schließ das an, denn das freigeschaltete Level ist dem aktuellen Level immer einen Schritt voraus. Lass uns das wieder aufteilen. Und jetzt haben wir den Namen , den du einstecken kannst, die nicht verbundenen Pins zu verstecken Mach weiter und mach es einfach so strukturierter. Jetzt haben wir diese Informationen. Es wird nur einmal abgespielt, denn jedes Mal, wenn wir das Level freischalten, wird der Sound einmal abgespielt. Lassen Sie uns das alles kompilieren und speichern. Jetzt können Sie loslegen und es ausprobieren. Aber bevor wir das tun, fügen wir den Sound für den normalen Wir können nach entsperrt, entsperrt und nach dem normalen Sound suchen. Für den nächsten, für den Chef. Lass uns weitermachen und den freigeschalteten Boss auswählen, Spiel kompilieren und es ausprobieren. Das ist der Sound, wenn du ein Level freischaltest. Wenn ich das noch einmal mache, kannst du sehen , dass kein Ton zu hören ist, weil ich immer noch Level eins spiele. Wenn ich zurück zu Level zwei gehe, gehe ich zu Level zwei, jetzt habe ich den Sound. Fantastisch. Das ist jetzt der letzte. Wenn ich diesen töte, sollte er den Boss-Sound-Effekt oder das entsperrte Level des Bosses abspielen . Lass uns versuchen, das zu tun. Jetzt ist es ein Boss. Sie können sehen, dass es viel interessanter ist, damit zu spielen. Bevor wir dem Feind weiterhin einige Soundeffekte geben, sollten wir dem Kauf auch einen Soundeffekt verleihen . Für den Kauf haben wir hier im Player. Denken Sie noch einmal daran, dass wir den Kaufartikel haben. Lassen Sie uns den Soundeffekt hier hinzufügen , bevor wir etwas anderes tun. Klicken Sie erneut mit der rechten Maustaste auf Play. Sound zwei D, fahren Sie fort und fügen Sie es hier hinzu. Lassen Sie mich einfach mit der rechten Maustaste darauf klicken und Soundeffekte kaufen sagen. Und ziehe es so nach unten. Lassen Sie uns nun für diesen Artikel zuerst auf Compiled klicken und nach einem Kauf suchen. Und das sollte funktionieren, einfach nett wenn ich auf Play klicke und etwas kaufe. Jetzt sehe ich, dass der Sound abgespielt wird. Ich mache einfach mit dem Audio weiter und drehe es ein bisschen leiser. Ich finde es zu laut. Wenn ich es öffne, stattdessen 0.4 schreibe und erneut spiele, kann ich sehen, dass es auch funktioniert. Okay, jetzt haben wir all diese Soundeffekte implementiert. Lass uns jetzt alles speichern. Lasst uns ein paar Soundeffekte für den Feind hinzufügen. 108. 12.04 SFX zum Feind hinzufügen: Okay, im Grunde kann jeder Feind einen einzigartigen Soundeffekt haben Denken Sie daran, dass wir dafür eine Struktur geschaffen haben. Wenn ich die Struktur öffne und die Feindinformationen öffne, können wir ihr nur den Sound hinzufügen. Denn vergiss nicht, dass jedes Mal, wenn du hier eine Variable hinzufügst, diese für diesen Feind einzigartig ist. Wenn wir zum Beispiel auf Hier hinzufügen klicken und Effekte, Tod, Soundeffekt sagen können. Und wenn wir nur nach Sound suchen, fahren Sie fort und wählen Sie diesen Sound aus. Sie können also zu Google Sheets gehen. in Ihren Google Sheets Öffnen Sie in Ihren Google Sheets die Feindinformationen hier rechts. Mach weiter und schreibe den Tod als Effekte, die du gerade gemacht hast. Was Sie jetzt tun können, ist kurz zuvor Referenzen hinzuzufügen. Wir können jetzt immer zum Audio gehen. Nun zum ersten, schauen wir mal hier, es sind alle vier ersten, lass uns hier drüben gehen. Wir haben den C. Finden Sie es einfach hier unten, es ist, hier drüben, der Tod mit der rechten Maustaste. Und dann kopiere die Referenz wie zuvor. Fahren Sie fort und fügen Sie es jetzt hinzu. Technisch gesehen können Sie einen Ork-Todes-Soundeffekt haben , der für jeden einzelnen einzigartig ist Aber ich werde hier einfach den gleichen verwenden. Weil ich hier hinzugefügt habe, denken Sie daran, dass wir im Sound-Cue einen zufälligen Ton hinzugefügt haben, es wird einfach ein zufälliges Todesgeräusch ausgewählt. Aber grundsätzlich kannst du jedem einzelnen Feind ein eigenes Todesgeräusch zuweisen . Nun zum Zauberer, ich gehe wieder runter, finde den Tod des Zauberers, Rechtsklick, kopiere, referenziere und füge ihn hier ein. Das nächste ist das Skelett. Lass uns das Skelett finden , das hier ist. Ich benenne es um und entferne das, 01. Klicke mit der rechten Maustaste, kopiere die Referenz und füge es in die nächsten vier ein, das, das und das. Jetzt haben wir den Schurkentod und den Nachttod. Lasst uns nach dem Schurken suchen. Die Nacht ist da. Die Referenz für die Nacht für den Schurken kopieren. Klicken wir mit der rechten Maustaste auf Referenzbasis für den Schurken kopieren. Klicken Sie erneut auf Datei und laden Sie sie als CSV-Datei Machen Sie jetzt weiter und nehmen Sie diese feindlichen Informationen in die Datentabellen mit. Und ziehen Sie es im Grunde einfach hinein und es sollte alle Informationen enthalten. Jetzt mach weiter und speichere. Wann immer der Feind stirbt und das innerhalb der feindlichen Basis passiert, öffnen wir die feindliche Basis, speichern alles, kompilieren. Und lasst uns hier sehen, wo wir es hinzufügen können, damit wir Schaden anrichten. Hier drüben am Ende haben wir das Todes-F-F. doppelklicken Sie darauf. Und es ist hier unten, wann immer der Feind würfelt. Lass es uns tatsächlich hier machen. Immer wenn wir das Flipbook spielen. Lass mich erst den Sound abspielen, bevor ich das Flipbook spiele. Ich glaube nicht, dass es wirklich wichtig ist ob du zuerst das eine oder das andere spielst, aber ich werde es einfach so machen. Lass uns noch einmal Sound Two D spielen . Mach weiter und verbinde es so. Und mach weiter und verbinde diese Effekte mit hier. Jetzt wird dieser Soundeffekt ausgewählt, je nachdem, was Sie ihm als Information in der Datentabelle angegeben haben . Also mach weiter und kompiliere. Klicken Sie auf Play und lassen Sie es uns ausprobieren. Okay, das funktioniert gut. Okay, jetzt haben wir das Problem, dass der Sound oft abgespielt wird. Also, wenn du einfach die Lautstärke leiser machst, weil es nervig werden könnte. Wenn du hier bei etwas auf Kaufen klickst, hast du es ein paar Mal gekauft. Du kannst sehen, wann der Feind stirbt, es wird oft gespielt. Und das ist ein bisschen nervig. Lass uns hier zur feindlichen Basis gehen. Lasst uns einen Blick auf den Tod werfen. Wenn ich nur eine Druckzeichenfolge mache, drucke ich einfach eine Zeichenfolge, um zu sehen, ob sie abgespielt wird. Ein paar Mal kann ich auf Abspielen klicken. Ich kann wieder etwas kaufen. Ich kann sehen, dass es oft gespielt wird. Lassen Sie uns weitermachen und dieses Problem hier beheben. Wir können etwas verwenden, das als One Node bezeichnet wird. Nehmen wir das und sagen einmal, und fahren wir fort und wählen es einmal aus. Dann wird dieser Soundeffekt oder im Grunde der gesamte Code hier abgespielt . Nur einmal kaufe ich etwas. Sie können jetzt sehen, dass es behoben ist , weil es nur einmal abgespielt wird. Das wird im Grunde automatisch zurückgesetzt. Denn denk dran, wir zerstören den Schauspieler. Jedes Mal, wenn der Schauspieler stirbt , reagiert ein neuer Schauspieler. Also werden sie einen neuen haben, Node. Wir müssen diesen nicht wirklich zurücksetzen. Hier funktioniert alles gut. Lassen Sie uns es schließen und weitermachen. 109. 12.05 Musik hinzufügen: Als letzte Sache für den Soundeffekt fügen wir noch etwas Musik hinzu Und das ist sehr einfach Wenn wir also das Audio einfach noch einmal öffnen, können wir diese Musik hierher ziehen. Ich werde noch einmal darauf klicken. Reduzieren Sie auch den Ton. Ich bin mir nicht sicher, wie laut es ist. 0,2 ist in Ordnung, ich denke schon. Lass mich es schließen. Jetzt haben wir das. Ich sage nur , bis 0200 Uhr ist es egal, wo es ist Wenn Sie jetzt auf Play klicken, können Sie sehen, dass Sie den Ton hören können Das ist super einfach und Hinzufügen von Musik wird für immer wiederholt. Alles klingt nett. Okay. Lass uns weitermachen und alles speichern. Und lass uns mit dem nächsten weitermachen. 110. 13.01 Entwerfen der Ascension-Benutzeroberfläche: In Ordnung, also lasst uns jetzt an Ascension arbeiten. Was Aufstieg im Grunde ist, falls ihr es noch nicht wisst, ist, dass ihr jedes Mal, wenn ihr einen Fortschritt, einen bestimmten Fortschritt im Spiel erreicht , einen Neustart-Knopf drücken könnt Das verleiht dem Spiel Wiederspielbarkeit . Wenn Sie das Spiel neu starten, erhalten Sie mehr Basisschaden Zum Beispiel hat alles 300% mehr Schaden. Kann das Spiel grundsätzlich neu starten und mehr Schaden anrichten. Und du kannst im Grunde weitermachen denn ab einem bestimmten Punkt, wenn du nicht neu startest, wird das Spiel zu schwierig und du musst neu starten, um den Bonusschaden zu erhalten, um das Level fortzusetzen. Okay, lasst uns weitermachen und mit der Aufstiegsmechanik beginnen Also das Erste, was ich tun möchte, ist im Grunde die Benutzeroberfläche zu entwerfen und sie aus dem Weg zu räumen Gehen wir zum UI-Ordner. Lass uns L hier richtig machen, neue Widgets erstellen. Lasst uns das Ascension-Pop-Up nennen. Und wir werden in der nächsten Lektion mit dem Pop-up arbeiten, aber vorerst haben wir das erledigt. Gehen wir rüber zum Main. Fügen wir hier unten den Aufstiegs-Button hinzu und wir lassen ihn erscheinen, sobald die Kriterien erfüllt sind. Lasst uns hier beginnen. Zunächst möchte ich dieses Overlay nehmen und es auf das Canvas-Bedienfeld ziehen Lassen Sie uns das alles einfach minimieren. Jetzt haben wir dieses Overlay. Ich möchte, dass diese Benutzeroberfläche A ist, hier unten, Ankerpunkt, unten Erhöhen wir den Wert 00 an den Positionen x und y. Nun müssen wir für x den Wert um 0,5 erhöhen . Für y in der Ausrichtung müssen wir eins schreiben. Es ist hier oben auf dem Bildschirm. Als Nächstes benötigen wir die Benutzeroberfläche. Lassen Sie uns nun zuerst ein Bild hinzufügen. Wenn Sie dieses Bild hinzufügen, wird dies das Hintergrundbild sein. Es wird derselbe sein wie dieser. Ich werde einfach dieses Bild kopieren. Klicken Sie hier, fügen Sie es ein. Jetzt haben wir das erledigt. Als Nächstes wollen wir eine vertikale Box. Fügen wir diesem Overlay ein vertikales Feld hinzu. Was ich haben möchte, ist etwas Text und eine Schaltfläche darunter. Lass uns etwas Text hinzufügen. Ich werde einfach einen von ihnen kopieren. Zum Beispiel dieser, Steuerung C, geh hier runter, Steuerung V in das vertikale Feld. Fügen wir auch die Schaltfläche hinzu, und wir können sie hinzufügen, indem wir einfach auf diese Levelkarte gehen. Wir können auf all das klicken, es kopieren und hier in das vertikale Feld einfügen. Und ich kann diesen Schädel entfernen. Und das war es. Lass uns auf dieses Bild klicken. Lassen Sie uns dafür sorgen, dass es horizontal und vertikal gefüllt wird. Klicken wir nun hier oben auf das Overlay. Und lassen Sie uns einfach die Größe der Dinge ändern, oder was Sie im Grunde tun können, ist einfach die Größe an den Inhalt anzupassen Ich denke, ich werde das stattdessen tun. Als Nächstes können wir Text für diese Schaltfläche hinzufügen. Ich werde hier Ascend schreiben. Hier können wir Ascension zur Verfügung stellen. Nun zum Hintergrundtext hier, ich werde tatsächlich diese Konturfarbe kopieren Geh hier runter und füge es für diesen ein, damit sie dieselbe Farbe haben. Wir können auch auf dieses vertikale Feld klicken und es etwas auffüllen. Wenn du so etwas wie 50 schreibst, vielleicht nicht so viel Wenn wir noch einmal hier klicken, schreiben wir 30. Vielleicht ist etwas um die 30, 35 so etwas. Ich finde das sieht nett aus. Geben wir ihm jetzt unten etwas Abstand , damit es nicht am Rand anliegt. Und das ist die Position in der Y-30-Position, das X. Schreiben wir Null. Fahren Sie noch einmal fort und kompilieren Sie können auf die Platte klicken, um zu sehen, wie sie aussieht. Ich denke, es sieht so aus, als ob dieser Text vielleicht zu groß ist. Lassen Sie uns statt 24 einen schreiben. Geben wir ihm auch etwas Platz. Ich werde einfach hier oben klicken. Geben Sie unten etwas Platz, zum Beispiel vier, kompilieren Sie und klicken Sie auf Abspielen Ich finde das nett. Jetzt haben wir diesen Aufstieg verfügbar, und wir haben auch einige Soundeffekte für die Schaltfläche Das war es für diese Benutzeroberfläche Lassen Sie uns es schließen und mit dem nächsten fortfahren. 111. 13.02 Das Ascension-Popup entwerfen: In Ordnung, jetzt ist es an der Zeit, den Ascension Pub zu gestalten. Und das können wir ganz einfach machen, indem wir das vorerst einfach kopieren. Kopieren Sie all das, was wir in der letzten Lektion gemacht haben , und öffnen Sie das Ascension Pub Up Leg das hier runter. Jetzt statt hier. Lassen Sie uns tatsächlich ein Canvas-Panel hinzufügen. Deshalb sieht es so riesig aus. Fügen Sie ein Leinwand-Panel hinzu und fügen Sie es dann hier hinzu. Stellen Sie sicher, dass das Overlay, wenn Sie auf das Overlay klicken, der Mitte verankert ist Und 0,5 in der Ausrichtung für X und Y. Und auch 00 in der X- und Und hier oben, wählen Sie das Gewünschte auf dem Bildschirm aus. Alles klar, was ich hier tun möchte, ist, dass Sie den Fortschritt wieder aufnehmen, aber mit 300% mehr Schaden Zum Beispiel. Wir können immer eine dynamische Zahl für diesen Schadensprozentsatz schreiben, aber lassen Sie uns das vorerst so schreiben. Wenn du es hier in der Breite etwas kleiner machen willst, kannst du immer hier nach unten gehen und in der Verpackung hast du diesen Umbruchtext. Ich werde das einfach vergrößern und wir können diesen Text im Grunde auf eine bestimmte Zahl umbrechen. Lassen Sie uns das auf etwa 360 umwickeln. Ich kann sehen, dass das Bild im Hintergrund statt im Bild tatsächlich verschwommen Lass es uns in ein Feld ändern und 0,5 schreiben . Das sieht viel besser Lassen Sie uns das auch in der Hauptsache tun . Ich glaube nicht, dass wir das getan haben. Ich gehe zurück, klicke darauf, verwandle es in ein Feld und schreibe 0,5 Lass uns zurückgehen. Jetzt, hier drüben, werde ich diese Schaltfläche duplizieren, aber wir brauchen sie in einem horizontalen Feld. Ich werde nach einer horizontalen Box suchen. Mach weiter und füge es hier hinzu. Und füge diese Schaltfläche dem horizontalen Feld hinzu. Und duplizieren Sie dieses Overlay. Durch Klicken auf Strg D können wir auf das erste Overlay klicken. Klicken Sie auf Phil Klicken Sie auf das zweite Overlay. Klicke auf Phil Jetzt wird der erste sagen: As, das ist in Ordnung. Der zweite wird „Stornieren“ sagen, weil wir zurückkehren wollen. Wenn wir nicht fortfahren möchten, können wir darauf klicken. Wir können die Farbe ändern , um sie ein bisschen einzigartiger zu machen. Die Schaltfläche „Abbrechen“ ist etwas roter, etwa so hier. Und ich werde diese Farbe in den Hover kopieren und auch in die gedrückte Farbe für die Anzeige Ich werde auch die Farbe auf etwas Grüneres wie dieses ändern etwas Grüneres wie dieses Okay, das mit den anderen. Hier hast du es. Wenn ich kompiliere und speichere, haben wir das jetzt erledigt. Lass uns mit dem nächsten weitermachen. 112. 13.03 Öffnen des Ascension-Popups: Ordnung, jetzt ist es an der Zeit, dieses Aufstiegs-Popup zur Benutzeroberfläche hinzuzufügen dieses Aufstiegs-Popup Wenn ich zur Spielersteuerung zurückkehre, denke daran, dass wir hier die gesamte Benutzeroberfläche und diese Funktion zum Ein-/Ausblenden von Widgets erstellt haben Lassen Sie uns die Funktion „Widgit anzeigen“ öffnen. Wir werden erkennen, dass wir es der Aufzählung hinzufügen müssen . Lass uns weitermachen und das tun Lass uns die Widgets öffnen, lass uns zu den Spiel-Widgets gehen. Lassen Sie uns den Aufstieg zusammenzählen. Lass uns einfach hier speichern und zurück zum Player-Controller gehen Und jetzt siehst du, dass du eine PIN dafür hast. Kopieren wir nun dieses Teil-Widget und suchen wir nach, mal sehen, Ascension-Popup, klicken wir mit der rechten Maustaste Machen Sie daraus eine Variable und nennen Sie es Ascension-Popup, genau wie zuvor Nehmen wir dieses Aufstiegs-Popup und konvertieren es in ein validiertes GET-Popup, wenn es nicht gültig ist Wir werden die Benutzeroberfläche erstellen. Wann immer es gültig ist, ziehen wir es von hier aus und sagen „Zum Standpunkt hinzufügen Wir werden es dem Bildschirm hinzufügen. Wenn es gültig ist, fahren wir fort und fügen es einfach dem Bildschirm hinzu. Es macht keinen Sinn, es zu erstellen, wenn es bereits gültig ist. Lass uns diesen hier hinzufügen und sie nach oben schieben. Gehen wir jetzt zurück zum Widget zum Ausblenden hier drüben. Was wir tun müssen, ist, jedes Mal, wenn wir das Widget schließen, dieses Aufstiegs-Popup zu ziehen, mit der rechten Maustaste darauf zu klicken und es in ein validiertes Get umzuwandeln es zu verbinden und aus dem übergeordneten Element zu entfernen Wann immer wir es schließen möchten, können wir es vom Bildschirm entfernen, indem wir „Aus übergeordnetem Element entfernen“ sagen Ich speichere alles. Jetzt sind wir bereit, es zu benutzen. Gehen wir zu den Blueprints oder eigentlich zur Benutzeroberfläche Das passiert jetzt immer dann, wenn ich auf die Schaltfläche im Haupt-Widget klicke Wenn ich hierher gehe, diese Schaltfläche hier, werde ich den Namen in Button Ascend ändern Ich gehe zur Grafik. Jetzt kannst du hier darauf klicken und auf das angeklickte Ereignis Was sollte passieren, wenn du auf diesen Button klickst? Was passieren sollte, ist, dass ich meinen Play-Controller holen und das Widget, das Popup-Menü, anzeigen möchte meinen Play-Controller holen und das Widget, das Popup-Menü, anzeigen . Ich kann hier sehen, dass ich keine Player-Controller-Variable habe. Ich werde es tatsächlich hier oben im Event-Konstrukt wie folgt erstellen. Holen wir uns wie zuvor den Player-Controller und dann die Play-Controller-Referenz von der Blueprint-Oberfläche Und klicken Sie mit der rechten Maustaste, um daraus einen Player-Controller mit variablem Aufruf Jetzt haben wir das. Lass uns hier runter gehen. Lass uns diesen Player-Controller ziehen und sagen „Widgets einblenden“. Lass uns weitermachen und Canine Pop up auswählen. Lass uns auf Show klicken. Wir wollen aber auch das Hauptmenü ausblenden. Ich bin eigentlich der Hauptmensch , ich werde das auch ziehen und sagen „Widgets ausblenden anzeigen“. Ich werde die Haupt-Benutzeroberfläche ausblenden. Es sitzt schon so. Kompilieren. Wenn Sie auf Play dann auf Zustimmen klicken, können Sie sehen, dass es erscheint Lassen Sie uns hier tatsächlich dasselbe tun. Lassen Sie uns das vom Bildschirm entfernen. Immer wenn wir auf Bleistift klicken, nennen wir es hier Buttonbleistift. Gehen wir zum Diagramm und klicken auf, Lass uns das alles vorerst löschen. Auch hier benötigen wir den Play-Controller. Lassen Sie uns also weitermachen und dieses Event-Konstrukt erstellen. Ich werde es einfach von der Hauptseite hier kopieren. Kopiere das alles und füge es hier ein. Denken Sie wie zuvor daran, auf diese Flugsteuerungslinie zu klicken als Variable wie diese erstellt wurde. Jetzt haben wir es also. Lassen Sie uns hier einfach kopieren und einfügen. Wir müssen nicht immer wieder dieselben Sachen schreiben . Immer wenn wir auf Abbrechen klicken, wollen wir die Haupt-Benutzeroberfläche öffnen, aber wir wollen das Ascension-Popup schließen Lass uns das versuchen. Öffne es, klicke auf Abbrechen und ich kann sehen, dass es einwandfrei funktioniert. Fahren Sie fort und speichern Sie alles und lassen Sie uns mit dem nächsten fortfahren. 113. 13.04 Festlegen des Neustart-Events: Ordnung, wann immer wir hier auf Ascend klicken, lösche ich eigentlich die Musik, nur damit wir hier ohne die Musik arbeiten können Ich werde einfach darauf klicken. Und dann klicken Sie auf den Volumenmultiplikator auf Null. Und wenn ich immer auf Jetzt spielen klicke wenn ich hier auf Ascend und Ascend klicke, möchte ich das Spiel neu starten Das ist im Grunde das, was ich tun möchte. Wir starten das Spiel im Grunde neu und geben dem Spieler zusätzlichen Schaden Lass uns weitermachen und das Spiel neu starten. So wie wir das machen, machen wir das tatsächlich innerhalb des Spielmodus , weil es hier unten am sinnvollsten ist. Klicken wir mit der rechten Maustaste und erstellen Sie ein neues benutzerdefiniertes Ereignis. Nennen wir dieses eine Neustart-Spiel. Es gibt viele Variablen, die wir neu starten müssen , weil wir tatsächlich alle Variablen neu starten müssen alle Variablen neu starten , mit denen wir bisher gearbeitet haben. Nicht alle, sondern diejenigen, die sehr wichtig sind und auf dem Bildschirm angezeigt werden. Beginnen wir zum Beispiel mit dem Level, das Sie freigeschaltet haben, und dem aktuellen Level. Lassen Sie mich einfach dieses freigeschaltete Level ziehen, hineinziehen und es auf eins setzen. Auch das war es von Anfang an. Das Gleiche gilt für das aktuelle Level. Ziehen wir es und setzen es auf eins. Lassen Sie uns hier auch all diese Schaltflächen entfernen. Wenn Sie all diese Schaltflächen haben, müssen Sie sie entfernen. Lassen Sie uns das tun, indem wir uns den Player-Controller besorgen. Lasst uns die Maui finden. Mach weiter und hol es dir Dann brauchen wir die Levelliste. So haben wir es genannt. Wenn du dich nicht erinnern kannst, wie du es genannt hast, kannst du jederzeit die Maui öffnen Du kannst auf diese Liste klicken und du hast sie Level-Liste genannt. Wir bekommen dieses Menü. Wir bekommen die Levelliste. Mach weiter und hol es dir. Wir können hier klare Kinder herausholen. Wir werden alle untergeordneten Komponenten entfernen untergeordneten Komponenten , die sich in dieser Liste befinden. Wenn ich sie alle entferne, denken Sie daran, dass wir auch die erste Ebene entfernen. Wir müssen auch Stufe eins hinzufügen. Wir können das direkt vom Player-Controller aus tun , und wir haben dieses Interface, das als Button-UI bezeichnet wird. Falls du dich nicht daran erinnerst, ist das ganz natürlich, weil wir schon seit geraumer Zeit damit arbeiten und manchmal vergesse ich auch mich selbst, wie ich es genannt habe. Es ist immer schön, zurückzugehen und eine Button-Benutzeroberfläche zu sehen Fügt im Grunde genommen diese aktuelle Ebene zur Serverliste hinzu. Wenn ich in den Spielmodus zurückkehre und wir diese Level-Button-Benutzeroberfläche hinzufügen , ist es Level eins. Im Grunde das freigeschaltete Level, das wir hier haben. Lassen Sie uns das entsperrte Level ziehen und hinzufügen. Jetzt haben wir die richtigen Stufen. Das nächste, woran wir arbeiten wollen, ist die Anzahl der Münzen, die der Spieler hat. Wir brauchen einen Verweis auf den Spieler, und ich kann sehen, dass wir keine Variable für den Spieler haben . Lassen Sie uns hier tatsächlich eine hinzufügen. Lass mich das alles ziehen. Dieser ist jetzt im Startspiel. Klicken wir zu Beginn des Spiels mit der rechten Maustaste und sagen wir Spielercharakter abrufen, sagen wir, Spielerreferenz aus der Blueprint-Oberfläche abrufen aus der Blueprint-Oberfläche Mach weiter und verbinde es. Klicken wir mit der rechten Maustaste und bewerben Sie diese Variable namens Spielerfigur Stellen wir wieder eine Verbindung zu dieser her und schieben sie einfach wieder zurück, kompilieren Was wir hier unten tun können, ist, dass wir es mit diesem Spieler aufnehmen können und wir können sagen, wie viele Münzen es gibt. Wir können die Anzahl der Münzen auf Null setzen, müssen aber auch die Benutzeroberfläche aktualisieren. Ich erinnere mich nicht ganz an die Logik hier. Wenn ich zurück zum Player gehe und den Player hier öffne, den Player hier öffne, haben wir die Anzahl der Münzen aktualisiert. Und das ist in der WB-Hauptversion, wir haben es „Anzahl der Münzen aktualisieren“ genannt Kopieren wir einfach diesen Teil des Codes. Gehen wir zurück zum Spielmodus und fügen ihn ein. Wir müssen im Grunde nicht mehr Code schreiben. Wir können einfach die, die wir bereits haben, kopieren und einfügen und verbinden. Erstellen Sie einen hinteren Routenknoten wie diesen. Und jetzt ist das erledigt. Okay, das nächste, was wir ebenfalls reparieren wollen, ist die Menge der Artikel, die wir hier gekauft haben. Also müssen wir auch das neu starten. Für den Item-Port haben wir auch diesen variablen Gegenstand im Player. Wenn ich in den Spielmodus zurückkehre, kopiere ich den Spieler-Pan hierher und suche im Voraus danach und finde das richtige Ergebnis von hier aus. Und wenn ich dann klar sage, löschst du alle Werte in dieser Map, wann immer ich sie lösche. Ich möchte auch die Benutzeroberfläche aktualisieren. Wenn Sie die Benutzeroberfläche für die Artikelkarten aktualisieren, erstellen Sie im Grunde einfach alle Artikel neu Denn denken Sie daran, als wir die Artikelkarten für den Shop erstellt haben, haben wir im Grunde die vorherigen gelöscht Wir können weitermachen und zum Spielmodus zurückkehren. Wir können den Player-Controller hierher nehmen und per Drag&Drop Shop-Artikelkarten erstellen sagen. Mach weiter und verbinde dich. Als letztes müssen wir jetzt auch den DPS für den Spieler aktualisieren Wir müssen den gesamten DPS und den Cursorschaden neu starten. Lass uns zum Spielmodus zurückkehren. Lass uns den Spieler wieder so nehmen. Nehmen wir den gesamten DPS und setzen ihn auf Null, denn das ist standardmäßig Nehmen wir den Cursorschaden und legen den Cursorschaden fest. Ich glaube, der Cursorschaden beträgt jetzt 15. Wenn Sie also darauf klicken, können Sie den Standardwert sehen , den Sie für Ihr Spiel festgelegt haben. Und ich werde ihn einfach wieder auf 15 setzen, was hier die Standardeinstellung für mein Spiel ist. Und wir können einfach eine hintere Kunstnotiz machen und alles sieht toll aus. Okay, die letzte Sache ist, dass wir aktuelle Level festlegen wollen, in dem wir uns befinden, weil wir dieses festgelegte aktuelle Level haben und es auch den Feind für dieses Level spawnen lässt und die Rundenzeit startet , die wir dafür brauchen Lass uns wieder hierher zurückkehren. Sagen wir, stellen Sie das aktuelle Niveau ein. Fügen wir die Ebene hinzu, auf der wir befinden und die aktuelle Ebene ist. Das aktuelle Level haben wir auf eins neu gestartet. Wenn Sie sich an das erste erinnern, würde das aktuelle Level, das auf eins gesetzt ist, auf eins gesetzt werden Jetzt sind wir mit diesem Neustart-Spiel fertig. Mal sehen, ob es funktioniert. Schauen wir mal hier nach, ob ich das alles abschließe. Ich öffne die Benutzeroberfläche. Ich öffne dieses One Ascension Popup. Ich klicke auf diesen Aufstieg, gehe runter und klicke auf den Button, auf den ich für diesen Aufstieg geklickt Ich werde das alles kopieren, weil wir die Haupt-Benutzeroberfläche anzeigen müssen und wir auch das Aufstiegs-Popup entfernen müssen das Aufstiegs-Popup entfernen Wenn wir auf diese Schaltfläche klicken, ändern wir den Namen dafür Es geht nicht um die Button-Ebene, sondern um den Button-Aufstieg. Gehen wir zurück. Okay, hier drüben wollen wir auch das Spiel neu starten. Ich klicke mit der rechten Maustaste und sage Spielemodus abrufen und dann Spielmodus-Referenz abrufen. Dann sage ich Spiel neu starten. Es sollte gut funktionieren. Mach weiter und speichere und lass uns spielen und es ausprobieren. Feind. Ich kaufe hier etwas und schalte das Level ein. Wenn ich auf Zustimmen klicke und dann aufsteige, siehst du, dass der Timer neu gestartet wird Dadurch wird die Anzahl der Artikel, die ich gekauft habe , neu gestartet. Außerdem werden hier der Levelfortschritt und die Anzahl der Münzen, die ich habe, neu gestartet . Lass es uns noch einmal versuchen. Wenn ich dem Feind einfach sage, dass ich etwas in den Geschäften kaufe, starten wir den ganzen Prozess und alles funktioniert gut. Das war es für den Neustart des Spiels. Und lassen Sie uns zum nächsten übergehen. 114. 13.05 Aufstieg am Ende des Spiels zeigen: Was wir jetzt sicherstellen möchten, ist, dass, wenn du auf „Spielen“ klickst, dieser verfügbare Aufstieg nur angezeigt wird , verfügbare Aufstieg nur angezeigt wird wenn der Spieler das Endspiel erreicht hat Ich würde zum Beispiel in meinen Kriterien sagen, dass immer dann wenn der Spieler alle Artikel gekauft hat , etwa eine bestimmte Menge, dieser verfügbare Aufstieg angezeigt wird Lass uns weitermachen und das tun. Lass uns das im Spielmodus machen. Lass uns den Spielmodus hier drinnen öffnen. Lass uns eine neue Funktion erstellen. Rufen wir diese Funktion auf, wenn die Kriterien erfüllt sind. Zum Beispiel wird sie prüfen, ob die Kriterien erfüllt sind. Und dann wird dieses Widget jetzt angezeigt , um sicherzustellen, dass es von Anfang an ausgeblendet ist . Gehen wir zur Benutzeroberfläche. Lassen Sie uns zunächst die Haupt-Benutzeroberfläche öffnen . Klicken wir in der Haupt-Benutzeroberfläche hier drüben. Hier auf dem Overlay für den Aufstieg. Ich werde nur den Namen für dieses Overlay ändern , weil wir es verstecken werden, also ist es immer schön, den Namen zu kennen Ich nenne es Overlay Ascension und setze es auf Auch als Anfang hier in der Sichtbarkeit. Anstatt nicht auf Testbar zu klicken, setzen wir es auf Collaped. Unserer Ansicht nach ist das nicht der Fall. Wenn Sie den Clip jetzt abspielen, können Sie sehen, dass er nicht mehr angezeigt wird. Wir werden es immer dann anzeigen, wenn diese Kriterien erfüllt sind. Nun zu den Kriterien: Immer wenn Sie eine bestimmte Menge dieser Artikel gekauft haben, wird angezeigt, dass wir die Artikel-Spotmap benötigen. Das ist in unserem Player. Lassen Sie uns einen Verweis auf den Spieler bekommen oder bekommen, und den haben wir schon hier. Spiel weiter. Nehmen wir es raus und sagen Item Spots. Holen wir uns diese Karte, die wir zuvor erstellt haben. Jetzt müssen wir alle Schlüssel daraus holen. Die Werte werden im Grunde Schlüssel genannt. Alle Schlüssel hier. Wir können auch die Werte für sie sehen. Lassen Sie uns von hier aus zuschlagen und wieder Tasten und Ziehen sagen , dann hier verbunden. Jetzt haben wir alle Schlüssel. Ich möchte zuerst überprüfen, ob wir alle Artikel haben? Weil es nicht wirklich wichtig ist, all das zu wiederholen und überprüfen, wie viele Artikel wir haben, wenn wir den Artikel nicht einmal haben. Nur der Optimierung halber sollten wir zunächst überprüfen, ob der Spieler alle Gegenstände hat bevor wir sie durchgehen und schauen wie viele es von jedem Gegenstand gibt. Nehmen wir das und sagen, die Länge ist diese Länge, ist das gleich? Fahren Sie fort und wählen Sie das aus. Entspricht das der Menge an Shop-Artikeln, die Sie haben? Und wie bekommen wir heraus, wie viele Shop-Artikel wir haben? Das ist eigentlich super einfach , weil wir das jetzt hier im Spielmodus Anfang im Player definieren können. Spiele hier im Spielmodus, nachdem ich die Bauern und Spawnpunkte definiert habe die Bauern und Spawnpunkte definiert Lassen Sie uns das tatsächlich tun, bevor wir den Feind spawnen. Trennen wir das und lassen Sie uns von hier aus zuschlagen und sagen: Holen Sie sich die Datentabelle Bisher haben wir diesen benutzt. Holen Sie sich die Zeile der Datentabelle, aber jetzt verwenden wir diese. Ruft die Zeilennamen der Datentabelle ab. Wir werden alle Zeilennamen der Datentabelle für die Infodatentabelle abrufen. Hier sind alle Namen für die Artikel daraus und wenn man Länge sagt, wird dir das sagen, wie viele Artikel wir haben. Wenn du zum Beispiel 11 Artikel hast, heißt es 11. Klicken wir mit der rechten Maustaste darauf und machen daraus eine Variable und nennen sie Menge an Shop-Artikeln. Mach weiter und verbinde es. Nun, so, verbinde das auch. Nun, was wir tun können, lasst uns kompilieren. Wenn Sie sehen möchten, was es macht, können Sie jederzeit eine Druckzeichenfolge erstellen. Verwenden Sie immer eine Druckzeichenfolge wenn Sie sehen möchten, was Sie tun. Es ist ein Indikator. Sie können auf Play klicken und hier oben links steht 11. Das funktioniert perfekt. Lass uns kompilieren. Gehen wir zurück zu den erfüllten Kriterien. Lassen Sie uns diese Menge an Ladenartikeln hier hineinwerfen und dann eine Filiale gründen. Was wir im Grunde tun, ist die Schlüssel für die Artikel zu besorgen, wir nehmen die Länge der Artikel. Wir überprüfen im Grunde, wie viele dieser Artikel wir gekauft haben. Und wir vergleichen es mit der Menge der Ladenartikel. Wenn die Anzahl der Artikel, die wir gekauft haben , der Anzahl der Artikel im Laden entspricht, bedeutet das, dass ich all diese Artikel mindestens einmal gekauft habe . Sobald ich weiß, dass ich all diese Artikel mindestens einmal gekauft habe , die Länge des Artikeltopfs entspricht die Länge des Artikeltopfs der Anzahl der Artikel im Laden. Wenn das stimmt, fahren wir fort und setzen den Code fort. Wenn das nicht stimmt, können wir es, wir können es einfach lassen, weil wir nichts tun wollen. Lass uns von hier aus weitermachen. Und jetzt wollen wir, dass die Werte von hier übernommen werden die Werte von hier übernommen Oder Sie können im Grunde genommen, nur um es übersichtlicher zu machen, Sie können jederzeit wieder hierher ziehen und dann Werte ziehen und sagen Jetzt erhalten Sie die Werte dieser Schlüssel. Im Grunde sind die Schlüssel hier und die Werte sind hier. Jetzt spielst du hier mit den Werten. Nun zu den Werten, die du für jeden Loop mit Brick sagen wirst. diesem Beispiel wollen wir überprüfen , ob wir eine bestimmte Menge dieses Artikels gekauft haben Nehmen wir zum Beispiel an, der Spieler muss zuvor mindestens zehn Artikel von jedem Gegenstand gekauft haben. Der Aufstieg erscheint. Wir werden uns alle Artikelwerte ansehen und prüfen ob sie diesen Betrag oder die Bot-Menge erreicht Im Grunde genommen, was auch immer wir setzen, ob ich sage, ist es größer oder gleich dem, was ich hier schreibe , zum Beispiel, ist es größer oder gleich zehn und ich kann eine Verzweigung erstellen. Dann möchte ich einen Zähler erstellen. Lass uns eine lokale Variable machen. Und ich nenne es einfach Local Counter. Es wird nur ein Zähler sein, der für mich zählt. Es fängt bei Null an. Wir sagen diesen Zähler plus plus. Jedes Mal, wenn wir feststellen, dass dieses Kriterium erfüllt ist, fügen wir diesem Zähler eins hinzu. Wenn wir von jedem dieser Artikel zehn Artikel gekauft haben, müsste dieser Zähler 11 sein, weil wir 11 Artikel haben. Immer wenn es hier in der Liste „Abgeschlossen“ 11 ist, werden sie alle wiederholt und es ist dieses lokale L-Plus, was im Grunde plus eins bedeutet. Wenn es Null wäre, wäre es eins. Wenn es eins wäre, wären es zwei und so weiter. Es wird sie durchdringen. Und wenn dieser lokale Zähler der Anzahl der Artikel im Laden entspricht, die 11 ist, wird dieser Zähler im Grunde 11 sein, wenn wir von jedem dieser Artikel eine bestimmte Menge an Artikeln gekauft haben dieser Artikel eine bestimmte Menge an Artikeln gekauft , weil wir wieder 11 Artikel haben, lassen Sie uns eine Filiale gründen und sagen, stimmt das? Wenn das stimmt, wollen wir sagen , dass die Kriterien erfüllt wurden. Ich werde hier tatsächlich eine neue Variable erstellen. Und es ist nur ein Edelmetall, das als Aufstiegskriterien bezeichnet wird, erfüllt. Und verwandle es in ein Goldbarren, mach weiter und verbinde es hier und mache es wahr Ja, das sollte es sein. Eigentlich das, was wir hier machen. Lassen Sie uns übrigens hier eine Pause einlegen, weil wir es nicht durchgehen müssen, ohne es kaputt zu machen. Denn hier verwenden wir für jede Schleife eine mit Pause. Und das bedeutet, dass wir diesen Code wiederholen werden. Es macht jedoch keinen Sinn , sie immer wieder durchzugehen. Wenn wir herausgefunden haben, dass wir für die Lichtfeder nicht zehn gekauft haben, warum sollten Sie sie dann alle durchgehen Weil es sowieso nicht zu sehen sein wird. Weil dieser nicht zehn ist. Stattdessen dient dies im Grunde der Optimierung, sodass Sie den Code nicht sinnlos durchgehen müssen. Wenn wir es in einer Schleife durchgehen und herausfinden, dass eines der Elemente keine zehn Elemente hat. Aber wie wir hier geschrieben haben, dann können wir hier ziehen und Pause sagen. Wir durchbrechen im Grunde den Kreislauf. Was wir damit sagen, ist zum Beispiel, wir eine Schleife durchmachen, wir schauen uns die Lichtfeder an Da steht zum Beispiel, ja, wir haben zehn gekauft. Dann schalten wir noch den lokalen Schalter ein. Dann schaut es sich die Fackel an. Und vielleicht haben wir nur neun gekauft. Es wird falsch stehen, du hast keine zehn gekauft. Wenn das falsch ist, werden wir einfach den Kreislauf durchbrechen. Also wiederholen wir das nicht mehr, weil es keinen Sinn ergibt. Wir haben nicht alle Artikel zehnmal gekauft. Es wird den Kreislauf durchbrechen und es wird abgeschlossen werden. Der Zähler vor Ort entspricht nicht der Menge der Artikel, die man wegwerfen muss, weil es hier vielleicht nur zwei waren Dann wird es falsch sein und dann wird nichts passieren. Die Aufstiegskriterien werden nur dann erfüllt, wenn der lokale Zähler der Anzahl der Artikel im Laden entspricht Jetzt musst du dir überlegen, wo es Sinn macht , danach zu suchen oder diese Funktion hier aufzurufen? , danach zu suchen oder diese Funktion hier aufzurufen Jetzt macht es beim Kaufartikel grundsätzlich am meisten Sinn . Gehen wir zurück zum Player. Hier haben wir es geschafft. Wir haben diesen einen Kaufartikel. Jedes Mal, wenn wir einen Artikel kaufen, müssen wir überprüfen, ob die Kriterien erfüllt wurden. Lass uns das einfach hier machen. Am Ende ist es im Spielmodus, also müssen wir den Spielmodus nehmen und Aufstieg sagen. Und nehmen wir dieses eine Aufstiegskriterium, wir werden es jedes Mal aufrufen , wenn wir etwas kaufen, weil wir überprüfen müssen, ob wir den Aufstieg zeigen müssen, würden wir es jetzt tun, wenn du auf Spielen klickst und alle kaufst, wird es nicht Denn denkt daran, dass wir das Himmels-Overlay eingestellt haben. Wenn ich also zur Haupt-Benutzeroberfläche zurückkehre, stellen wir dieses Overlay so ein, dass Irgendwann müssen wir es zeigen. Gehen wir jetzt zurück zum Spielmodus, hier zu den Aufstiegskriterien, und zeigen wir nun dieses Overlay Denken Sie jetzt daran, dass sich dieses Overlay innerhalb von WB Main befindet, das die Referenz innerhalb des Player-Controllers hat Wenn ich einfach den Player-Controller nehme und WB Main suche, erhalte ich das und dann erhalte ich das und dann erhalte ich So habe ich es im Grunde genannt. Dann kann ich sagen, Sichtbarkeit einstellen. Stellen wir die Sichtbarkeit so ein , dass sie nicht testbar ist. Denken Sie daran, dass visible im Grunde Ihre Mausklicks blockiert , und das wollen wir nicht tun Lass es uns testbar machen, kompilieren und speichern. nun, nur zu Testzwecken, Lassen Sie uns nun, nur zu Testzwecken, einfach einen schreiben Wenn ich einfach die Sounds deaktiviere, bevor ich auf Play klicke, wird es für dich wohl nervig sein, dass ich die Sounds hier in der feindlichen Basis weiter spiele. Immer wenn der Feind stirbt. Ich deaktiviere einfach den Sound auf D abspielen. Lassen Sie uns vorerst auf Abspielen klicken. Ich werde einfach kaufen. Jeder Artikel. Nun, das ist der letzte und ich werde ihn kaufen. Ich kann sehen, dass nichts passiert, obwohl es passieren sollte. Lassen Sie uns das tatsächlich als gute Gelegenheit nutzen , es gemeinsam zu debuggen , und Sie können sehen, wie ich es debugge Lassen Sie uns weitermachen und zum Spielmodus zurückkehren. Im Grunde tritt der Fehler hier auf. Lassen Sie uns Zeichenkettennotizen drucken. Das mache ich normalerweise hier zum Debuggen. Lass uns eine Print-Zeichenfolge schreiben. Sagen wir, ob der Code durchgeht. Ich sehe mir im Grunde an ob der Code durchgeht? Wenn es das tut, bedeutet das, dass es funktioniert. Schreiben wir einfach zuerst hier, zum Beispiel was auch immer. Es macht eigentlich keinen Unterschied, was du schreibst. Lassen Sie mich hier zum Beispiel an zweiter Stelle schreiben. Immer wenn ich den Code hier durchgehe, was hier angezeigt wird, wenn er als Zweiter steht, bedeutet das, dass die Länge dieser Schlüssel der Shop-Artikel entspricht, was bedeutet, dass der Code funktioniert, bevor ich weitermache. Lass uns das einfach versuchen. Jetzt sage ich zuerst, es ist in Ordnung, sollte zweitens sagen, wenn ich das letzte kaufe. Aber Sie können sehen, dass es tatsächlich als zweites gesagt wird. Wann immer ich diesen gekauft habe, habe ich diesen noch nicht gekauft. Es ist also so , dass ich die Menge an Shop-Artikeln schon habe die Menge an Shop-Artikeln , bevor ich den letzten Artikel kaufe. Entweder habe ich versehentlich einen Standardwert in dieser Artikelposition , den ich mir gleich ansehen werde, oder die Anzahl der Shop-Artikel ist falsch. Schauen wir uns zunächst die Anzahl der Shop-Artikel an. Ich werde einfach die Druckzeichenfolge löschen. Ich gehe zurück zum Event-Graph im Spielmodus. Ich werde die Anzahl der Ladenartikel ausdrucken , die ich tatsächlich daraus erhalte, sind es 11, die ich bekommen soll. Da steht 11. Mit der anderen Variablen stimmt etwas nicht, mit der Artikelstelle stimmt etwas nicht. Wenn ich zurück zum Player gehe und auf die Gegenstände klicke, aber ich kann es hier sehen, dann ist das eigentlich der Fehler hier. Standardmäßig habe ich auf das Plus geklickt und ein zufälliges leeres Objekt hinzugefügt Und ich kann hier auf Löschen und dann auf Kompilieren und Abspielen klicken Lass es uns jetzt noch einmal versuchen. Wenn ich von jedem Artikel einen kaufe, funktioniert es jetzt. Und es wird mir auch zeigen, welche Ascension verfügbar ist. Ich kann hier auf Ascend and Ascend klicken und dann das Spiel neu starten Jetzt müssen wir das wieder verstecken, wann immer wir aufsteigen, lassen Sie uns das wirklich sehr schnell tun können wir machen. Lass uns das schließen. Gehen wir zurück zur Benutzeroberfläche. Und lassen Sie uns dieses Pop-up hier öffnen. Lass es uns hier machen, wann immer wir auf Ascend klicken, hier, wann immer wir auf Ascend klicken und das Spiel neu starten Lass es uns einfach machen, bevor wir das Spiel neu starten. Nehmen wir wieder den Player-Controller. Wenn du es hinter dir hast, geh zum WB-Hauptmenü. Dann holen wir uns wieder V Ascension. Dann lassen Sie uns das weiter wegschieben. Wir wollen die Sichtbarkeit im Grunde genau wie zuvor einstellen, aber jetzt wollen wir die Sichtbarkeit wie zuvor auf reduziert setzen , zusammengeklappt und dann diese Verbindung herstellen. Und dann sollte das ganz gut funktionieren. Okay, jetzt funktioniert alles und lass uns mit dem nächsten weitermachen. 115. 13.06 Erstellen der Aufstiegsstruktur: Was ich jetzt tun möchte, ist, den Multiplikator für den Aufstieg zu erstellen Jedes Mal, wenn wir ein neues Level erreichen oder das Spiel neu starten, möchte ich mir mehr Schaden zufügen Zum Beispiel sollte der Spieler 300% mehr Schaden haben als zuvor, und alles fügt 300% mehr Schaden zu Lassen Sie uns den Multiplikator festlegen und das können wir ganz einfach wieder tun, indem wir erneut eine Struktur und eine Datentabelle verwenden Gehen wir zurück zu den Strukturen und klicken mit der rechten Maustaste auf Blueprints und erstellen dann eine neue Nennen wir das ST Ascension. Ihr könnt den Aufstiegsmultiplikator auch nennen , was er auch ist Lass es uns öffnen, statt hier, lass es uns in ein Float umwandeln Und im Grunde wollen wir einfach nur den Aufstiegsschaden-Multiplikator haben Aufstiegsschaden-Multiplikator Das ist der einzige Wert, den wir brauchen. Lassen Sie uns es jetzt schließen. Gehen wir zu Datentabellen und klicken wir mit der rechten Maustaste auf Verschiedene Datentabelle. Und lassen Sie uns die Struktur auswählen, die wir gerade erstellt haben. Sie können im Blueprint sehen, dass Sie im Grunde immer wieder dasselbe tun. Und wann immer Sie wirklich gut darin werden, können Sie im Grunde Ihre eigenen Mechaniken erstellen indem Sie einfach die Werkzeuge verwenden, die Sie gelernt haben Dieser wird im Grunde einfach Aufstieg genannt. Lassen Sie uns für diesen Fall die Google-Tabellen speichern und dann öffnen Lassen Sie uns im Grunde hier ein neues erstellen. Ich werde diesen Gegenstand einfach duplizieren, um diesen neuen Gegenstand zum Beispiel T, Aufstieg, zu nennen Lass uns jetzt alles löschen. Denn die ID gibt an, auf welcher Aufstiegsebene wir uns befinden. Wir beginnen mit Level Null , weil wir keine Aufstiege haben Das ist im Grunde genommen, ihr könnt euch das als die Anzahl der Aufstiege vorstellen das als die Anzahl der Aufstiege wir gemacht haben oder ab 01 beginnen, und ihr könnt weitermachen, wie viele ihr wollt Dann kannst du Damage Multiplier sagen. Im Grunde musst du es den gleichen Namen nennen, Ascension Damage Also derselbe Name wie das, was Sie in die Datentabelle geschrieben haben Nun zum Multiplikator: Er muss eins sein, wenn du keine Aufstiege hast, weil du alles mit eins multiplizieren wirst, was bedeutet, dass du nur den Schaden bekommst, den du gerade zuvor hattest, was im Grunde der Grundschaden ist, den du hier in deiner Gegenstandsinfo definiert hast, alles multipliziert mit eins was bedeutet, dass du nur den Schaden bekommst, den du gerade zuvor hattest, was im Grunde der Grundschaden ist, den du hier in deiner Gegenstandsinfo definiert hast, alles multipliziert mit Nun, wann immer wir aufsteigen, kannst du zum Beispiel drei sagen Das bedeutet, dass du jetzt dreimal mehr Schaden hast als zuvor. Und dann kannst du zum Beispiel sieben sagen. Und ich werde einfach Zufallszahlen schreiben, ich sage das mal 1,5 oder was auch immer. Und Sie können einfach nach unten ziehen und dann hier klicken , um alle Dezimalstellen zu entfernen. Jetzt können wir das einfach benutzen. Okay, lassen Sie uns weitermachen und auf Datei herunterladen klicken, CSV herunterladen. Jetzt habe ich diesen DT-Ascension. Und ich gehe zurück zu meinem Motor. Und hier können wir es jetzt reinziehen und es sollte alles korrekt laden. In Ordnung, jetzt hast du die Multiplikatoren. Und lass uns weitermachen, indem wir in die Bibliotheken gehen. Öffne es. Lass uns hier eine neue Funktion erstellen. Lass uns auf Ad klicken, auf Funktion klicken, sie zum Beispiel Y als Multiplikator oder Aufstiegsschaden-Multiplikator nennen oder Aufstiegsschaden-Multiplikator Du kannst es nennen, wie du willst. Für diesen Input müssen wir im Grunde wissen, auf welchem Level wir uns befinden. Wie viele Aufstiege haben wir bisher gemacht? Wenn wir es in eine Ganzzahl umwandeln, können wir es Ascension Level nennen Sagen wir jetzt eine Tabelle wie zuvor. Holen wir uns die Ascension-Datentabelle. Auch hier kannst du das nicht damit verbinden weil du zuerst zwei Zeichenketten sagen musst Sie müssen es in eine Zeichenfolge konvertieren, und dann können Sie es hier verbinden, und es wird es automatisch in einen Namen für Sie konvertieren. Sie können von hier aus ziehen und Return sagen. Sie können die Informationen hierher zurückgeben , indem Sie sie hineinziehen Und jetzt kannst du Ascension Info sagen, zum Beispiel kompilieren. Und denken Sie daran, auf diese Funktion und dann auf Pure zu klicken. Auch hier bekommen wir nur ein paar Informationen. Lasst uns alles speichern. Und jetzt können wir es in den nächsten Lektionen verwenden. 116. 13.07 Den Aufstiegsmultiplikator hinzufügen: Jetzt müssen wir den gesamten Schaden, den wir im Spiel anrichten, mit dem Multiplikator multiplizieren gesamten Schaden, den wir im Spiel anrichten, mit dem Multiplikator im Spiel Wir holen also die richtige Menge an Schaden heraus. Um das zu tun, müssen wir wissen wo wir den ganzen Schaden angerichtet haben? Das können wir leicht finden. Gehen wir zuerst zum Player. Nun, im Player hier, zum Beispiel im Kaufartikel, haben wir das gemacht, TPS Jetzt können Sie jederzeit mit der rechten Maustaste hier klicken und dann auf das klicken Was ich tun würde, ist Referenzen dafür zu finden , weil wir das DPS hier haben Wenn wir alle Referenzen hier in allen Blueprints finden können , können wir herausfinden, wo wir DPS machen oder woher wir diese Informationen nehmen, indem wir rechten Maustaste auf Referenzen suchen klicken und dann auf dieses kleine Symbol klicken, um die Referenzen in allen Blueprints zu finden Nicht nur dieser. Okay, ich werde das auf meinen zweiten Monitor stellen und im Grunde arbeite ich zuerst nur mit diesem. Was ich jetzt tun möchte, ist, diese Menge an Schaden pro Sekunde mit dem Aufstiegsmultiplikator zu multiplizieren , ich erhalte die richtige Menge an Schaden im Vergleich zum Multiplikator des Schaden im Vergleich zum Multiplikator Ich klicke mit der rechten Maustaste und sage Erhalte den Aufstiegsschaden-Multiplikator . Wir können das nehmen und jetzt Pause sagen, wir können es mit diesem multiplizieren Vielleicht hätte ich es kürzer nennen sollen, aber es ist immer schön, einen aussagekräftigen Namen zu haben , um zu wissen, was man tut Wenn wir dieses DPS herausbringen, wollen wir es im Grunde nehmen und Multiplizieren sagen Und ich werde es einfach von hier trennen und es hier ablegen. Macht nicht wirklich einen Unterschied, sieht aber besser aus. Ich werde den DPS mit dem Multiplikator multiplizieren, dann ziehe ich das jetzt und stecke es stattdessen hier ein. Ziehe es einfach nach unten, damit es so besser aussieht. Jetzt multiplizieren wir den Multiplikator. Wenn der Multiplikator beispielsweise drei ist, können wir sagen, dass der DPS dreimal so Wenn der Multiplikator beispielsweise drei ist, können wir sagen, dass der DPS dreimal Und es zeigt den Cursorschaden an oder erhöht ihn um den Jetzt brauchen wir den unverzichtbaren Roman. Wir müssen wissen, auf welchem Level wir uns befinden? Lassen Sie uns diese Variable im Spielmodus erstellen. Wenn du den Spielmodus öffnest und hier drin, lass uns eine neue Variable namens Ascension Level erstellen Lassen Sie uns diese in eine Ganzzahl ändern. Kompilieren Sie vorerst. Wir haben mit dieser Aufstiegsstufe noch nichts erreicht, aber das ist momentan nicht wirklich wichtig Gehen wir zurück zum Spieler und nehmen wir den Spielmodus. Wenn ich es jetzt hier finden kann, Spielmodus-Level. Und wir können es einfach nehmen Aufstiegsstufe erreichen und weitermachen und sie mit dieser verbinden Wir erhalten im Grunde die Aufstiegsstufe, die momentan Null ist Wenn die Aufstiegsstufe Null ist, wenn Sie zu den Datentabellen auf der Ebene Null zurückkehren, werden Sie den Multiplikator auf eins setzen, was im Grunde bedeutet, dass der DPS mit eins multipliziert wird , was hier nur der DPS was Es wird nichts ändern. Wenn du jedoch das erste Mal aufsteigst, also einen Aufstieg von Stufe eins hast, wirst du den gesamten Schaden um drei erhöhen, was bedeutet, dass du 300% mehr Schaden hast Lassen Sie uns nun alle Orte finden, an denen wir DPS haben. Und ich werde einfach den ganzen Code kopieren , damit du ihn nicht noch einmal schreiben musst Kopiere den ganzen Code. Jetzt werde ich das hier noch einmal besprechen. Klicken Sie auf den ersten, es ist nur das hier. Klicke auf die zweiten Neun. Info, wir richten hier keinen Schaden an. Klicken Sie auf den dritten, wir richten keinen Schaden an. Klicken Sie auf den vierten, hier haben wir einen Schaden. Das ist Teil des Funktionsupdates. DPS-Update insgesamt DPS. Wir machen das, dann nehmen wir den Schaden pro Sekunde nochmal multipliziert mit dem Schadensmultiplikator des Aufstiegs multipliziert mit dem Schadensmultiplikator des Aufstiegs dann nehmen wir den Schaden pro Sekunde nochmal multipliziert mit dem Schadensmultiplikator des Aufstiegs und fügen ihn hier ein. Übrigens kann ich schon sehen, dass wir hier einen Bug haben, weil wir die Gesamtmenge an Schaden pro Sekunde aktualisieren, indem wir alle Artikel bekommen, die Wir bekommen TPS für sie und fügen sie dann zum Gesamt-DPS hinzu Das passiert hier tatsächlich auch mit der Maus. Es addiert das tatsächlich zum gesamten DPS. Was ich hier tun möchte, um den Fehler zu vermeiden, ist dass ich auf den Artikel klicken möchte Dann sage ich „nicht gleich“. Und fahren Sie fort und wählen Sie ungleich gleich Mausklick. Wir möchten die DPS der Mausklicks nicht zum gesamten DPS hinzufügen zum gesamten DPS Ein kleiner Bug, der hier war. Stellen wir einfach sicher, dass wir das nicht hinzufügen. Und ich werde eine Filiale gründen. Mach weiter und verbinde es hier. Und verbinde es erneut. Und jetzt sollte es gut funktionieren. Jetzt werde ich die Dinge einfach wieder umstrukturieren. Ordnung, jetzt ist das erledigt und wir multiplizieren das mit dem Aufstiegsmultiplikator Lass uns mit dem nächsten weitermachen. Wenn ich einfach zurückgehe und meine Referenzen von zuvor finde und auf die nächste klicke, machen wir hier auch DPS Dies aktualisiert das ToolTiPi. Schon wieder. Füge es ein. Mach weiter und multipliziere das mit dem Aufstiegsmultiplikator und verbinde es hier wieder Jetzt multiplizieren wir richtig. Kompilieren Und wir haben hier einen Fehler. Es heißt, wir haben keine Spielmodus-Referenz, und wir haben sie auch nicht. Lassen Sie uns weitermachen und die Gamode-Referenz abrufen. Bevor ich das alles mache, werde ich sagen, Spielemodus abrufen und dann sagen wir, Spielmodus-Referenz abrufen Und mach weiter und verbinde das. Das, ich werde einfach von hier aus zuschlagen und es verbinden. Jetzt können Sie auch wieder rechten Maustaste klicken und dies zu unserer Variablen heraufstufen, wenn Sie möchten. Lass uns das einfach machen, um es ein bisschen sauberer zu machen. Stellen Sie eine Verbindung her, Sie können es auf beide Arten tun. Entweder verbinde es einfach direkt oder nimm jetzt diese Spielmodus-Variable und verbinde sie hier unten. Das ist dasselbe. In Ordnung, lassen Sie uns jetzt auch kompilieren. wir sicher, dass der Cursorschaden korrekt angezeigt wird. Und er wird korrekt angezeigt , weil wir hier im Player immer dann multiplizieren , wenn wir den erhöhten Cursorschaden im Spieler angerichtet haben den erhöhten Cursorschaden im Spieler Hier haben wir zum Beispiel jedes Mal, wenn wir einen Gegenstand kaufen , bereits mit drei multipliziert und ihn dann mit dem Cursorschaden Dieser Cursorschaden sollte korrekt sein. Dieser Schaden hier wird bereits jetzt mit dem Beitrittsmultiplikator multipliziert Das ist also auch richtig. Gehen wir nun noch einmal zu den Referenzen über . Klicken Sie auf den nächsten. Kein DPS hier. Klicken Sie auf den nächsten Hier gibt es auch kein DPS. Jetzt sollte alles gut funktionieren. Nun, nur um sicherzugehen, dass der Aufstiegsschaden korrekt angezeigt wird Gehen wir jetzt hier zurück zum Spielmodus. Jedes Mal, wenn wir das Spiel neu starten, nehmen wir diese Aufstiegsstufe und sagen wir Plus, Plus Wir werden jedes Mal, wenn wir aufsteigen, eine zur Aufstiegsstufe hinzufügen jedes Mal, wenn wir aufsteigen, eine zur Aufstiegsstufe Wir werden also die richtige Menge an Schaden hineinstecken. Lassen Sie uns jetzt weitermachen und das versuchen. Wenn ich auf Play klicke und hier jeweils eines kaufe, kaufe ich das letzte und klicke dann auf Ascend Dieser wird nicht wirklich korrekt angezeigt, das ist nur ein statischer Text Aber lass uns auf Abbrechen klicken und uns den Schaden hier ansehen, um zu sehen, ob er tatsächlich korrekt angezeigt wird. Ich, jede Maus bekommt 25 DPS und jede Lichtfeder gibt fünf DPS Das sollte also 15 anzeigen. Zum Beispiel, wenn ich auf Ascend und hier auf Ascend klicke Hier werden jetzt 15 angezeigt. Hier wird 75 angezeigt, was alles korrekt ist. Jetzt habe ich also den dreifachen Schaden. Lass mich einfach versuchen zu spielen und lass mich versuchen, wieder aufzusteigen. In Ordnung, jetzt werde ich den letzten Artikel hier kaufen. Klicken Sie auf den letzten Artikel. Ich kann das wieder sehen. Ich klicke auf Ascend Und dann wieder aufsteigen. Und jetzt ist der Schaden durch leichte Federn 35, was richtig ist, und 175, denn jetzt ist der Multiplikator sieben, alles funktioniert richtig, weil sieben mal fünf gleich 35 ist, was richtig ist Und jetzt haben wir die richtige Schadenshöhe. Okay, jetzt funktioniert das. Und nur um sicherzugehen , dass wir optimiert sind, wollen wir noch einmal überprüfen, ob die Aufstiegskriterien erfüllt Wenn ich Loops erstelle, achte ich immer darauf, ob ich diese Schleife tatsächlich zu den notwendigen Zeiten durchführe Zum Beispiel führen wir hier die Schleife aus , was korrekt ist. Müssen Sie diese Schleife jedoch wirklich immer dann ausführen , wenn die Aufstiegskriterien erfüllt sind Denn jetzt wisst ihr, dass die Aufstiegskriterien erfüllt wurden. Sie müssen diese Schleife nicht wirklich noch einmal ausführen , weil Sie wissen, dass sie erfüllt ist Nehmen Sie diesen Goldbarren her, Aufstiegskriterien wurden zu Beginn des Kodex erfüllt Wir wollen das nur ausführen. Die Aufstiegskriterien erfüllten hier diese Funktion. Wir wollen es immer dann ausführen, wenn dieser Wert falsch ist. Lassen Sie uns das hinter uns lassen und sagen, Goldbarren, Aufstieg ist nicht wahr, was bedeutet, dass er falsch ist . Das ist falsch Wir wollen weitermachen und prüfen , ob die Kriterien erfüllt wurden. Wenn dies jedoch wahr wird, wir es nicht ausführen, weil wir im Grunde genommen falsch liegen und den Code nicht ausführen. Wir wollen nicht den ganzen Code ausführen. Die Aufstiegskriterien wurden bereits erfüllt, weil sie unnötig sind Wir haben diese Kriterien bereits erfüllt. Okay, denken Sie daran, dass wir das irgendwann auf falsch setzen müssen , weil sonst nächste Mal, wenn Sie aufsteigen, dies standardmäßig wahr sein wird das nächste Mal, wenn Sie aufsteigen, dies standardmäßig wahr sein wird, weil Sie es hier unten auf wahr und es nie wieder auf Fehler setzen Lass uns danach zum Neustart-Spiel zurückkehren. Denken Sie daran, die erfüllten Aufstiegskriterien zu nehmen und sie auf „Falsch“ zu setzen , wenn Sie das Level neu starten oder das Spiel hier Mach weiter und speichere alles und lass uns mit dem nächsten fortfahren 117. 13.08 Den Aufstiegsmultiplikator anzeigen: Ordnung, in dieser letzten Phase müssen wir die richtige Menge an Schaden anzeigen, der multipliziert wird Wenn ich also hier im Aufstiegs-Popup zur Benutzeroberfläche gehe, müssen wir hier im Grunde den richtigen Betrag anzeigen Jetzt schreibe ich einfach eine falsche Zahl, damit wir tatsächlich sehen können, dass wir sie dynamisch ändern Also werde ich hier vorerst einfach 00 schreiben. Gehen wir jetzt zur Grafik und wir müssen diesen Text grundsätzlich ändern. Jetzt heißt es Text-Round-Timer, und ich werde stattdessen zu Text Ascension wechseln , damit es sinnvoller ist. Und lass uns kompilieren Und jetzt können wir diesen Text einstellen wann immer dieses Popup geöffnet wird. Immer wenn ich auf die Ascent-Schaltfläche klicke, erscheint und wir möchten sie sofort aktualisieren Wir können das innerhalb des Event-Konstrukts tun, das immer dann abgespielt wird, wenn dieses Pop-up geöffnet wird. Lass es uns hier machen. Was wir tun wollen, ist , den Text festzulegen. Nehmen wir diesen Text und sagen wieder Text setzen. Wir müssen ein Textformat verwenden , weil wir die Dinge dynamisch ändern. Nochmals, direkt von hier aus und sage Text formatieren. Geh raus und wähle es aus. Sie können sehen, dass wir immer wieder dieselben Knoten verwenden. Wenn du einfach weiter übst, wirst du dich an alle Knoten erinnern und du wirst im Grunde wissen, was zu tun ist, wenn du selbst eine neue Mechanik erstellen musst Gehen wir zurück zum Designer. Ich werde das alles einfach kopieren. Ich werde es hier einfügen. Es wird sagen, dass Sie den Fortschritt neu starten werden, aber jetzt brauchen wir stattdessen diese geschweiften Klammern hier. Und sagen Schaden in Prozent, Prozent so, dann mehr Schaden. Es heißt, dass du das Spiel neu starten wirst, aber zum Beispiel mit 300% mehr Schaden Lass uns versuchen, das zu tun. Lassen Sie uns zuerst diesen verbinden. Was wir jetzt verwenden müssen, ist genau wie zuvor, wir müssen mit der rechten Maustaste klicken und sagen „Hol dir Ascension Multiplier Denn das ist im Grunde der Ort, von dem wir die Informationen bekommen Wir machen uns jetzt wieder auf den Weg zum Ascension Level, wir brauchen den Spielmodus, um diese Informationen zu haben Lass uns hier alles draken. Lassen Sie uns sagen, holen Sie sich den Spielmodus. Und dann lassen Sie uns von hier aus zuschlagen und sagen, holen Sie sich die Spielmodus-Referenz. Gehen wir raus und verbinden es. Hier für den Spielmodus brauchen wir das Ascension Level Mach weiter und hol dir das Aufstiegs-Level, und du kannst es hier verbinden. Wie bekommen wir den Prozentsatz? Jetzt erreichen wir das Aufstiegslevel. Was wir tun müssen, ist, den Multiplikator zu bekommen, nachdem wir das Spiel neu gestartet haben Denn im Grunde genommen ist das, wann immer du dieses Pop-up öffnest und du bekommst nur diese Aufstiegsstufe, die momentan Null ist, weil du bei Aufstiegsstufe Null anfängst, heißt es eins, im Grunde 100%. Jetzt müssen wir den Multiplikator teilen, nach dem ich nur die Datentabelle öffne, damit es verständlicher ist ich nur die Datentabelle öffne damit es was wir tun müssen, ist, diese Zahl, die nach jedem Aufstieg kommt , zu teilen, was die Zahl hier ist, geteilt durch das aktuelle 13/1 Und Sie können das immer einfach in die Ansicht ziehen und 3/1 sagen , das ist dreimal 100, das ist 300%. Wenn Sie es jetzt einfach mit der anderen versuchen, wenn Sie es mit den Sieben versuchen, sagen wir, wir sind einmal aufgestiegen und ich bin auf Stufe eins und ich brauche um zu zeigen, um wie viel Schaden in Prozent du erhöht wirst , wenn du Level zwei erreichst. Jetzt sagen wir 7/3 mal 100. Das entspricht 233% mehr Schaden von hier bis hier, was absolut Sinn macht. Lassen Sie uns das tun Was wir tun müssen, ist diese Aufstiegsstufe anzunehmen und ihr eine hinzuzufügen, weil wir herausfinden müssen, was der Multiplikator für die nächste Aufstiegsstufe Wenn wir nun diese Information haben, ist sie zum Beispiel siebengeteilt, zum Beispiel 7/3, was die aktuelle Zahl, die aktuelle ist Wir müssen im Grunde alles kopieren und wir müssen das plus eins löschen und dann einfach rausgehen und es verbinden Wir sagen im Grunde, was ist der nächste Multiplikatorschaden Wir teilen diesen Wert durch den aktuellen Wert. Dann muss das in Prozent umgerechnet werden. Jetzt können Sie es auf zwei Arten tun. Du kannst das entweder nehmen und als Prozent sagen und du kannst rausgehen und es auswählen und hier verbinden. Nun, ich mag diese Methode nicht, weil sie dir die Dezimalstellen zeigt. Wenn es hier zum Beispiel 7/3 ist und wir sagen multipliziert mit 100, wird es 233,33 heißen. Ich mag die Gleitkommazahlen oder die Dezimalstellen nicht , die ich nicht haben möchte Stattdessen sage ich einfach multipliziert mit 100 auf diese Weise multipliziert Dann kannst du entweder Boden sagen und du kannst darüber lesen, wenn du die Maus darüber hältst, heißt es, dass -1,6 zu -2,1 wird, 0,6 wird eins, oder du kannst die Methode verwenden, die Runde Und dieser ist im Grunde das Gegenteil. Aus 1.6 werden zwei und so weiter. Ich werde einfach Boden sagen. Es wird im Grunde die Dezimalstellen entfernen und dir das dann anzeigen. Jetzt sollte das gut funktionieren. Wenn ich es jetzt hier verbinde und es wird der Text jedes Mal gesetzt , wenn ich dieses Popup öffne, und ich kann kompilieren. Und mal sehen, ob es jetzt funktioniert, wenn ich jeden dieser Artikel wie zuvor kaufe, und dann kann ich auf Als klicken. Jetzt heißt es, dass wir den Fortschritt neu starten , aber mit 300 mehr Schaden. Jetzt brauchen wir natürlich die Prozentzahl, das Zeichen. Also lass uns zurückgehen und das schnell beheben. Wenn ich einfach hier klicke und ein Prozentzeichen setze, sollte das funktionieren, kompiliere einfach. Ordnung, jetzt kaufe ich den letzten und klicke auf As. Und jetzt werden mir 300% angezeigt, was richtig ist. Jetzt klicke ich auf Ascend und spiele das Spiel erneut und schaue , ob alles gerade funktioniert Ich kaufe den letzten Artikel erneut und werde das zweite Mal aufsteigen Und jetzt heißt es, dass du den Fortschrittsteil mit 233% mehr Schaden neu startest , weitermachst und Und jetzt kannst du sehen, dass alles richtig multipliziert alles richtig multipliziert Das war es also. Im Moment funktioniert alles richtig. Und jetzt können wir mit dem nächsten Abschnitt fortfahren , in dem wir das Spiel fertigstellen Und wir können weitermachen und alles aufräumen und das Spiel verpacken Lassen Sie uns also weitermachen und mit der nächsten Lektion beginnen. 118. 14.01 Das Projekt reinigen: Ordnung, jetzt sind wir mit dem Spiel fertig und jetzt musst du das Projekt aufräumen Also, was ich normalerweise mache, ist, wenn ich ein größeres Projekt habe, es mindestens einmal pro Woche zu reinigen. Also vielleicht jeden Freitag, jeden Samstag, ich weiß nicht. Normalerweise reinige ich es nicht jeden Tag , weil sich der Code ständig ändert. Manchmal putzt man also etwas, aber am nächsten Tag muss man es ändern. Es macht keinen Sinn , weil du es erneut reinigen musst , also ist es zu viel Arbeit. Normalerweise reinige ich es einmal pro Woche oder maximal zweimal pro Woche. Gehen wir also zum Beispiel zur Blaupause. Ich gehe in dieser Lektion einfach hierher. Der Zweck besteht darin, Ihnen Tipps zur Reinigung des Projekts zu geben. Und ich werde dieses Projekt auch reinigen und es Ihnen als Abschlussprojekt geben. Zum Beispiel, wenn wir den Play-Controller gestartet haben. Wenn Sie also den Play-Controller hier öffnen und das Event-Diagramm öffnen und Sie sehen, dass es ein bisschen chaotisch Was ich normalerweise mache, ist zum Beispiel, dass du hier oben das gesamte Event auswählen kannst, Begin, Play here, und dann klickweise auf C klicken Du erstellst einen Kommentar und ich kann zum Beispiel Begin, Play schreiben Ich weiß, dass es Begin ist. Spiel. Immer wenn ich herauszoome, kann ich auch auf diesen Kommentar klicken und ich kann auf die Show-Blase klicken. Wenn ich gezoomt habe, kann ich das immer sehen, wenn ich herausgezoomt bin. Ich weiß, dass dies der Anfang der Wiedergabe ist, also muss ich nicht ständig heranzoomen, um zu sehen, was es ist Du kannst auch darauf klicken und die Farbe des Kommentars ändern. Sie können es nach Belieben ändern. Sie können hier die Farbe ändern, das Alpha ändern und so weiter. Klicken Sie auf OK. Jetzt kannst du diese Farbe auch speichern, indem du sie anklickst und sie hierher ziehst Ich klicke auf Okay. Wenn Sie das nächste Mal einen Kommentar erstellen. Bei diesem initialisierten Player können Sie beispielsweise auf C klicken. Sie können beispielsweise initialisieren“ schreiben Sie können auf Show Bubble und Zoom klicken. Sie können beispielsweise auf diese Kommentarfarbe klicken. Und du kannst jetzt hier oben auf die gespeicherte Farbe klicken . Und klicken Sie auf Okay. Ich werde das tatsächlich während des gesamten Projekts machen , bevor ich es Ihnen übergebe. Das zweite, was Sie tun können, ist, dass Sie auch auf diese Variablen klicken können. Und du kannst ihnen hier eine Kategorie geben. Ich kann zum Beispiel Widgets sagen und die Eingabetaste drücken. Und jetzt können Sie sehen, dass es sich in einer Widget-Kategorie befindet. Wenn ich hier unten auf das nächste Widget klicke, kann ich hier klicken und ich kann auf die Widgets klicken. Und das kann ich im Grunde für alle tun. Alle Widgets gehören zusammen zu dieser Kategorie. Und Sie können sehen, dass ich es minimieren kann. Jetzt sind sie hier drin. Auf diese Weise können Sie auch alle Variablen bereinigen , die Sie haben. Fahren Sie fort und kompilieren und speichern Sie jetzt alles. Im Grunde können Sie das in jedem einzelnen Blueprint tun. Zum Beispiel in den Spielmodus gehen. Im Spielmodus kann ich vielleicht all diese Spawnpunkte zusammenfügen So kann ich zum Beispiel eine Kategorie schreiben, die Spawnpunkte heißt , die Spawnpunkte Und ich kann sie im Grunde hierher ziehen . Mach einfach weiter und mach das. Mach weiter und räume dein Projekt auf. Erschaffe Commons. Das dritte, was ich normalerweise mache, ist, dass ich weitermache und Notizen für Umleitungen erstelle Wie Sie gelernt haben, doppelklicken Sie. Erstellen Sie einige Notizen zur Weiterleitung und versuchen Sie, Ihr Projekt so gut wie möglich zu bereinigen Normalerweise reorganisiere ich auch alle Ereignisse, die ich erstellt habe Das sind zum Beispiel die Artikelkürzungen im Shop, das ist der Spawn-Gegenstand Du kannst zum Beispiel weitermachen und es hier nebenan einfügen und es vielleicht auskommentieren Sie können auch hierher zurückkehren und nachsehen, ob sie in der richtigen Reihenfolge sind. Zum Beispiel, wenn Sie möchten, dass dies stattdessen hier unten angezeigt wird und so weiter. Also mach einfach weiter und versuche es so gut wie möglich zu organisieren. Wenn Sie einige Dinge in eine Funktion statt in ein Ereignis umwandeln möchten , können Sie das auch tun. Nehmen wir zum Beispiel dieses Neustart-Spiel an. Wenn du es als Funktion machen willst, lass uns weitermachen und daraus eine Funktion machen. Normalerweise können Sie bei Funktionen Dinge nicht in eine Funktion umwandeln , wenn es sich um zeitgesteuerte Ereignisse handelt Zum Beispiel, wenn ich eine Verzögerung habe. Sie können sehen, dass dieses Symbol hier für ein zeitgesteuertes Ereignis steht, Fy Rod. Klicken Sie darauf und sagen Sie „ Zusammenklappen“, um zu funktionieren. Es wird mir eine Fehlermeldung geben , weil Sie Funktionen nicht in Funktionen umwandeln können . Kämpfen Sie, klicken Sie und sagen Sie auch Zeitleiste und fügen Sie eine Zeitleiste hinzu. Diese ist auch eine Zeitangabe. Ich kann nicht mit der rechten Maustaste klicken und zusammenklappen, um zu funktionieren Dadurch erhalte ich eine Fehlermeldung. Ich kann das sehen, wenn ich mir das Symbol oben ansehe und ich habe keine Zeit. Ich kann das im Grunde in eine Funktion umwandeln. Normalerweise mache ich das manchmal, denn wenn Sie zu viele Ereignisse in einem Ereignisdiagramm erstellen, wird es tatsächlich beginnen. Wenn du ein Spiel hast, das groß genug ist, wird es hier beginnen wann immer du in diesen Blueprint gehst Jetzt können Sie diese Ereignisse entweder in Funktionen umwandeln oder Sie können neue Ereignisdiagramme erstellen Wenn Sie hier oben auf das Plus klicken, erstellen Sie ein neues Ereignisdiagramm. haben wir zum Beispiel im Ego-Shooter-Kurs gemacht Das haben wir zum Beispiel im Ego-Shooter-Kurs gemacht. Ihr könnt das zum Beispiel Aufstieg nennen. Und ihr könnt den gesamten Aufstiegs-Code hier drin haben Aufstiegs-Code hier drin Wenn es eine Menge Code ist, kannst du im Grunde genommen all dieses Steuerelement X kopieren , um es auszublenden und zum nächsten geraden Graphen überzugehen Sie können auf Steuerelement V klicken. Sie haben es jetzt innerhalb dieses geraden Graphen. Sie müssen es nicht hier in der normalen Version sehen , aber Sie haben es hier unten. Stattdessen klicken Sie einfach auf Strg Z, weil wir hier nicht wirklich viel Code haben. Ich werde diesen geraden Graphen löschen , wenn Sie Dinge zu einer Funktion machen wollen. Sie können das auch tun, indem Sie hier zum Ereignisdiagramm zurückkehren. Was Sie dann tun oder was ich normalerweise mache, ist dass ich hier alle Knoten ohne das Ereignis auswählen kann. Ich kann Click Collapse wieder in eine Funktion schreiben. Normalerweise nenne ich es zunächst. Wenn ich es einfach hierher ziehe, nenne ich es Spiel neu starten. Dann schreibe ich, klicke auf dieses Event, um zu sehen , wo ich es benutzt habe. Suchen Sie nach Referenzen und klicken Sie auf das Symbol für alle Orte, an denen ich es verwendet habe. Diese Referenzen sind im Grunde nur diese, sie sind nicht das, was ich verwendet habe. Klicke auf den nächsten und starte das Spiel neu. Hier unten kann ich jetzt aus diesem Spielmodus ziehen und Spiel neu starten sagen. Jetzt verwende ich meine Funktion anstelle meines Events. Ich kann das löschen und ich kann es hier verbinden. Ich kompiliere einfach hier, gehe zurück in den Spielmodus, lösche dieses Event jetzt. Und lösche diese Funktion, weil du diese Funktion jetzt im Grunde benutzt , um das Spiel neu zu starten. Ich verwende diese Methode manchmal auch , um mein Ereignisdiagramm zu bereinigen. Wenn ich sehe , dass einige Ereignisse ich nicht unbedingt benötige, kann ich sie in eine Funktion umwandeln. Was ist nun der Unterschied zwischen dieser Funktion, die ich erstellt habe, und diesem Ereignis? Absolut nichts. Es bereinigt im Grunde nur Ihr Ereignisdiagramm Jetzt können Sie sehen, dass es sauberer wird. Und selbst wenn Sie möchten, dass diese freigeschaltete Ebene eine Funktion ist, können Sie das tun, indem Sie sie zu einer Funktion zusammenfassen Denken Sie daran, mit der rechten Maustaste darauf zu klicken, um Referenzen zu finden. Fahren Sie fort und klicken Sie auf das kleine Symbol. Wo auch immer du das hier in der feindlichen Basis benutzt hast, du kannst es zu einer Funktion machen und du kannst stattdessen die Funktionsversion verwenden. Und dann kannst du diese löschen. Mach einfach weiter und bereinige dein Projekt auf diese Weise. weiter und denken Sie daran, Ihr Projekt immer zu speichern, und lassen Sie uns zum nächsten übergehen , oder wir verpacken das Projekt. 119. 14.02 Das Spiel verpacken: In Ordnung, jetzt ist es an der Zeit, das Projekt zu verpacken. Also können wir es an Freunde schicken und sie können versuchen, es zu spielen, oder auch an die Familie. Um das zuerst zu tun, bevor wir packen, möchte ich den Debugger oder das Protokoll geöffnet haben also Protokolle aus, wenn Sie einfach auf Fenster und Ausgabeprotokoll klicken und dies anzeigen lassen Jetzt können wir also sehen, ob wir beim Export Fehler haben . Bevor ich das mache, klicke ich mit der rechten Maustaste hier und lösche die Protokolle. Ich fange von vorne an, damit ich sehen kann, was gerade passiert. hier oben auf die Filter klicken, können Sie die Meldungen, Warnungen und Fehler sehen. Manchmal entferne ich die Nachrichten einfach so, ich kann nur die Warnungen und Fehler sehen. Das ist im Grunde wichtig, damit wir diese beheben können. Aber lassen Sie uns vorerst die Botschaft weitertragen. Lassen Sie mich das ein wenig minimieren , damit ich wirklich sehen kann, was ich mache. Einfach so, hier oben auf die Plattformen klicken, zu Windows gehen und dann Versand auswählen. Wenn Sie jetzt Versand auswählen, müssen Sie im Grunde auch hierher gehen. Lass mich das vorerst einfach schließen. Wenn Sie zu den Projekteinstellungen bearbeiten , müssen Sie hier zu Verpackung gehen. jetzt in der Verpackung wichtig ist, Was jetzt in der Verpackung wichtig ist, ist Advanced hier drüben, indem Sie auf Advanced klicken. Dann gehen wir runter. Jetzt müssen Sie hier im Advanced die Karten, die Sie hier packen möchten , in die Liste der Karten aufnehmen, die in einen Paket-Build Sie müssen auf das Plus klicken, dann müssen Sie auf die Karten klicken. Wenn Sie auf diese drei Punkte klicken, wählen Sie die Karten aus, die Sie haben. Wenn ich gerade weiß, dass wir uns hier im Inhaltsordner innerhalb des Projekts befinden und wir diesen Kartenordner erstellt haben. Ich werde diese Karte auswählen, Dungeon. Im Grunde die Hauptkarte, mit der wir arbeiten , indem wir auf Öffnen klicken Wenn Sie nun Filme haben, zum Beispiel wenn Spiele starten und sie einen Startbildschirm und einen Startfilm haben , können Sie auch diesen einbeziehen. Wenn Sie zusätzliche Verzeichnisse in Ihrer Engine haben, verwenden Sie sie nicht. Sie können sie auch hier hinzufügen. Aber im Grunde ist das alles , was wir hier tun müssen. Auch für die vom Projekt erstellte Konfiguration werde ich sie stattdessen auf Versand umstellen. Und es heißt, wenn das Projekt Code hat oder einen lokal erstellten Editor ausführt, bin ich eigentlich für den Build ich werde nur sagen, immer bauen. Wann immer wir es hier zu einem Versand für den Umbau schaffen, klicke ich darauf oder Verteilung. Ich werde das auch ankreuzen. Und jetzt bist du bereit, es auch besser zu machen. Fahren Sie fort und klicken Sie auf die Projekteinstellungen. Sie hier oben noch einmal Suchen Sie hier oben noch einmal nach Smooth FPS, hier nach Smooth Frame Rate. ist wirklich wichtig, das anzukreuzen , denn wenn du das nicht tust, Es ist wirklich wichtig, das anzukreuzen, denn wenn du das nicht tust, wird dein Spiel mit der höchsten FPS ausgeführt , mit der der Computer des Spielers laufen kann. Ich habe das zunächst versehentlich mit Farm Tail gemacht, weil ich diese Option nicht kannte, die wir zum Beispiel mit 500 FPS laufen . 600 FPS. Und es wird ihren Computern wirklich schaden , weil sie superschnell laufen werden und man hört, wie die Lüfter superschnell laufen. darauf klicke, brauche ich in diesem Spiel nicht mehr als 60 FPS. Es ist kein Shooter-Spiel oder so. Und ich kann bis zu 22 FPS haben, wenn der Computer auf Seiten des Spielers sehr langsam ist. Aber im Grunde sollten wir die FPS auf 62 maximieren. Sie können es auch auf 122 FPS bringen, wenn Sie möchten, aber ich werde es einfach auf 62 PS belassen. Schließ es. Klicken Sie auf Datei, Alle speichern. Jetzt können Sie auf Plattformen, Windows Package Content klicken. Aber lassen Sie mich einfach wieder öffnen. Mein Fensterausgang wird gesperrt, sodass ich sehen kann, was passiert. Klicken Sie mit der rechten Maustaste, um die Sperren zu löschen, bevor ich das mache. Nun auch hier, was Sie beachten müssen: Klicken Sie auf Filter und zeigen Sie auch alles an. Ich kann alle Nachrichten sehen. Ich kann auch all diese sehen . Sie haben einfach alle angekreuzt Fahren Sie fort und klicken Sie auf Plattformen und dann auf Windows Und dann mach weiter und verpacke den Inhalt. Jetzt habe ich hier auf meinem Desktop einen Ordner namens Packages erstellt . Machen Sie einfach weiter und erstellen Sie irgendwo auf Ihrem Computer einen neuen Ordner , das ist nicht wirklich wichtig. Und fahren Sie fort und klicken Sie auf Ordner auswählen, und es wird hier verpackt. Jetzt wird es einige Zeit dauern. es das erste Mal macht und es, zeigt es normalerweise ein paar Fehler, weil ich nie zum ersten Mal ohne Fehler gepackt habe . Weil es einige zufällige Fehler gibt , die irgendwann auftreten. Ordnung, jetzt kann ich sehen, dass wir hier einen Fehler haben und es heißt Unbekannter Kochfehler. Und du hörst einfach auf zu packen , weil wir einen Fehler haben. Also klicken Sie hier oben und klicken Sie auf die Nachrichten und lassen Sie uns sehen, was es ist. Und es heißt Struktureigenschaft und es heißt Unbekannte Struktur. Nun, das ist ein bekannter Fehler in der Uneral Engine und es ist ein bisschen nervig Ich weiß nicht, warum es passiert, aber im Grunde heißt es, dass Sie eine unbekannte Struktur haben eigentlich keinen Sinn, weil wir es geschafft haben und es funktioniert und alles ist in Ordnung. Aber achten Sie einfach darauf, wo es sich befindet und ob es sich in Ihrer Benutzeroberfläche befindet. Informationen zum Feind. Wenn Sie zu Ihrer Benutzeroberfläche wechseln, gehen Sie zur Benutzeroberfläche und öffnen Sie die Feindinformationen Das ist im Grunde das, was es dir sagt. Öffne die Feindinformationen und gehe zu Graph. Das einzige, was Sie aus irgendeinem Grund tun müssen, ist auf Datei, Alle Notizen aktualisieren zu klicken. Und dann sollte das das Problem beheben. Datei aktualisiert alle Notizen. Dann ist der nächste Code der Stufe B in der Benutzeroberfläche. Minimiere das einfach, ich gehe auch hier zum Level Cod. Grafikdatei, aktualisiere alle Notizen. Normalerweise aktualisiere ich auch alle Notizen in der Bibliothek. Öffne es, klicke auf die erste, die feindliche Informationsdatei, und aktualisiere alle Notizen. Die zweite aktualisiert alle Notizen, die dritte nur, um sicherzugehen , dass wir diesen Fehler nicht noch einmal bekommen. Immer wenn wir kochen und auf Alle speichern klicken , sollte es jetzt funktionieren. Wenn ich erneut auf Plattformen klicke, kann ich zuerst das P-Ausgabeprotokoll öffnen, mit der rechten Maustaste klicken, die Protokolldatei oder die Plattformen löschen und dann das Projekt erneut hier zusammenpacken. Klicken Sie jetzt hier hoch und zeigen Sie auch alle Nachrichten an, nur um zu sehen, ob wir jetzt eine Box haben. Sollte nicht wirklich passieren. Normalerweise passiert es einfach, wenn Unbekannte Struktur angezeigt Sie müssen nur aus irgendeinem Grund alle Notizen aktualisieren . Ich weiß nicht, warum das passiert, aber es ist ein bisschen nervig. Aber jetzt kannst du sehen, dass alles kocht und alles gut funktioniert. Wir haben keine Fehler. Hier dauert es nur eine Minute. Jetzt können Sie jederzeit hier oben klicken und die Nachrichten entfernen. Jetzt ist der Koch fertig, das Paket ist komplett. Normalerweise entferne ich die Nachrichten, um zu sehen, ob ich Fehler in meinem Spiel habe. Und Sie können sehen, dass das Projekt super sauber ist. Wir haben keine einzige Warnung. Wir haben keine einzige Ära. Das Spiel läuft perfekt und das ist es, was wir wollen. Gehen wir jetzt zum Paketordner auf meinem Desktop. Und hier kann ich den Windows-Ordner öffnen , den er erstellt hat, und jetzt ist das Spiel hier drin. Lassen Sie uns versuchen, dieses Spiel außerhalb der Engine auszuführen. Wie ich sehen kann, habe ich hier einige Fehler, Probleme, die ich beheben muss. Aber wie Sie sehen können, funktioniert das Spiel einwandfrei. Ich muss die Musik erneut auftragen und so weiter. Aber ich kann auch sehen, dass der Hintergrund verschwommen ist. Ich kann auch sehen, dass dieser Text zu nahe beieinander liegt. Machen wir also weiter und korrigieren das und kommen alle vier zurück. Um ihn zu schließen, werde ich diesen Ordner vorerst löschen. Lassen Sie uns nun sehen, was das Problem mit der Verschwommenheit ist. Problem mit der Verschwommenheit besteht nun darin, dass Sie zum Beispiel diese Textur des Dungeon-Gefängnisses öffnen zum Beispiel diese Textur des Dungeon-Gefängnisses Gehen wir hier runter in die Textureinstellung. Lass uns auf Erweitert klicken. Hier unten siehst du etwas, das als nuklearer Filter bezeichnet wird. Du musst diesen stattdessen auf „Nächstliegender“ ändern. Wenn du sie auf „Am nächsten“ änderst, bedeutet das, dass deine Textur nicht unscharf wird , wenn du sie exportierst oder verpackst Das müssen Sie tatsächlich für alle Texturen tun. Lassen Sie uns nun sehen, wie wir das einfach machen können. Wenn ich jetzt auf Assets klicke und ich hier oben klicke, gehe hier runter und hier haben wir eine Textur, ich werde sie einfach hier anklicken. Auf diese Weise können wir alle Texturen, die wir im Spiel haben, in diesem Assets-Ordner sehen . Versuchen wir einfach, das für alle zu tun. Lassen Sie mich einfach auf die erste klicken, Shift, auf die letzte klicken, mit der rechten Maustaste klicken und dann zu Asset-Aktion „Auswahl bearbeiten“ in der Eigenschaftsmatrix wechseln . Wir versuchen einfach, alles auf einmal zu machen. Wenn ich wieder auf die Textur hier oben klicke und diesen Filter sehe, und diesen Filter sehe, ändere ihn auf „Am nächsten“. Das ist die richtige Einstellung, die wir speichern können. Dann schauen wir mal, ob die Kacheln hier enthalten waren. Ich kann sehen, dass die Kacheln enthalten sind. Alles ist in Ordnung. Alles ist hier enthalten. Im Grunde sollte alles einwandfrei funktionieren. Okay, jetzt ist das erledigt. Wir haben auch ein Problem mit dem Namen. Lassen Sie uns auch das beheben. Wenn ich einfach hier oben klicke und diese Textur entferne, damit ich alles sehen kann , kann ich wieder auf den Feind klicken. Wenn ich zu den Bauplänen zurückkehre, öffne ich die Feinde und die feindliche Basis Und ich klicke auf den Viewport. jetzt auf die Gesundheitsleiste klicke, muss ich die Gesundheitsleiste nur etwas nach unten bewegen. Ich glaube, wenn du hier oben klickst, klickst du auf Play Da es sich um ein eigenständiges Spiel handelt, solltest du in der Lage sein, zu sehen, wie es hier aussieht, ohne zu versuchen, das hier geöffnete Projekt auf meinem zweiten Monitor zu packen , und ich kann sehen, wie es aussieht. Jetzt kannst du sehen, dass nichts mehr verschwommen ist. Wie ihr jetzt aber sehen könnt, können wir das Level leicht nach unten bewegen und auch die Gesundheit Lass es uns schließen. Klicke auf die Enemy Info Widgets. Ich werde es auch für die Gesundheitsleiste auf -25 verschieben. Lass uns -45 versuchen und lass uns kompilieren und erneut auf Play klicken. Jetzt. Es sieht viel besser aus, wenn es im Vollbildmodus ist und alles spielbar aussieht und alles gut aussieht, wenn du willst Du kannst es auch ungefiltert für die Benutzeroberfläche machen, nur um sicherzugehen, dass alles gut aussieht und nicht verschwommen ist Sie können jederzeit zur Benutzeroberfläche zurückkehren. Wenn ich zum Inhalt gehe, öffne ich meine Bilder, im Grunde auch diese Artikel hier. Wenn ich einfach mit der rechten Maustaste klicke, Acid Action auswähle, Auswahl in der Eigenschaftsmatrix auswähle, zur Textur gehe und dann sollte der Filter auch am nächsten sein. Lassen Sie mich für diese auch einfach die Texturen hier öffnen . Das ist der Hit-Effekt. Um sicherzugehen, dass der Treffereffekt auch nicht verschwommen ist, öffne ihn einfach und gehe wieder runter zu Advanced Ändern Sie es in „Am nächsten“ und schließen Sie es. Nun auch zu den Icons. Klicken Sie mit der rechten Maustaste, legen Sie die Aktionen fest, bearbeiten Sie die Textur der Eigenschaftsmatrix und ändern Sie sie dann auf „Am nächsten“, schließen Sie sie auf „Schriftarten“. Sie müssen hier nicht wirklich etwas tun. Jetzt zu den Knöpfen. Bearbeiten Sie sie erneut und stellen Sie den Texturfilter auf den nächstgelegenen Wert ein. Das ist jetzt für alle erledigt. Lass uns auf Speichern klicken. Ich werde die Lautstärke für meine Musik auf die Standardlautstärke setzen , die eins ist. Auch hier werde ich anstelle der Baupläne und innerhalb der feindlichen Basis meinen Sound für das feindliche Jahr reaktivieren, zu dem ich die Verbindung unterbrochen Kompilieren Alle speichern. Lassen Sie mich jetzt einfach weitermachen und versuchen, das Projekt noch einmal zu verpacken. Jetzt, da das Projekt gepackt wurde, möchte ich einfach weitermachen und erneut auf den Dungeon-Clicker klicken erneut auf den Dungeon-Clicker um sicherzustellen, dass alles funktioniert Und Sie können sehen, dass nichts mehr verschwommen ist. Alles sieht gut aus, die Benutzeroberfläche sieht gut aus, der gesamte Sound funktioniert Ich kann im Grunde spielen, indem ich die Münzen neu starte. Das habe ich verpasst, aber momentan kein wirkliches Problem Aber ihr könnt sehen, dass alles funktioniert und die Liste funktioniert hier, und der Aufstieg funktioniert im Grunde auch Und ich kann sehen, dass es die richtige Menge an Schaden verursacht, und jetzt haben wir ein fertiges Spiel In Ordnung, jetzt sind wir mit dem Projekt fertig. Und du solltest wirklich stolz auf das sein, was du bisher getan hast , denn wir haben viel durchgemacht. Wir haben Spawnpunkte gemacht, wir haben Feinden Schaden zugefügt, wir haben all diese beiden D gemacht, indem wir sie zusammengefügt haben, die Benutzeroberfläche, die Benutzeroberfläche programmiert und so weiter Sie haben also viel Arbeit geleistet, und ich hoffe, dass Sie in diesem Kurs viel gelernt haben Und hoffentlich hat es auch viel Spaß gemacht zu lernen. Und wenn Sie möchten, können Sie sich auch meine anderen Kurse ansehen . Ich habe viele vertiefende Kurse und erstelle bis heute immer noch neue Kurse. Also vielen Dank fürs Zuschauen. Ich hoffe du hattest viel Spaß. Es hat mir viel Spaß gemacht, Diskurse zu gestalten. Und denkt daran, wenn ihr Hilfe 2047 haben wollt, könnt ihr jederzeit meinem Diskursserver beitreten Wir sind eine Community , die gerne hilft. Und wir können auch über Dinge in der Spieleentwicklung im Allgemeinen sprechen . Oder du kannst mir deine Arbeit zeigen. Du kannst es der Community zeigen. Es ist wirklich eine gesunde Gemeinschaft, in der man sein kann. Vielen Dank, dass Sie sich für diesen Kurs angemeldet haben, und ich wünsche Ihnen viel Spaß Und wir sehen uns im nächsten.