2D Game Kit

in #games4 years ago


Das 2D Game Kit ist ein Plattformer, den du in einem der Unity Tutorials kreieren kannst. In dem Jump and Run lernst du Gegner einzubauen, Türen per Schalter zu öffnen und deine Figur zu teleportieren.


Das 2D Game Kit

Zuerst kreieren wir eine neue Szene.

Eine neue Szene kreieren

Kit Tools

Das Projekt erlaubt das Anlegen neuer Szenen. Diese Szenen enthalten Ellen (unsere Heldin), einen kleinen Plattformer, Health UI und alles was du benötigst, um dich zu bewegen und anzugreifen.

Lass uns eine neue Szene erstellen:

- Im Hauptmenü wähle Kit Tools

- Aktiviere Create New Szene

  • Ein neues Fenster öffnet sich

Neue Szene

  • Im leeren Feld neben New Szene gebe den Szenennamen ein

Create New Szene

-Klicke Create

Unity erstellt eine neue Szene an deinem Projekt und fügt diese zu den Build Settings hinzu.

Unity neue Szene

Unity öffnet eine neue Szene im Editor, den du arbeiten kannst.

Eine Level erstellen

Das 2D Game Kit nutzt Unity's Tilemap-Funktionen, die entworfen sind, um dir zu helfen, einen Level schnell und einfach zu malen. Das Kit bietet dir alles, sodass du direkt starten kannst.

Beginne mit dem Level Design:

Im Hauptmenü gehe zu Window-->2D-->Tile Palette

Tile Palette 2D Kit

Du benötigst zwei Tile Palettes, die dir erlauben, einen Level zu malen.

Tile Palette 2D

Diese Tiles nutzen das skriptfähige Tile-System der Unity Tilemap. Sie wählen automatisch das richtige Sprite für den Plattformer. Wir haben zwei Arten von Sprites.

Wir müssen auf Nummer sicher gehen, dass in der Tile Palette die korrekten Einstellungen vorgenommen sind:

Klicke auf das Tile Palette Menü.
Wähle Tileset_Gamekit
Wähle das Tile, das du für deinen Level nutzen möchtest

  • Jetzt lass uns einige Tiles in der Szene malen, um den Level zu kreiren:
    • Klicke auf Tile Palette, um ein Tile auszuwählen
    • Navigiere zum Szenenbildschirm
    • Klicke Links, um das ausgewählte Tile in den Level zu ziehen und deinen Level zu erstellen

Tiles

  • Wenn du einen Fehler machst benutze den Radiergummi der Tile Palette, um ausgewählte Tiles zu löschen

Radiergummi

Deine Level testen

Jetzt, nachdem du einen Level erstellt hast, ist es Zeit ihn zu testen:

- drücke play oben im Editor

Folgende Tasten benötigst du für Ellen, den Spielcharakter

Bewegen: A, D
Springen: Leertaste
Hocken: S
Schießen: O
Nahkampf: K
Aktivieren: E
Eine Plattform durchqueren: S und Leertaste

Es gibt außerdem ein Debug-Menü. Drücke F12 auf der Tastatur, um die Option zu ermöglichen oder die Waffen von Ellen im Game View zu deaktivieren.

Eine bewegliche Plattformen hizufügen

Bevor wir beginnen, GameObjects im Szenenbildschirm zu manipulieren, gehe auf Nummer sicher, dass du dich nicht im Bearbeitungsmodus mit der Tile Palette befindest. Um dies sicherzustellen schließe die Tile Palette oder wähle das Bewegungstool in der oberen linken Ecke des Editors. Du kannst ebenso das Bewegungstool wählen, indem du wie auf der Tastatur W drückst.

Jetzt lass uns eine bewegliche Plattform im Level einbauen:

navigieren ins Projektfenster
-gehe zu Prefabs--> Interactables -->Moving Platform

In Interactables findest du alles, womit deine Spielfigur interagieren kann. Dazugehören Türen, Schalter & Co.

Bewegliche Plattform auswählen

Klicke links und ziehe die bewegliche Plattform in Bildschirm.

Nutze dieses Tool, um die bewegliche Plattform dort zu platzieren, wurde sie im Level haben möchtest.

Wenn du die bewegliche Plattform ausgewählt hast, erscheint eine rote Linie mit einem Bewegungstool und einem roten Pfeil am Ende. Dies zeigt den Weg an, den die Plattform nehmen wird, wenn gespielt wird.

Nutze das Bewegungstool, um zu beeinflussen, welchen Weg die Plattform nutzen soll.

