Unity's Sprite ve Texture2D sınıfları arasındaki fark nedir?


19

Birlik hem bir Texture2Dsınıfa hem de bir Sprite(ilişkili SpriteRenderer) sınıfa sahiptir . Bu iki sınıf arasındaki fark nedir? Her ikisi de bir görüntüyü temsil ediyor, 2D oyunlar için birini diğerine tercih etmeliyim?

Kullanarak ikisi arasındaki temel fark Sprite , "billboard" dörtlüsünü kendim oluşturmak zorunda olmadığım mı? Ve Spriteher zaman doğrudan kameraya karşı işlendiğini?

Yanıtlar:


16

Haklısın - biraz. Sprite'lar varsayılan olarak doğrudan kameraya karşı oluşturulur, ancak Sprite Renderer'ı bir 3D sahnede kullanıyorsanız bunu kolayca değiştirebilirsiniz.

Sprite'lar sahnenizdeki fiziksel nesnelerdir, oysa Texture2D tam olarak söylediği şeydir. Bir doku. Bir malzemeye bir doku, oyun nesnesine (örneğin bir düzlem) malzeme eklenmelidir.

Unity 3.x günlerinde, kendi Sprite Manager / Class'ınızı yuvarlamanız gerektiğinde (veya bu rahatsızlığı gidermeye çalışan varlık deposundan bir varlık satın alma seçeneğiniz vardı) ). Unity gerçekten hiç bir zaman 2D oyunları desteklemek için tasarlanmamıştı (yine de geliştiriciler bunu yapmanın yollarını buldu), Unity Developers sonunda 2D oyunlar (sprite, sprite sheet, 2D fizik) için dahili destek sağlayan 4.x'e kadar.

Bir 2D oyun yapıyorsanız, her zaman Sprite sınıfını kullanmaya çalışın. Kendinizi yuvarlamaktan daha iyidir ve fazlasıyla sunar.


AFAIK Spritesayrıca isterseniz Unity tarafından otomatik olarak atlaslara paketlenecektir.
bummzack

Bu sadece Unity Pro, zor buggers için geçerlidir
jhocking

4
Bunun Unity 5 ile ücretsiz olduğuna inanıyorum
Chris Hawkes

@ChrisHawkes Gerçekten - sadece ifadeyi onaylamak için :)
Spritelar

6

Bunlar Sprite hakkında sevdiğim avantajlardan bazıları:

  1. Tüm SpriteRenderer, varsayılan olarak aynı malzemeyi kullanır, Sprite-Default, hepsi farklı görüntü / atlaslara sahip olsa da, böylece Unity'nin dinamik toplu işinin bir koşulunu otomatik olarak karşılar.
  2. Hepsi aynı Sprite-Default malzemesine sahip olsalar bile, her hareketli grafiğe farklı renk tonları (SpriteRenderer'ın denetçisi aracılığıyla) uygulayabilirsiniz. Bu, 'renk' özelliğinin malzemeye bağlanacağı Texture2D tabanlı yaklaşımda mümkün değildir. Bu aynı zamanda sprite rengin alfa değeriyle solması için de çok kullanışlıdır.
  3. Düzgün olmayan ölçekleme ile dinamik toplu işlemi destekler.
  4. Tekli mod / çoklu moda sahiptir, böylece her görüntüyü çoklu mod ile doku atlasınızdan ayrı bir hareketli grafik olarak alabilirsiniz.
  5. Gizmo aracını ölçeklemeden / döndürmeden değiştirmeden ölçeklendirmek veya döndürmek için sahne görünümünde hareketli grafiğin köşesini yakalayabilirsiniz.

4
6. Birlik, hareketli grafiğin saydam olmayan parçalarının hatlarına uyan geometriyi otomatik olarak oluşturur. Bu, dörtlü ile aynı hareketli grafiği oluşturmaya kıyasla aşırı çekmeyi azaltabilir ve / Unity'nin atlası içinde spritea'yı daha sıkı bir şekilde paketlemesine izin verebilir.
DMGregory
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.