Kurouzo Geschrieben 25. April 2016 Melden Share Geschrieben 25. April 2016 Hallo Zusammen, ich stehe vor einem Problem welches mich schon länger beschäftigt. Und zwar möchte ich ein 2D-Spiel mit isometrischer Ansicht entwickeln und habe mir überlegt den 2D-Objekten einen Mesh Collider (anstatt eines Polygon Colliders) zu verpassen, da es mir wahrscheinlich später leichter fallen wird mich in der Welt zu bewegen, z.B. um mit der Spielfigur irgendwo hoch bzw. herunterzuspringen oder auch Treppen hochzulaufen. Nun habe ich jedoch das Problem, dass wenn z.B. ein Objekt auf ein anderes ist, dieses durch das Sprite des darunterliegenden Objekts verdeckt wird. Hier etwas zur Veranschaulichung: Nun hab ich mir gedacht, dass mir da eventuell ein eigener Shader weiterhelfen könnte, den ich dann einfach auf den Sprite Renderer lege (oder auf den Mesh Renderer). Damit dann quasi Sprite A nur dann von Sprite B verdeckt wird, wenn Collider A sich auch tatsächlich hinter Collider B befindet … also unabhängig davon wo die jeweiligen Sprites sind. Ich habe jedoch nicht wirklich viel Ahnung von Shadern und ob so etwas überhaupt möglich ist. Deshalb würd ich mich riesig freuen wenn ihr mir da vielleicht ein paar Tipps geben könntet. Vielen Dank schon mal im Vorraus. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. April 2016 Melden Share Geschrieben 25. April 2016 Um die Reihenfolge von Sprites zu bestimmen, kannst du ihnen einen Layer geben. Die Layer werden nacheinander in einer festgelegten Reihenfolge gezeichnet. Du kannst zusätzlich einen Order-Wert angeben, der innerhalb eines Layers die Zeichenreihenfolge festlegt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kurouzo Geschrieben 27. April 2016 Autor Melden Share Geschrieben 27. April 2016 Sorting Layer und Order in Layer kenne ich natürlich, ich beschäftige mich ja auch schon eine Weile mit Unity. Ich weiß jedoch nicht wie ich das Problem damit lösen kann. Der Block wird zwar vor dem Haus angezeigt wenn ich z.B. den Order-Wert auf 1 und den vom Haus auf 0 setze. Aber sobald ich nun mit dem Block vom Haus runterspringen will, muss sich der Order-Wert ja auch irgendwie abhängig von der Position zum Haus wieder verändern … also ist er vor dem Haus(bleibt 1) oder hinter dem Haus (-1). Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 27. April 2016 Melden Share Geschrieben 27. April 2016 Joa, das ist so der Punkt, an dem ich mit 3D anfangen würde. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kurouzo Geschrieben 27. April 2016 Autor Melden Share Geschrieben 27. April 2016 Na aber ich würde echt gern bei 2D bleiben ... da muss es doch irgendeine Möglichkeit geben. Bei anderen Spielen hats doch auch irgendwie funktioniert (z.B. Landstalker). Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 27. April 2016 Melden Share Geschrieben 27. April 2016 Dann musst du dir halt was komplexes basteln, das je nach Situation die Sprite-Order ändert. Wir hatten da gerade erst ein ähnliches Thema. Klar ging das in Landstalker, aber die haben das in 2D gemacht weil 3D nicht drin war. Heutzutage ist es kein Problem, 3D zu benutzen, wenn sich daraus Vorteile ergeben. Und das tun sie hier. Ich will dich aber nicht bekehren, 2D ist ebenfalls möglich. Ist nur halt komplizierter. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 27. April 2016 Melden Share Geschrieben 27. April 2016 Ich denke du musst das nicht mit aller Macht in 2D erstellen, Kurouso. Was spricht denn dagegen, 3D zu nutzen und trotzdem mit Planes zu arbeiten, auf denen du die Sprites darstellst? 3D hat eine räumliche Tiefe und wenn du die Planes in der Z Achse verschiebst hast du kein Problem mehr mit deiner Z-Order. Die Kamera einfach aur orthgrafisch stellen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.