Bewegliche Plattform einrichten

Eine Vorschau der beweglichen Plattform und ihres Weges zu bekommen, wähle die bewegliche Plattform und gehe folgendermaßen vor:

- Navigiere ins Inspektorfenster
- in der Komponente der beweglichen Plattform, finde den Preview Positions Slider
- Wähle diese Option aus, um zu sehen, wohin sich die bewegliche Plattform bewegen wird.

Preview Position Slider

Gestalte den Weg der Plattform etwas komplexer, indem du dafür sorgst, dass sie sich in einem Rechteck bewegt. Wir tun das, indem wir Nodes hinzufügen.

Nodes sind zusätzliche Navigationspunkte für die bewegliche Plattform.

Im Inspektorfenster, suche die Moving Platform Component.
Klicke zweimal Add Node.
Es werden zwei weitere rote Linien eingefügt.

Add Node

Diese kannst du nutzen, um die Position der Punkte festzulegen, zu denen sich die Plattform bewegen soll.

Rechteck

Du wirst feststellen, dass es keinen Weg gibt von der letzten Plattform zum Anfangspunkt gibt. Wenn du Play drückst, wird die Plattform letzten Punkt stoppen. Die Plattform bewegt sich zum letzten Punkt und bewegt sich anschließend wieder zurück.

Du kannst die Einstellungen der Plattform verändern, damit sich ihr Weg wiederholt:

Suche in der Moving Platform Componente, die Looping-Option.
Klicke im Drop-down-Menü, bei dem Back_Forth eingestellt ist
Wähle Loop

Loop

Dies erlaubt eine Wiederholung des Weges, den die Plattform nimmt. Der letzte Punkt und der Anfangspunkt des Weges werden miteinander verbunden.

Loop Plattform

Jede Komponente im Spiel hat viele Optionen, die eingestellt werden können.

Eine Tür mit einem Events öffnen

Das 2D Game Kit erlaubt, Events zu erstellen. Wir nutzen die Events, um zum Beispiel eine Tür zu öffnen, wenn der Spieler auf eine Plattform tritt.

Zuerst füge eine Tür hinzu:

Im Projektfenster viele Prefabs-->Interactables
Suche Door Prefab und ziehe es in den Szenenbildschirm. Platziere es irgendwo auf dem Weg des Spielers, wo es den Weg des Spielers blockiert.

Tür

Nun wählen wir ein Pressure Pad, die Druckplatte aus. Die Druckplatte muss betätigt werden, damit die Tür sich öffnet:
Du findest es ebenfalls im Projektfenster unter Prefabs-->Interactables und suche das PressurePad Prefab
Ziehe sieauf den Boden vor der Tür.

Einige Events sind bereits definiert, wie zum Beispiel das PressurePad, wenn der Spieler darauf tritt. Die Druckplattform spielt eine Musik ab und leuchtet auf. Jetzt verbinden wir das PressurePad und die Tür.

Wähle im Hierarchiefenster das PressurePad.
Suche im Inspektorfenster die PressurePad-Komponente.

In der On Pressed-Liste klicke + unten rechts und füge ein neues Event hinzu

Ziehe das Door GameObject vom Hierarchiefenster zu None(Object), unter Event.

Runtime Only

Im Dropdown-Menü steht momentan No Function. Suche den Animator-->Play(string)

Animator Play String

In der nächsten Textbox unter dem Menü gebe den Text DoorOpening ein.

DoorOpening

Starte das Spiel und nutze Bewegungstasten, um auf die Druckplatte zu rennen und die Tür zu öffnen. Die Tür sollte sich öffnen!

Alle Animatoinsclips im Projektfenster finden sich unter Art--> Animations-->Animation Clips.
Um verschiedene Animationen in einem Event abzuspielen, muss der Name des Animation Clips exakt ausgewählt sein.


Wenn du den Schalter ändern möchtest, anstatt eines Druckfeldes, kannst du dies auf die gleiche Weise tun, aber stattdessen den ReusableSwitch im Prefabs-Ordner auswählen.

Feinde hinzufügen

Es gibt zwei vorgefertigte Feinde: Chomper und Spitter.
Finde diese im Projektfenster Prefabs-->Enemies

Prefabs Enemies

