Leveldesign: Parallax Scrolling – Unity3D Tutorial 11
Dieser Artikel ist Teil meiner Unity 2D Platformer Tutorial Reihe.
In dieser Folge beschäftige ich mal ein bisschen mit dem Leveldesign, genauer gesagt mit dem Hintergrund eines Szenenbildes.
Um in unserem 2D Spiel einen dreidimensionalen Eindruck zu vermitteln, möchte ich in diesem Teil nämlich das Parallax Scrolling behandeln.
Parallax Scrolling
Ein sehr häufig genutztes Stilmittel in 2D Spielen ist Parallax Scrolling. Hierbei geht es darum, verschiedene Darstellungslayer zu nutzen und mit der Verschiebung dieser einen dreidimensionalen Eindruck zu vermitteln.
Da Unity ja eigentlich eine 3D-Engine ist, könnten wir natürlich einen 3D-Effekt auch durch das Platzieren echter 3D-Objekte im Raum erzeugen. Aber dies wirkt einfach anders als ein Parallax Scrolling, weshalb ich diesen Effekt nun auch in unserem Unity-Game integrieren möchte.
Das Parallax Scrolling basiert auf den visuellen Effekt der Bewegungsparallaxe. Dieser bewirkt, dass beim Fortbewegen des Betrachters nahliegende Objekte schneller an einem vorbeizuziehen scheinen als weitentfernte.
Schaut man beispielsweise beim Zugfahren aus dem Fenster, wirkt es so, als würden die Bäume an der Bahntrasse ganz schnell vorbeiziehen, während die weiter entfernten Häuser viel langsamer wirken.
Video
Diesen Effekt der Bewegungsparallaxe werde ich nun in diesem Teil mit Hilfe des Parallax Scrollings in unser Spiel integrieren. Viel Spaß!
Sprite-Download
Wie immer stammen auch diese Texturen wieder von Alexej Bodemer. Vielen Dank!
Die Sprites könnt ihr kostenlos herunterladen und unter Einhaltung Creative Common 3.0 Lizenz nutzen.
Die Nutzungsbedingungen besagen:
- Dieses Grafikset darf ausschließlich nur privat verwendet werden.
- Das Verändern und die kommerzielle Nutzung der Grafiken, oder Teile davon, ist ausdrücklich untersagt.
- Bei Fragen, Anregungen oder Feedback zu dem Grafikset sende Sie bitte eine E-Mail an cacysunlee79(at)googlemail(dot)com
Pixelart Sets von Alexej Bodemer steht unter einer Creative Commons Namensnennung-NichtKommerziell-KeineBearbeitung 3.0 Unported Lizenz. Über diese Lizenz hinausgehende Erlaubnisse können Sie unter www.alexejbodemer.de erhalten.
Hier ist der DOWNLOAD.
Super – Klasse Blog!
Vielen Dank, C590 🙂
Hallo,. vielen Dank für den ausführlichen Artikel und die tollen Tipps
Weiter gehts, danke!
PS: Die neue Seite sieht spitze aus, übersichtlich und gut lesbar!
@Mout: Danke, das freut mich 🙂
Super Tutorial, wie immer, weiter so ! 🙂
An das neue WP-Theme muss ich mich erst gewöhnen, aber sieht gut aus. 🙂
Hi Carsten,
Die Videos sind alle ganz toll und ich habe schon viel gelernt 🙂 aber ich komme im Moment nicht weiter.
Ich bin im 8 Video dieser Serie zum stoppen gekommen.
Ich habe meinen Player und das Skelett, die zwei Cubes (lefttTrigger & rightTrigger) um mein Player und nun auch das Script (waypointwalker) bis zum ende mit :
void Die ( )
{
Destroy(gameObject);
}
}
Fertig. Ich habe auch das Player zum Enemy im senddamagecollider Script geändert und auch im inspector.
Mein Problem nun ( ich habe mir das video 5 mal angeguckt aber den Fehler bei mir nicht gefunden) – mein Skelett lässt sich nicht zerstören ??!! aber es verwundet trotzdem noch meinen Player was mache ich falsch ?
Ich habe zur probe mal das skelett gegen ein ganz normalen cube laufen lassen, es läuft durch, ist das auch normal ?
Schon mal vielen Dank MfG Core
Das muss ich auch noch mal sagen der neu Style von der Web und den Videos ist top, total cool
Vielen Dank euch allen für das viele positive Feedback!
@Core: Schreib mal in die ApplyDamage Funktion des WaypointWalkers „Debug.log(„ApplyDamage wurde ausgeloest.“);“
Wenn Du nun gegen das Skelett läufst, erscheint der Text „ApplyDamage wurde ausgeloest.“ in deiner Console? Erscheint wohlmöglich eine andere Meldung dort?
Vielen Dank schon mal für eine Antwort aber bei mir kommt befor ich das spiel überhaupt starten kann die fehlermelgung : `UnityEngine.Debug´ does not contain a definition for `log´ brauch ich vielleicht eine variable für log ?
oh, log muss groß geschrieben werden oder ?
jedenfalls ich habe es jetzt „Log“ geschriebn und das spiel lässt sich starten aber es erscheind kein text sondern ich werde immer noch verwundet 🙁
Sorry, dass ich dir so viele e-mails geschrieben habe aber ich war echt verzweifelt.
Ich hebe das Problem jetzt selbst gelöst :
Ich habe mir alle scripts noch mal durch gelesen und da ist mir aufgefallen, dass ich einmal Damager statt Damage geschrieben habe – 🙂 nun ja tippfehler passieren aber trotzdem vielen Dank
Ich guck mir jetzt sofort die nächsten videos an !! 🙂
@Core: Jepp, mein Fehler: Log muss groß geschrieben werden.
Super, dass Du diesen wie auch den eigentlichen Fehler selber gefunden hast 🙂
Wie immer ein cooles Tut! 😀
Ich fand es auch sehr gut, dass du den Wrap Mode erklärt hast!
Hallo Miro, vielen Dank für Dein Kommentar. Beim Erstellen der Videos frag ich mich häufig, wie detailliert ich gewisse Dinge erklären soll. Da sind solche Kommentare für mich natürlich sehr hilfreich 🙂