यूनिटी के स्प्राइट और टेक्सचर 2 डी कक्षाओं के बीच अंतर क्या है?


19

एकता में एक Texture2Dवर्ग और एक Sprite(संबंधित SpriteRenderer) दोनों हैं। इन दोनों वर्गों में क्या अंतर है? दोनों एक छवि का प्रतिनिधित्व करते हैं, 2 डी गेम के लिए मुझे एक दूसरे पर एहसान करना चाहिए?

क्या दोनों के बीच मुख्य अंतर यह है कि Spriteमुझे "बिलबोर्ड" क्वाड बनाने की आवश्यकता नहीं है? और वह Spriteहमेशा कैमरे के खिलाफ सीधे गाया जाता है?

जवाबों:


16

आप सही हैं - कुछ हद तक। डिफ़ॉल्ट रूप से स्प्राइट्स को सीधे कैमरे के खिलाफ प्रस्तुत किया जाता है, हालांकि आप आसानी से इसे बदल सकते हैं यदि आप स्प्राइट रेंडरर का उपयोग किसी 3D दृश्य में कर रहे हैं।

स्प्राइट्स आपके दृश्य में भौतिक वस्तुएं हैं, जबकि Texture2D वास्तव में यही कहता है। एक बनावट। एक बनावट एक सामग्री से जुड़ी होनी चाहिए, और एक गेम ऑब्जेक्ट (जैसे एक विमान) के लिए सामग्री।

वापस यूनिटी 3.x दिनों में आपके पास बॉक्स के ठीक बाहर सपोर्ट नहीं था, इसलिए आपको अपना स्वयं का स्प्राइट मैनेजर / क्लास रोल करना था (या आपके पास एसेट स्टोर से संपत्ति खरीदने का विकल्प था जो इस झुंझलाहट को दूर करने का प्रयास करता है। )। एकता वास्तव में 2 डी गेम का समर्थन करने के लिए कभी नहीं थी (फिर भी डेवलपर्स ने ऐसा करने के तरीके पाए), 4.x तक, जब यूनिटी डेवलपर्स ने अंत में 2 डी गेम (स्प्राइट, स्प्राइट शीट, 2 डी भौतिकी) के लिए अंतर्निहित समर्थन प्रदान किया।

यदि आप 2 डी गेम कर रहे हैं, तो हमेशा स्प्राइट क्लास का उपयोग करने का प्रयास करें। यह अपने आप को रोल करने से बेहतर है, और पर्याप्त से अधिक प्रदान करता है।


AFAIK Spritesभी स्वचालित रूप से एकता द्वारा atlases में पैक किया जाएगा यदि आप चाहते हैं।
बंमज़ैक

यह केवल एकता प्रो,
ट्रिकी बुर्जर्स

4
मेरा मानना ​​है कि यह अब यूनिटी 5 के साथ मुफ्त है
क्रिस हॉक्स

@ChrisHawkes वास्तव में यह है - सिर्फ बयान की पुष्टि करने के लिए :) - स्प्राइट्स को atlases में पैक किया जा सकता है (और यह अभ्यास की सिफारिश की गई है) Window> Sprite Packer
AgentKnopf

6

स्प्राइट के बारे में मुझे ये कुछ फायदे हैं:

  1. सभी SpriteRenderer डिफ़ॉल्ट रूप से एक ही सामग्री का उपयोग करते हैं, Sprite-Default भले ही वे सभी अलग-अलग छवि / एटलस रखते हैं और इस प्रकार एकता की गतिशील बैचिंग की एक स्थिति को स्वचालित रूप से संतुष्ट करते हैं।
  2. आप प्रत्येक स्प्राइट के लिए अलग-अलग रंग टिंट (स्प्राइट रेंडर के इंस्पेक्टर के माध्यम से) लागू कर सकते हैं, भले ही उनके पास सभी समान स्प्राइट-डिफ़ॉल्ट सामग्री हो। यह Texture2D आधारित दृष्टिकोण में संभव नहीं है जो 'रंग' गुण सामग्री से बंधा होगा। यह रंग के अल्फा मूल्य के माध्यम से स्प्राइट को बाहर करने के लिए भी बहुत उपयोगी है।
  3. गैर-समान स्केलिंग के साथ गतिशील बैचिंग का समर्थन करता है।
  4. सिंगल मोड / मल्टीपल मोड है ताकि आप प्रत्येक छवि को अपनी बनावट एटलस से कई मोड के साथ अलग-अलग स्प्राइट के रूप में पकड़ सकें।
  5. आप दृश्य दृश्य में स्प्राइट के कोने को स्केल / रोटेट टूल से बदल सकते हैं।

4
6. एकता ऑटो-ज्यामिति स्प्राइट के गैर-पारदर्शी भागों के आकृति में फिट होती है। यह ओवरड्रॉ को कम कर सकता है, एक समान स्प्राइट को क्वाड के रूप में प्रस्तुत करने की तुलना में, और आपको / एकता को एक एटलस में अधिक कसकर पैक करने की अनुमति देता है।
DMGregory
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.