Einführung in das neue Unity-Kachelkartensystem


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

GIF

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.

  1. Diese Reihe von Symbolen bietet grundlegende Werkzeuge zum Bearbeiten, Zeichnen und Löschen von Kacheln
  2. 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.
  3. 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:

GIF

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:

GIF

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:

GIF

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:

GIF

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!

GIF

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:

GIF

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):

GIF

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:

GIF

Verwenden Sie den Kastenfüllpinsel und zeichnen Sie einige Teile des Marmorbodens in den Raum:

GIF

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!

GIF

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.

GIF

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.

GIF

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:

GIF

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.

Source: https://habr.com/ru/post/de412765/


All Articles