Jump to content
Unity Insider Forum

Shader für Sprite-Problem?


Kurouzo

Recommended Posts

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:

 

a581ty.jpg

 

1zlvdsm.jpg

 

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

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

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

 

2mg4je9.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...