Sie werden beide von der Enemy Behaviour-Componente im Inspektorfenster kontrolliert. Du kannst diese Komponenten nutzen, um Einstellungen vorzunehmen, wie zum Beispiel die Geschwindigkeit des Gegners, das Blickfeld, die Gesundheit und vieles mehr. Jeder Gegner hat die gleichen Komponenten, nur dass sie unterschiedlich eingestellt sind.
Beachte, dass du nicht nur bestimmte Werte festlegen kannst, sondern auch auf die Komponenteneigenschaften klicken und sie nach links / rechts ziehen kannst, um die Werte zu beeinflussen.

Füge Chomper in der Szene hinzu. Spiele mit den Einstellungen, wie zum Beispiel Geschwindigkeit und Sichtfeld herum. Vergiss nicht im Spielmodus mit F12 die Waffen zu aktivieren und mit O oder K anzugreifen.

Chomper

In der Szene wähle Chomper aus. Wir können seinen View FOV und die View Direction einstellen, sodass er Ellen nicht registriert, bevor er sich umdreht.

Chomper View

Schaden mit Objekten

In diesem Abschnitt entdecken wir das Schadenssystem. Um dies zu tun, wollen wir eine Box auf den Gegner werfen, um ihn auszuschalten.

Erstelle im Level einen Abschnitt, auf dem Ellen sich in einer höheren Position befindet. Chomper befindet sich auf einer niedrigeren Plattform.

Gehe zu Prefabs--> Enemies und ziehe dem Gegmer in den Szene und platziere ihn auf der niedrigeren Ebene im Level, bei der Klippe

- wähle ihn später aus und gehe auf das Enemy Behaviour Script
- reduziere die View Distance, so der Gegner nicht sofort auf dich schießt, wenn du das Spiel startest

- Im Projekt Fenster gehe zu Prefabs--> Interactables, klicke und ziehe das Pushable Box Prefab in den Szene

- Wähle die Pushable Box im Hierarchiefenster und klicke im Inspektorfenster auf Add Component
- Klicke auf Damager, um die PushableBox hinzuzufügen.

Damager

Die Damagekomponente sagt dem GameObjects, dass die Damageable Component (der angegeben Gegner) Schaden erleiden.

Der Damager wird von einer grünen Kollisionsbox repräsentiert, die angezeigt wird. Dies ist der Bereich, der Schaden verursacht. Hier gibt es momentan noch keinen Zusammenhang zur PushableBox. Wenn du also diese auf den Gegner wirfst, wird er keinen Schaden erleiden.

Bewegen wir diese Box so, dass sie ungefähr der Größe und Position der Pushable Box entspricht. Hierfür gibt es zwei Möglichkeiten:

- wähle und ziehe die grünen Punkte an den Ecken der grünen Kollisionsbox zu denen der Kiste, die geworfen wird.

Schadensbox

- Suche im Inspektorfenster die Damager Componente
- Passe die Form und die Größe an, um das Kollisionsfeld zu positionieren und zu vergrößern. Am einfachsten ist es, mit der linken Maustaste auf die Markierungen zu klicken und nach links und rechts zu ziehen, um durch die Werte einzustellen.

Offset Size

Zuletzt gehe auf Nummer sicher, dass der Schaden dem richtigen Spieleobjekt zugefügt wird. Wir teilen die Objekte in bestimmte Ebenen (Layers) im Editor ein, sodass sie leicht gefunden und getrennt werden können:
- Wähle PushableBox
- Im Inspektor suche die Damager-Komponente
- Unter Hittable Layers im Dropdown-Menü wähle Enemy Layer

Enemy

- Die PushableBox wird jetzt Schaden zu allem auf dieser Ebene zufügen, wie zum Beispiel unserem Gegner

Dekorieren

Zusätzlich gibt es dekorative Elemente, die du einbauen kannst. Finde diese unter Art-->Sprites-->Environment
Viele dekorative Elemente finden sich in einem Unterordner, deshalb denke daran, die Pfeiler aufzufächern und zu sehen, welche Sprites sich in welcher Kategorie befinden.

Environment

Die Protagonistin

Ellen ist die Protagonistin im 2D-Kit.

Ellen

Im Inspektorfenster erkennst du, dass sie ein Damageable Script hat, was bedeutet, dass sie durch alles was einen Damager hat, Schaden erleiden kann.

Fügst du beispielsweise Stacheln ins Spiel ein, haben sie eine Damager-Komponente, welche dem Charakter schaden zufügt.

Damager0

Wenn du ein HealthPickup einfügst, kann Ellen Gesundheit wiedererlangen, wenn es dieses einsammelt.


