Ich sehe mir die neuen 2D-Funktionen in Unity 4.3 an und vermisse möglicherweise etwas.
Für mich sieht es so aus, als wären sie für hochauflösende 2D-Spiele konzipiert, bei denen das Skalieren der Sprites in Ordnung ist, aber für Pixel-Art-Spiele ungeeignet ist.
Ein Pixel-Art-Sprite ist so konzipiert, dass es genau 1: 1 Pixel auf dem Bildschirm anzeigt: Durch Skalierung wird es zerstört (lineare Hochskalierung ist eine Ausnahme, dh Sie können es 2x, 3x, 4x usw. skalieren).
Ich habe jedoch keine Möglichkeit gefunden, "es einfach so anzuzeigen, wie es ist". Anscheinend besteht Unity darauf, es auf eine beliebige Auflösung zu skalieren: Ich kann den Parameter Camera.size und den Parameter "Pixel in Einheiten" des Sprites steuern , aber ich habe es nicht geschafft, dieses Ergebnis zu erzielen.
Antworten:
Dieser Artikel enthält einige nützliche Erklärungen, auch wenn diese vor Version 4.3 herausgekommen sind:
(einige Hervorhebungen hinzugefügt)
Dies funktioniert natürlich besser, wenn die Höhenauflösung durch die Sprite-Größe teilbar ist, aber auch wenn dies nicht der Fall ist, liefert es dennoch eine gute Annäherung an ein anständiges Ergebnis.
TL; DR :
cameraSelf.orthographicSize = screenH / (float)spriteSize / 2f;
quelle