Bu makalede , 4.3 çıkmadan önce bile bazı yararlı açıklamalar verilmektedir:
“Piksel resmi” görünümüne gidiyorsanız, kameranın ortografik boyutu kritik öneme sahiptir; Bu, Unity'de 2D çivilemenin en zor kısmıdır.
Ortografik boyut, kamera projeksiyonunun üst yarısında kaç tane dünya birimi bulunduğunu ifade eder. Örneğin, ortografik boyutu 5 olarak ayarlarsanız, görünüm penceresinin dikey uzantıları tam olarak 10 birim dünya alanı içerecektir. (Yatay uzantılar ekran en boy oranına bağlıdır.)
Sprite dörtlü'nün bir tarafa 1 birim olduğunu hatırlayın. Bu, ortografik boyutun, görünüm alanında (2'ye bölünmüş) kaç tane sprite dikey olarak yığınlayabileceğinizi söylemesi anlamına gelir.
Piksel sanatının temiz görünmesini sağlamak için hareketli grafiğin kaynak dokusunun her pikselinin görünüm ekranı görüntüsüyle 1: 1 eşleştiğinden emin olmanız gerekir. Kaynak piksellerin atlanmasını veya ikiye katlanmasını istemezsiniz ya da spritelarınız bozuk ve “kirli” görünür. Bu 1: 1 oranını sağlamanın hilesi, dikey ekran çözünürlüğünüze uygun bir dikey boyutun bir hareketli grafiğin piksel yüksekliğine bölünmesidir.
Diyelim ki 960x640'ta koşuyorsunuz ve 64x64 sprite kullanıyorsunuz. Dikey ekran çözünürlüğünü (640) bir hareketli grafiğin (64) piksel yüksekliğine bölmek, 640 piksel olarak dikey olarak istiflenebilen 64x64 hareketli sayısı olarak 10 verir. Ortografik boyutun yarı yükseklikte olduğunu unutmayın, bu nedenle bu durumda hedef ortografik boyutunuz 5 (10'un yarısı) olacaktır. Şöyle görünmelidir:
Ortografik boyutunuzu bu hedefin yarısına veya iki katına ayarlarsanız, hareketli grafiğin dikey boyutu yine de görünümün dikey boyutuna eşit olarak bölüneceğinden kullanılabilir sonuçlar elde edebilirsiniz. Ancak ortografik boyutu yanlış ayarlarsanız, bazı piksellerin atlandığını veya iki katına çıktığını göreceksiniz ve gerçekten çok kötü görünecek:
Değişken Çözünürlük
Temiz piksel resmi oluşturmak için tek bir sabit çözünürlükle sınırlı kalmanıza gerek yoktur. Değişken çözünürlükleri işlemenin en basit yolu fotoğraf makinenize geçerli dikey çözünürlüğe ve bilinen (sabit) hareketli grafik boyutuna göre ayarlanan özel bir komut dosyası eklemektir :
// set the camera to the correct orthographic size
// (so scene pixels are 1:1)
s_baseOrthographicSize = Screen.height / 64.0f / 2.0f;
Camera.main.orthographicSize = s_baseOrthographicSize;
Bu basit bir düzeltme olsa da, bir dezavantajı var: ekran çözünürlüğü azaldıkça, daha az ve daha az dünya göreceksiniz ve spritelar daha fazla ekran alacak. Bu, kaynak ve ekran pikselleri arasında 1: 1 oranını korumanın sonucudur: 64x64 hareketli grafik, 640x480'de 1920x1200'de olduğundan daha fazla yer kaplar. Bunun bir sorun olup olmadığı oyununuzun ihtiyaçlarına bağlıdır.
Spritelarınızın ekran çözünürlüğünden bağımsız olarak aynı görünür boyutta kalmasını istiyorsanız, ortografik boyutu sabit bir değere ayarlayın ve ekran çözünürlüğünden bağımsız olarak orada bırakın. Bunun dezavantajı, spritelarınızın artık 1: 1 kaynak / ekran piksel oranına sahip olmamasıdır. Sadece hedef çözünürlüğünüzün tam yarısı ya da tam olarak iki katı olan çözünürlüklere izin vererek bunun kötü etkilerini azaltabilirsiniz.
(biraz vurgu eklendi)
Yükseklik çözünürlüğü hareketli grafik boyutuna bölünebilirse bu daha iyi çalışır, ancak olmasa bile, yine de iyi bir sonucun iyi bir yaklaşımını verir.
TL; DR :cameraSelf.orthographicSize = screenH / (float)spriteSize / 2f;