Die Vertrautheit mit dem Unity 2D-Kachelkartensystem bietet Indie-Entwicklern und Spielestudios eine hervorragende Gelegenheit, Zeit zu sparen, um Prototypen zu erstellen und hochwertige 2D-Spiele zu erstellen.
Ohne dieses System können Sie Tage, wenn nicht Wochen damit verbringen, Ihr eigenes Kachelkartensystem zu schreiben oder das eines anderen zu verarbeiten. Und das ist nur Programmierung, aber was ist mit dem Kachelkarten-Editor?
Das neue System ist kostenlos und direkt in den Unity-Editor integriert. Es bietet viele Funktionen, die wir in diesem Tutorial behandeln werden.
In diesem Artikel verwenden wir ein einfaches 2D-Spiel, um Folgendes herauszufinden:
- Wie Kachelkarten funktionieren.
- So aktivieren Sie Kachelkarten in Unity und passen das Raster an.
- So fügen Sie einem Projekt Sprites hinzu, konvertieren sie in Kacheln und fügen sie dann der Kachelpalette hinzu.
- So verwenden Sie Kacheleditor-Tools zum Erstellen von Ebenen.
- So sortieren Sie Kacheln und platzieren sie in verschiedenen Ebenen.
- So fügen Sie Unity-Physikkacheln hinzu.
- So färben Sie Kacheln dynamisch.
- So ändern Sie vorgefertigte Kacheln mit nativem Code und Logik.
- So fügen Sie dem Projekt eigene Erweiterungen und Kachelzuordnungsskripte hinzu.
Ja, die Liste war großartig. Aber keine Angst - wenn wir anfangen zu verstehen, werden Sie schnell verstehen, wie einfach diese Tools sind.
Hinweis: In diesem Lernprogramm wird davon ausgegangen, dass Sie gut mit dem Unity-Editor arbeiten können. Wenn Sie der Meinung sind, dass Sie damit nicht vertraut sind, finden Sie im Tutorial Einführung in Unity alles, was Sie zum Erlernen dieses Tutorials benötigen. Darüber hinaus benötigen Sie Unity Version 2017.3 oder höher.
Was ist ein Plättchenspiel?
Ein 2D-Kachelspiel ist ein Spiel, bei dem Ebenen oder Spielbereiche aus vielen kleinen Kacheln (Kacheln) bestehen, die zusammen ein Kachelraster bilden. Manchmal können die Unterschiede zwischen den Plättchen offensichtlich sein, und manchmal scheinen sie den Spielern solide und nicht zu unterscheiden.
Die Sammlung von Kacheln im Spiel wird als Kachelsatz bezeichnet, und jede Kachel ist normalerweise ein Sprite, das Teil eines Spritesheets ist. Wenn Sie besser mit Sprite-Blättern umgehen möchten, haben wir ein
Tutorial , das Unity-Sprite-Blätter beschreibt.
Wie Sie in diesem Tutorial sehen können, sind Kacheln normalerweise Quadrate. Sie können aber auch eine andere Form annehmen - Rechtecke, Parallelogramme oder Sechsecke. In Spielen wird normalerweise eine Draufsicht oder Seitenansicht verwendet, aber manchmal wird in Kachelspielen auch 2.5D verwendet.
Vielleicht kennen Sie bereits die beiden beliebtesten Spiele, die das Kachelkartensystem verwenden:
Starbound und
Terraria .
An die Arbeit gehen
Laden Sie die Projektmaterialien für dieses Tutorial herunter und entpacken Sie die ZIP-Datei.
Starten Sie den Unity-Editor und laden Sie das
Rayzor-Starter- Projekt aus den entpackten Projektmaterialien.
Hier ist, womit Sie in diesem Projekt arbeiten werden:
- Cinemachine / Gizmos: Unity Cinemachine wird nur hinzugefügt, um eine benutzerfreundliche Kamera zu implementieren, die dem Player folgt.
- Paletten: In diesem Ordner speichern wir unsere eigenen Kachelpaletten.
- Fertighäuser: Einige Fertighäuser, die wir später im Spiel verwenden.
- Szenen: Hier werden Szenen geöffnet und gespeichert.
- Skripte: Einige einfache Skripte zur Steuerung der Bewegung des Spielers, der Logik der Kollision von Fallen und des Gewinns / Verlusts im Spiel. Dieser Ordner enthält auch Unity Tilemap-Skripte aus dem Unity 2D Extras Github-Repository , die wir später verwenden werden.
- Sfx: Sounds für das Spiel.
- Sprites: 2D-Sprites, aus denen wir Kachelpaletten erstellen. Sie werden aus einer Packung Höhlen und Kerker für Roguelike genommen . Der Autor des Pakets ist kenney.nl.
Spieleerstellung
Öffnen Sie die Spielszene aus dem Ordner "
Szenen ".
Klicken Sie im Editor auf die Schaltfläche "
Spielen" , um das Spiel zu starten. Bewegen Sie den Helden im Spielfenster mit den WASD-Tasten oder den „Pfeilen“.
Während der Held mit der Farbe # 00000 durch den scheinbar endlosen Hintergrund der Kamera wandert, verloren in der Leere.
Um dies zu beheben, benötigen wir 2D-Kachelwerkzeuge, um interessante Levels und Spielmechaniken zu erstellen.
Kachelpalette kennenlernen
Klicken Sie im Editor auf
Fenster -> Kachelpalette , um das Fenster 2D-
Kachelpalette zu öffnen.
Dieses Fenster ist Ihr bester Freund, wenn Sie an Kachelspielen in Unity arbeiten.
- Diese Reihe von Symbolen bietet grundlegende Werkzeuge zum Bearbeiten, Zeichnen und Löschen von Kacheln
- Mit dieser Auswahl können Sie verschiedene Paletten erstellen, die als Paletten zum Zeichnen wahrgenommen werden können, in denen wir die "Farben" und in diesem Fall Kacheln platzieren.
- Mit dieser Auswahl können Sie Pinsel mit unterschiedlichem Verhalten erstellen. Sie können eigene Pinsel hinzufügen, deren Verhalten sich vom Standardpinsel unterscheidet (z. B. Zeichnen von Fertigkacheln mit zusätzlichen Funktionen).
Klicken Sie auf
Neue Palette erstellen und benennen Sie die
RoguelikeCave- Palette. Ändern Sie nicht die Raster- und Zellenoptionen.
Klicken Sie auf
Erstellen und speichern Sie die neue Palette im
Ordner Assets \ Palettes des Projekts. Erstellen Sie darin einen neuen
RoguelikeCave- Ordner.
Nun sollte die Ordnerstruktur Ihres Projekts folgendermaßen aussehen:
Im Fenster des
Kachelpaletten-Editors sollte
RoguelikeCave ausgewählt sein. Zu diesem Zeitpunkt haben wir noch keine Kacheln:
Wie kann ein Künstler seine Meisterwerke schaffen, wenn er keine Materialien hat?
Wählen Sie den Projektordner
Sprites / roguelike-Cave-Pack aus, ohne das Fenster
Kachelpalette zu schließen, und erweitern Sie das Asset
roguelikeDungeon transparent.png . Wählen Sie dann alle Sprites in diesem Sprite-Blatt aus: Wählen Sie das erste Sprite aus, halten Sie die Umschalttaste gedrückt und wählen Sie das letzte Sprite aus.
Ziehen Sie alle ausgewählten Sprites in das RoguelikeCave-Fenster der Kachelpalette:
Ziehen Sie die Sprites per Drag & Drop in das Fenster Kachelpalette und wählen Sie einen Ort zum Speichern von Assets in Unity aus.
Erstellen Sie einen neuen
Kachelordner in
Assets / Palettes / RoguelikeCave und wählen Sie diesen Ordner als Speicherort aus:
Unity generiert für jedes aus dem Sprite-Blatt hinzugefügte Sprite ein Kachel-Asset. Warten Sie, bis der Vorgang abgeschlossen ist, vergrößern Sie dann das Fenster der Kachelpalette und bewundern Sie die gleichmäßigen Reihen schöner neuer Kacheln in der RoguelikeCave-Palette:
Wiederholen Sie den obigen Vorgang, um mithilfe des Fensters "
Kachelpalette" eine Kachelpalette zu erstellen .
Benennen Sie diesmal jedoch die neue
RoguelikeCustom- Palette.
Legen Sie die neue Palette in einen neuen Ordner.
Benennen Sie den Ordner
RoguelikeCustom und verschieben Sie ihn in den
Ordner Assets / Palettes des Projekts.
Verwenden Sie dieses Mal unter Verwendung des oben beschriebenen Prozesses die Sprites aus dem
Blatt Assets / Sprites / roguelike-custom / roguelike-normal-cutdown-sheet.png , um die Kacheln der neuen Palette auszufüllen. Erstellen Sie einen
Kachelordner im
RoguelikeCustom- Palettenordner und verschieben Sie die Kachelbestände dorthin:
Freuen Sie sich, jetzt kennen Sie die Magie der Erstellung einer Kachelpalette!
Fliesen Map Mesh
Öffnen Sie das
GameObject- Menü oben im Unity-Editor (oder die Unity-Menüleiste, wenn Sie MacOS verwenden), klicken Sie auf
2D-Objekt und dann auf
Tilemap , um ein neues Tilemap-Raster zu erstellen:
Sie sollten sehen, dass der Szenenhierarchie ein neues GameObject-
Raster hinzugefügt wurde. Erweitern Sie es und wählen Sie die integrierte GameObject
Tilemap aus .
Stellen Sie sich diese
Tilemap als eine Ebene (vielleicht eine von vielen) in Ihrem Spiel vor. Sie können neue Objekte hinzufügen, um zusätzliche Tilemap-Ebenen zu erstellen.
Im Inspektor sehen Sie zwei Komponenten, die Unity automatisch zu diesem GameObject hinzugefügt hat:
- Die
Tilemap
Komponente Tilemap
von der Unity-Engine verwendet, um Sprites in der mit der Grid
Komponente gekennzeichneten Schaltung zu speichern. In unserem Fall ist dies GameObject Grid . Wenn Sie Tilemap zum ersten Mal erstellen, müssen Sie sich nicht wirklich um alle technischen Funktionen der Kommunikation von Unity zwischen all diesen Komponenten kümmern. Tilemap Renderer
bezeichnet das Material, das zum Rendern von Kacheln in Tilemap verwendet wird. Außerdem können Sie die Sortiereigenschaften dieser Tilemap-Ebene konfigurieren.
Benennen
Sie GameObject
Tilemap in
BaseLayer um .
Verwenden verschiedener Zeichenwerkzeuge für Kachelpaletten
Schalten Sie den Editor in den Szenenmodus.
Wählen Sie die RoguelikeCave-Palette aus, ohne die Kachelpalette zu schließen, und wählen Sie dann das
Pinselwerkzeug aus (oder drücken Sie
B ). Wählen Sie eine Sandkachel wie unten gezeigt:
Bewegen Sie den Cursor im Szenenfenster auf das Raster neben dem Player. Die Sandfliesenbürste rastet am Gitter ein.
Halten Sie die linke Maustaste gedrückt und zeichnen Sie einen rechteckigen Bereich um den Player. Es wird auf der Tilemap BaseLayer-Ebene gezeichnet:
Das Zeichnen großer Flächen kann eine eintönige Aufgabe sein, daher gibt es einen Pinsel mit
gefüllten Kisten, mit dem große Flächen
gemalt werden können. Klicken Sie im Fenster Kachelpalette auf das
quadratische Pinselsymbol (oder drücken Sie
U ).
Kehren Sie zum Editor zurück und zeichnen Sie ein noch größeres Rechteck um den Player, indem Sie die linke Maustaste gedrückt halten und den Cursor von links oben in die untere rechte Ecke ziehen:
Obwohl wir dem Spiel ein wenig Farbe hinzugefügt haben, sieht dieser Sandkerker langweilig aus. Es ist Zeit, einige Details hinzuzufügen!
Verwenden Sie die
Menüoption GameObject -> 2D-Objekt -> Tilemap , um eine neue Tilemap-Ebene zu erstellen. Diesmal ist es das einzige Objekt, das in der Hierarchie erstellt wird, da wir bereits ein geeignetes Raster haben. Benennen Sie diese Ebene in
DungeonFloorDecoration um :
Wechseln Sie im Fenster "
Kachelpalette" die
aktive Tilemap in die
Ebene "DungeonFloorDecoration" :
Wählen Sie das
Pinselwerkzeug (
B ) und zeichnen Sie die auf der Karte verstreuten Objekte im Szenenfenster:
Deaktivieren Sie die
DungeonFloorDecoration in der GameObject-Hierarchie und aktivieren
Sie sie erneut, um zu sehen, wie das Rendern auf der aktiven Tilemap die DungeonFloorDecoration-Ebene ändert und alle gerenderten Kacheln auf diese neue Ebene fallen:
Erstellen Sie erneut eine neue Tilemap-Ebene mit der
Option GameObject -> 2D-Objekt -> Tilemap . Nennen
wir es
kollidierbar . In Zukunft schaffen wir damit Wände und Grenzen.
Schalten Sie die aktive Tilemap im Fenster "
Kachelpalette" auf "
Kollidierbar" . Wähle das Pinselwerkzeug (
B ) aus und zeichne die folgenden Kacheln, um eine Wand um den Spielbereich zu bauen. Die im Bild unten rot hervorgehobenen Bereiche sind die neuen Teile, die hinzugefügt werden müssen:
Schauen Sie sich den Screenshot unten im Fenster "Kachelpalette" an, um herauszufinden, wo sich die Kacheln befinden, die zum Erstellen der Wand benötigt werden. Vergessen Sie nicht, dass Sie die Kombinationen STRG-Z oder CMD-Z verwenden können, um die Aktion rückgängig zu machen oder Fehler mit dem aktuellen Pinsel zu löschen (während Sie die
Umschalttaste gedrückt halten ):
Starten Sie das Spiel im Editor und versuchen Sie, durch die Wand zu kommen:
Wer hat den Noclip-Modus aktiviert? Sie haben das nicht erwartet?
Das Problem ist, dass wir nur die Standardkacheln gezeichnet haben und die magische Physikeinheit noch nicht auf die Tilemap-Ebene angewendet haben.
Wählen Sie GameObject
Collideable aus und fügen Sie eine neue Komponente hinzu, indem Sie im
Inspektorfenster auf die Schaltfläche Komponente hinzufügen klicken.
Geben Sie im Suchfeld
Tilemap Collider 2D ein :
Diese Komponente wurde speziell für Unity 2D-Kachelspiele erstellt. Es wendet einfach die Form des physischen Colliders auf alle Kacheln in der Ebene an, zu der er hinzugefügt wurde, ohne andere Arbeiten auszuführen.
Starten Sie das Spiel erneut und versuchen Sie, durch die Wand zu kommen. Zugang verweigert!
Hinweis: Manchmal können Sie beim Bewegen der Kamera kleine schwarze Linien zwischen einigen Kacheln bemerken. Dies scheint ein Problem mit der Kamerabewegung in Projekten mit dem 2D-Tilemap-Unity-System zu sein. Sie können es fast vollständig entfernen, indem Sie Anti-Aliasing in den Grafikeinstellungen deaktivieren. Selbst wenn dies im Beschaffungsprojekt erfolgt, ist der Effekt dennoch leicht spürbar. Die Lösung für dieses Problem könnte darin bestehen, ein eigenes Kamerabewegungsskript mit Pixelversatz hinzuzufügen. Eine gute Diskussion dieses Problems finden Sie hier .
Kollisionen funktionieren gut, und Sie könnten denken, dass das genug ist. Derzeit werden Collider jedoch nicht effizient optimiert. Vergrößern Sie im Szenenmodus einen Teil der Wand und sehen Sie sich die Konturen der Collider an:
Um jedes Plättchen befindet sich ein Collider. Die mittleren Wandabschnitte benötigen diese zusätzlichen Kollider nicht.
Fügen
Sie bei ausgewähltem GameObject
Collideable die
Composite Collider 2D- Komponente hinzu. Dadurch wird auch automatisch RigidBody2D hinzugefügt.
Setzen Sie den Parameter
BodyType RigidBody2D auf
Statisch und aktivieren Sie das Kontrollkästchen
Von Composite verwendet in der
2D- Komponente
Tilemap Collider :
Danach werden Sie feststellen, dass diese unnötigen quadratischen Kollider in der Mitte der Wände verschwinden.
Beenden Sie die Erstellung der Wände, indem Sie sie oben aufbauen und schließen, etwa 16 Kacheln hoch. Vergiss nicht. dass die kollidierbare Datei als aktive Tilemap des
Fensters Kachelpalette ausgewählt werden soll:
Die Dungeon-Sektion wird für unseren Helden ohne Hindernisse keine Schwierigkeit darstellen. Jetzt werden wir mit der Schaffung des Todesraums beginnen, der durch wunderschöne alte Marmorkorridore ergänzt wird. Nach Überwindung all dieser Hindernisse erhält der Spieler eine Belohnung - einen Berg aus Gold.
Um diese Korridore zu zeichnen, verwenden wir den speziellen Fliesenpinsel
Rule Tile . Wie Sie zu Beginn des Tutorials gesehen haben, wurden dem Projekt bereits zusätzliche Kachelskripte aus dem
Unity 2D Extras Github-Repository hinzugefügt. Eines davon ist Rule Tile.
Mit Regelkachel können wir Regeln festlegen, welche Kacheln abhängig von den benachbarten Kacheln, die wir haben, gezeichnet werden sollen.
Klicken Sie mit der rechten Maustaste auf den Ordner
Prefabs des Projekts und wählen Sie
Erstellen -> Regelkachel (dieses Element sollte sich oben im Menü befinden).
Nennen Sie das neue
MarbleFloorRuleTile- Element:
Wählen Sie diese neue
MarbleFloorRuleTile aus und setzen Sie mit dem Inspektor das
Standard-Sprite auf
roguelikeDungeon_transparent_335
. Fügen Sie dann eine neue Kachelregel hinzu, indem Sie auf das Symbol
+ klicken. Wählen Sie den Wert
roguelikeDungeon_transparent_339
für
Sprite dieser Regel aus und klicken Sie auf alle äußeren Quadrate im Regelschema, sodass auf jedem ein grüner Pfeil nach außen zeigt:
Zeichnen
Sie mit dem Feldfüllpinsel (
B ) in der Kachelpalette und der Auswahl der Tilemap-
Basisschicht einen geraden Abschnitt der Marmorwand. Es ist notwendig, dass es den gesamten freien Raum des Bodens bedeckt.
Sie können feststellen, dass die Ebene dabei die Wandkacheln mit Kollidern schließt, da die Reihenfolge der Ebenen noch nicht festgelegt wurde. Dies kann einfach behoben werden, indem Sie
GameObject Collideable
auswählen und die
Reihenfolge in der Ebene der
Tilemap Renderer- Komponente auf einen höheren Wert
ändern (
5 reicht aus):
Gehen Sie zurück zum
Prefabs- Ordner des Projekts, öffnen Sie das Kachelfenster, wählen Sie die RoguelikeCave-Palette aus und ziehen Sie
MarbleFloorRuleTile an eine leere Stelle in der Palette:
Verwenden Sie den Kastenfüllpinsel und zeichnen Sie einige Teile des Marmorbodens in den Raum:
Beachten Sie, dass eine benutzerdefinierte Regelkachel, die vollständig von allen Winkeln und Flächen umgeben ist, zu einer dekorierten Kachel wird (das im Editor für Kachelregeln ausgewählte Sprite).
Das ist eine Falle!
Nein, wir werden Admiral Akbar nicht als Charakter zum Spiel hinzufügen. Wir werden einen Fliesenpinsel für das Fertighaus der Falle erstellen, mit dem wir Fallen zeichnen, die mit rotierenden Klingen schießen!
Erstellen Sie ein neues leeres GameObject in der Hierarchie und nennen Sie es
ShootingTrap . Erstellen Sie ein leeres GameObject-Kind in ShootingTrap. Nennen Sie es
Sprite :
Wählen Sie
Sprite aus und fügen Sie die
Sprite Renderer- Komponente hinzu. Setzen Sie die
Sortierebene auf
Player und die
Reihenfolge in Ebene auf
1, damit sie über den restlichen Ebenen gerendert wird. Wählen Sie das
Sprite- Feld aus und legen Sie
roguelikeDungeon_transparent_180 als Sprite fest.
Drehen Sie nun die Transformation des
Sprite- Objekts um
-90 in der
Z- Achse:
Kehren Sie als Nächstes zu GameObject
ShootingTrap zurück und fügen Sie mithilfe des Inspektors eine neue Komponente hinzu. Suchen Sie im Suchfeld nach
Shooting Trap und hängen Sie dieses Skript an.
Dieses Skript wird zu den heruntergeladenen Projektdateien hinzugefügt. Tatsächlich wird Corutin alle zwei Sekunden gestartet, wodurch eine vorgefertigte Instanz des rotierenden Sägeblattes (oder eines anderen vorgefertigten) in der aktuellen Position der Falle erstellt wird.
Setzen Sie den Parameter
Item to Shoot Prefab der Shooting Trap-Komponente auf
Projectile (das Fertighaus befindet sich in
/ Assets / Prefabs ):
Starten Sie das Spiel erneut im Editor und verwenden Sie den Szenenmodus, um die Falle zu finden. Sie arbeitet!
Ziehen Sie eine Kopie von
ShootingTrap aus der Hierarchie in den
Ordner / Assets / Prefabs des Projekts, um ein Fertighaus zu erstellen. Entfernen Sie ShootingTrap aus der Hierarchie.
Wir verwenden ein anderes
Kachelpinselskript namens
PrefabBrush , um einen Pinsel zu erstellen, mit dem Fertighäuser auf Tilemap-Ebenen gezeichnet werden können.
Klicken Sie mit der rechten Maustaste auf den
Ordner / Assets / Prefabs des Projekts und wählen Sie
Erstellen -> Fertigpinsel .
Nennen Sie das Objekt
PrefabBrush .
Verwenden Sie den Inspektor, um den Parameter
Prefabs Size PrefabBrush auf
1 und den Parameter
Element 0 auf
ShootingTrap zu setzen .
Erstellen Sie eine neue Tilemap-Ebene mit dem Namen "
Traps" im
Raster und öffnen Sie das Fenster "Kachelpalette".
Wählen Sie den normalen Kachelpinsel (
B ) aus und wählen
Sie im Dropdown-Menü unten im Fenster
Kachelpalette PrefabBrush aus . Wählen Sie Active Tilemap
Traps als Ebene aus und zeichnen Sie im Szenenfenster mehrere vorgefertigte Traps am linken Rand des Raums.
Erweitern Sie die GameObject-
Traps in der Hierarchie und experimentieren Sie mit dem
Shoot Start Delay- Wert für jeden Wert auf jedem Gameobject
ShootingTrap mithilfe des Shooting Trap-Skripts im Inspektor. Addiere 0,25 zum Wert jeder Falle, d.h.
- First ShootingTrap -> Shoot Start Delay = 0.1
- Zweite ShootingTrap -> Shoot Start Delay = 0,35
- Dritte ShootingTrap -> Shoot Start Delay = 0.6
- Usw...
Starten Sie das Spiel und bestehen Sie den Test, wenn Sie sich trauen.
Ultimatives Ziel
Das Ziel dieses Mini-Dungeons ist es, einen Haufen Gold zu bekommen. Ruhm und Reichtum erwarten diejenigen, die es erreichen, und vermeiden tödliche fliegende Klingen.
Erstellen Sie eine neue Tilemap-Ebene mit dem Namen "
Ziel" in GameObject
Grid . Wählen Sie
Ziel und ändern Sie den Wert der
Tilemap-Renderer-Reihenfolge in Ebene auf
2 :
Stellen Sie sicher, dass PrefabBrush weiterhin ausgewählt ist, ohne das Fenster Kachelpalette zu schließen. Stellen Sie
Element 0 auf die
Zielvoreinstellung im Ordner / Assets / Prefabs des Projekts.
Dies ist ein Fertighaus mit einem Berg aus goldenem Sprite, mit Box Collider 2D mit aktiviertem Is Trigger, einer zusätzlichen
Goal.cs
und einem einfachen
Goal.cs
Skript, das den Sound des Erreichens des Ziels reproduziert und das Level neu startet, wenn der Spieler in den
Goal.cs
fällt.
Verwenden Sie den Standard-Fliesenpinsel, um eine vorgefertigte Zielkachel oben im Raum hinter den Fallen zu zeichnen:
Starten Sie das Spiel erneut und versuchen Sie, das Ziel zu erreichen. Wenn Sie zu dieser Kachel gelangen, wird die
OnTriggerEnter2D()
Logik von
Goal.cs
, die den Soundeffekt reproduziert und den Pegel neu
Goal.cs
.
Feinschliff
Jetzt ist der Dungeon zu leicht und frei. Wir können dem Stil hinzufügen, indem wir zu einem 2D-Sprite-Material wechseln, das auf Licht reagieren kann.
Wählen Sie die Objekte Sprite Player, Goal und ShootingTrap aus und lassen Sie das Sprite Renderer-
Material SpriteLightingMaterial verwenden :
Dies ist Material mit einem daran befestigten
Sprite / Diffuse- Shader. Dadurch kann die Szenenbeleuchtung Sprites beeinflussen.
Wählen Sie im GameObject-
Raster die
Objekte BaseLayer, DungeonFloorDecoration, Collideable und Goal aus und verwenden Sie dann den Inspektor, um das
Tilemap Renderer-Material SpriteLightingMaterial auch im Material
zu verwenden .
Wählen Sie dann in GameObject
Lights Richtungslicht und reduzieren Sie das
Intensitätslicht auf
0,3 .
So viel besser!
Außerdem werden Sie jetzt feststellen, dass der Spieler ein
Punktlicht trägt, dh eine
Laterne , die um ihn herum leuchtet.
Nachdem die Sprites in der Szene das richtige Material verwenden, wirkt sich die Unity-Beleuchtung auf alle umgebenden Sprites aus.
Ziehen Sie zwei Kopien des FlickerLight-
Fertighauses aus dem
Ordner / Assets / Prefabs des Projekts in Scene und platzieren Sie sie in GameObject
Lights .
Stellen Sie die erste Fertighausposition
(X: -11,25, Y: 4, Z: -1,35) und die zweite -
(X: 2,75, Y: 4, Z: -1,35) ein .
Erstellen Sie eine neue Tilemap-Ebene mit dem Namen
WallsAndObjects und setzen Sie die
Tilemap-Renderer-Reihenfolge im Ebeneninspektor auf
15 . Denken Sie daran, dass
Material auch
SpriteLightingMaterial verwendet .
Schalten Sie den
Kachelpalettenpinsel wieder auf
Standardpinsel und die
aktive Tilemap auf
WallsAndObjects .
Zeichnen Sie mit dem Pinsel (
B ) zwei „Lichtlampen“ -Kacheln unter jedes der neuen FlickerLights, die wir an den Ecken des Anfangsbereichs platziert haben:
Zeit der Schwierigkeit
Mal sehen, ob wir den Dungeon noch weiter verbessern können. Verwenden Sie die Ebene Tilemap
WallsAndObjects , um Bücherregale oben im
Dungeonraum mit einer anderen
Kachelpalette namens
RoguelikeCustom zu erstellen . Zeichnen Sie auch ein oder zwei Teile der rissigen Wand.
Kehren
Sie zur Ebene Tilemap
DungeonFloorDecoration zurück und fügen Sie dem Marmorboden weitere Details hinzu, z. B. Risse auf mehreren Fliesen:
Herzlichen Glückwunsch, du hast dein erstes Mini-Dungeon-Level abgeschlossen! Als Ergebnis sollten Sie etwas Ähnliches erhalten:
Wohin als nächstes?
Wenn Sie einen Schritt verpasst haben, können Sie sich das fertige Ergebnis dieses Tutorials ansehen, indem Sie das Unity
Rayzor-Abschlussprojekt aus herunterladbaren
Materialien öffnen .
Wir haben in diesem Tutorial viel gelernt, aber wie bei jedem anderen Unternehmen gibt es immer etwas anderes!
Es gibt interessante Kachelpinselskripte, die in diesem Tutorial nicht behandelt werden. Lesen Sie
hier darüber und überlegen Sie, ob Sie sie verwenden können.
Hier erfahren Sie auch, wie Sie animierte Kacheln erstellen.