Um Ellen und die Kamera zeitgleich zu bewegen bzw. die Startposition von beidem zu veränden, wähle Ellen, drücke Strg und wähle zusätzlich die Kamera aus. Dann kannst du beide gleichzeitig über das Bewegungstool verschiedeben.

Figur und Kamera

Den Spieler Teleportieren

Du kannst den Spieler von einer Szene in die andere oder zwischen verschiedenen Levels teleportieren.

Innerhalb einer Szene teleportieren:

Um den Spieler innerhalb der Szene zu teleportieren, benutzen wir transition. Für dies benötigen wir zwei Prefabs:

  • TransitionStart
  • TransitionEnd

- Zuerst müssen wir die Einstellungen für den Startpunkt festlegen:

im Projekt Fenster wähle Prefabs-->SceneControl
- Suche das TransitionStart Prefab
- Ziehe TransitionsStart ins Szenebild. Platziere es in einer Position, in welcher der Spieler den Collider bzw. die grüne Box berührt, wenn er darauf läuft.

Den Bestimmungsort festlegen:

Ziehe ein weiteres TransitionStart Prefab vom SceneControl-Ordner in den Szenenbildschirm
- Im Inspectorfenster benenne dies zu TransitionEnd

TransitionEnd

- Lass uns beide verbinden:
Im Hierarchiefenster wähle TransitionStart GameObject
- Im Inspektorfenster finden die TransitionPoint-Komponente
- Ziehe das Ellen GameObject vom Hierarchiefenster zur Transition Point-Komponente in den Transitioning Game Object Slot
- Setze den Transition Type auf Same Scene
Du tust dies, um sicher zu gehen, dass nur Ellen teleportiert wird und dass dies nur innerhalb der Szene geschieht.

Teleport

Jetzt lass uns die Einstellungen des Bestimmungsortes festlegen:
Ziehe das TransitionEnd GameObject zum TransitionPoint und in den Slot für DestinationTransform

TransitionEnd0

- Setze Transition When auf On Trigger Enter
Trigger Enter bedeutet, dass der Transport nur aktiviert wird, wenn der Spieler den Collider betritt. Ansonsten wird Ellen nur teleportiert, wenn du die Taste E drückst und Transition When auf Interact Pressed gestellt ist. Stellst du Interact Pressed ein, muss der Spieler eine Taste drücken, um zu teleportieren.

In eine andere Szene teleportieren

Dafür werden zwei Prefabs benötigt:

  • TransitionStart, ist das gleiche Prefab wie vorher. Es sendet den Spieler zu seinem Bestimmungsort. Es enthält den Transition Point, der alle Einstellungen enthält, wo der Teleport startet und wohin der Spieler teleportiert werden soll. Platziere dieses Prefab dort, wo der Teleport beginnen soll.
  • TransitionDestination ist ein Prefab, zu dem der Spieler gesendet wird. Es enthält die TransitionDestination-Komponente. Platziere das Prefabs in einer anderen Szene, wo der Transport beendet werden soll.

Einstellungen für den Bestimmungsort des Transportes

- Zuerst soll der Bestimmungsort festgelegt werden. Wir benötigen alle Informationen von diesem, wenn der Startpunkt für den Transport festgelegt wird. Um dies für eine Szene hinzuzufügen, navigieren wir zum Projektfenster und gehen zu Prefabs--> SceneControl-->TransitionDestination
Platziere diesen deiner Szene, wo der Teleport eher hinführen soll.

Das TransitionDestination Prefab enthält eine Scene Transition Destination-Komponente
- zuerst lege einen Buchstaben für Destination Tag fest. Dies ist relevant für die Scene Transition Destination Component
- Als nächstes lege das Objekt fest, dass transportiert werden soll. Ziehe das GameObject vom Hierarchie Fenster in den Slot für Transitioning Game Object.
- Schließlich gehe auf Nummer sicher, dass deine Szene sich in den Editor's Build Settings befindet.
- Gehe zu File-->Build Settings und klicke auf Add Open Scenes

Build Settings auswählen

Build Settings

Den Startpunkt festlegen
- Diese Einstellungen entsprechen denen des vorigen Abschnittes:
- Transiton Type: Different Level
- New Scene Name: Der Name der Szene
- Transition Destination --> Destination Tag-Buchstabe aus der Transition Destination Componente

Beispiel: Sorge dafür, dass der Spieler in den ersten Level teleportiert wird.
In der Transition Start-Komponente stelle folgendes ein:
Transition Type: Different Level
New Scene Name: Zone1
Transition Destination: A
Drücke Play und gehe dorthin, wo der Teleporter ist. Du solltest den ganzen Weg bis zu Zone 1 teleportiert werden.

Zerstörbare Objekte

Du kannst Objekte hinzufügen, die zerstört werden können, wie z. B. Wände.

Destructable Wall

Im Beispiel findest du die Einstellungen zu DestructableWall_Whole.

Darin kannst du sämtliche Einstellungen am Objekt vornehmen.

Einstellungen zerstörbare Objekte

Objekte, die zerstört werden können, haben ein Damageable Script.

Damageable

Unter Starting Health stellst du beispielsweise ein, wie oft ein Objekt getroffen werden muss, bevor es zerstört wird.

Das Inventar

Wenn deine Spielfigur ein Inventar benötigt, braucht sie einen Inventory Controller.

Inventory Controller

Gegenstände, die aufgesammelt werden können, benötigen als Add Component das "Inventory Item".

Inventory Item

Der Schlüssel, den Ellen einsammeln soll, benötigt einen Collider, welcher der Größe angepasst wird.

Circle Collider

Unter Inventory Key wird der Titel eingetragen, den das Item im Inventar trägt.

Inventory Key

Stelle unter Layers Player ein, damit nur die Spielfigur den Schlüssel einsammeln kann. Füge außerdem einen Audio-Clip hinzu, wie zum Beispiel GenericPickup.

Erstelle eine Tür und sage dem System, dass sich für Ellen beim Einsammeln des Schlüssels die Tür öffnet. Dafür füge die Tür beim Inventarcontroller von Ellen ein und nehme dich gleichen Einstellungen wie bei der ersten Tür vor.

Damit der Schlüssel verschwindet, wenn Ellen ihn einsammelt, aktiviere im Invantarkontroller vom Schlüssel: Disable on Enter

Disable on Enter

Soll der Schlüssel in einem Inventar erschienen, füge eine UI ein. Damit fügst du am rechten Platz den Inventarplatz für den Schlüssel ein.

KeyCanvas

Unter Key UI im Inspektorfenster vom KeyCanvas fügst du den Namen deines Objektes ein und gibst die Menge der zu sammelnden Objekte ein.

Dialoge einfügen

Du benötigst hierfür ebenfalls den UI-Bereich. Du benötigst UI-Prefabs --> DialogueCanvas

Ziehe dieses ebenfalls unter UI. Dies muss beispielsweise verbunden werden, damit die Dialogbox erscheint, wenn ein Ereignis stattfindet.

Beim Teleporter füge über Add Component "Interact on Button 2D" hinzu.

Interact on Button

Damit sich dies nur auf Ellen bezieht, wähle die PlayerLayer. Dafür wähle zuerst Nothing und dann Player im Layerfeld. Wähle unter Interact On Button 2D das Pluszeichen und ziehe vom Hierarchiefeld den DialogueCanvas in den leeren Objektraum.

Interact on Button 2D

Dialogue Canvas Controller

Füge unter DialogueCanvas den Namen des Objekts ein, bei dem die Dialogbox erscheinen soll.

Interact on Button 2D Dialogue

Je nachdem, was du dort eingibst, erscheint der Text im Textfenster.

Damit das Fenster nicht die ganze Zeit stehenbleibt, füge bei OnExit den DialogueCanvasController mit DeactivateCanvasWithDelay hinzu. Mit der Nummer gibst du die Dauer an, welche die Textbox stehen bleibt.
Feld wieder deaktivieren


Posted from my blog with SteemPress : https://games-und-lyrik.de/2d-game-kit/
Sort:  

...saubere Arbeit @engelchen ;)

Steem on und weiter viel Erfolg...

Du hast ein kleines Upvote vom German-Steem-Bootcamp erhalten.

Du findest uns im Discord unter https://discord.gg/HVh2X9B

Aktueller Kurator ist @don-thomas

DONNERSTAGS findet bei uns ab 19 Uhr die Quasselstunde(n) statt wo du nicht nur mit uns reden kannst - es werden auch tolle Preise verlost
Du möchtest keine Upvotes (mehr) von uns erhalten? Eine kurze Mittelung unter diesen Kommentar reicht.
Dem Upvote von uns folgt ein Trail der weitere Upvotes von unseren Unterstützern beinhaltet. Hier kannst du sehen wer diese sind und auch erfahren wie auch du uns und somit die deutschsprachige Community unterstützen kannst.

Coin Marketplace

STEEM 0.28
TRX 0.13
JST 0.033
BTC 62549.96
ETH 3022.14
USDT 1.00
SBD 3.67