एकता के विकास में C # और यूनिटीस्क्रिप्ट कैसे भिन्न होते हैं? [बन्द है]


13

स्पष्ट भाषा अंतर के अलावा, UnityScript और C # कैसे Unity3D में गेम विकसित करते समय भिन्न होते हैं?

  • क्या ध्यान देने योग्य प्रदर्शन अंतर है?
  • क्या यूनिटीस्क्रिप्ट कोड को इस प्रकार पैक किया गया है? यदि हाँ, तो क्या यह खेल की सुवाह्यता में मदद करता है?
  • क्या एक भाषा के लिए विकसित पुस्तकालयों का उपयोग करना संभव है जबकि दूसरे में विकसित हो रहा है?
  • क्या दो भाषाओं को एक ही एकता परियोजना में मिलाया जा सकता है; C # में कुछ भाग और यूनिटीस्क्रिप्ट में अन्य कोडिंग?

गैर लेखन घटक बुद्धिमान है। लेकिन सी # डीएलएल आयात जैसे अतिरिक्त सामान की अनुमति देता है। इसके अलावा यह एक "विकल्प" है। और पूरी तरह से व्यक्तिपरक। मत भूलना, वहाँ भी बू है जिसमें आप अपना कोड लिख सकते हैं।
सिदार

2
वस्तुनिष्ठ उत्तर के साथ सहायक प्रश्न - अनुचित लगता है कि इसे बंद कर दिया गया था।
UpTheCreek

1
इस प्रश्न को बंद करने के दो मुख्य कारण हैं, और उन्हें प्रश्न की उपयोगिता या उत्तरों की निष्पक्षता से कोई लेना-देना नहीं है। सबसे पहले, पोस्ट एक से अधिक असंबंधित प्रश्न पूछता है। दूसरा, पूछे गए कुछ प्रश्न बहुत अधिक चर्चा उन्मुख और / या दो व्यापक हैं जैसा कि उपयुक्त है। प्रश्न "सहायक" या लोकप्रिय कैसे है, या उत्तर कितने अच्छे हैं, दोनों प्रश्न इस बात से स्वतंत्र हैं कि प्रश्न साइट के लिए उपयुक्त है या नहीं।

जवाबों:


12

क्या ध्यान देने योग्य प्रदर्शन अंतर है?

नहीं। तकनीकी रूप से बहुत छोटा प्रदर्शन अंतर है , लेकिन यह ज्यादातर मामलों में भाषा की अपनी पसंद को आधार बनाने के लिए पर्याप्त महत्वपूर्ण नहीं है।

क्या एक भाषा के लिए विकसित पुस्तकालयों का उपयोग करना संभव है जबकि दूसरे में विकसित हो रहा है?

हाँ। जब तक आप लाइब्रेरी के डेवलपर द्वारा अनुशंसित फ़ोल्डर संरचना को रखना सुनिश्चित करते हैं, तब तक लाइब्रेरी को किसी भी भाषा से एक्सेस किया जा सकता है। यह एकता संकलन क्रम के साथ करना है । आईडीई में कुछ विशेषताएं, जैसे स्वत: पूर्ण, हालांकि चुने हुए पुस्तकालय के लिए काम नहीं कर सकती हैं। (EDIT: यह विज़ुअल स्टूडियो के लिए निशुल्क प्लगइन UnityVS का उपयोग करके तय किया जा सकता है ।)

क्या जावास्क्रिप्ट में C # और कुछ भागों को कोड करके एक ही एकता परियोजना में दो भाषाओं को मिलाना संभव है?

फिर से, हाँ। यह जल्दी से जटिल हो जाता है, क्योंकि आपको यह सुनिश्चित करना होगा कि सब कुछ सही क्रम में संकलित हो। जबकि यह तकनीकी रूप से संभव है, मैं आपको एक भाषा चुनने और उसके साथ रहने की सलाह दूंगा।

किस भाषा में गेम के विशिष्ट संसाधन उपलब्ध हैं (किताबें, वेबसाइट, फोरम)?

बताना कठिन है। मंचों को ब्राउज़ करने से, मैं कहूंगा कि जावास्क्रिप्ट में कुछ अधिक ट्यूटोरियल और कोड उदाहरण हैं। आमतौर पर कोड को अन्य भाषा में पोर्ट करना बहुत आसान होता है, और चूंकि लाइब्रेरीज प्रयोग करने योग्य क्रॉस-लैंग्वेज होती हैं, इसलिए यह सबसे बड़ी समस्या नहीं होगी।


8

सभी शुरुआती सवाल यूनिटी डेवलपर्स के पास C # या JS है। हमेशा C # के साथ जाएं।

अब, अभी आप सोच रहे होंगे, "लेकिन मैं C # सीखना नहीं चाहता और मैं पहले से ही जावास्क्रिप्ट का एक छोटा सा पता है।"

लेकिन आपको जिस भ्रामक बात पर विचार करने की आवश्यकता है, वह यह है कि एकता जावास्क्रिप्ट जावास्क्रिप्ट नहीं है। यह .NET CLR पर ECMA सिंटैक्स का एक सतही लिबास है। यह कोई भी ऐसी ठंडी चीज़ नहीं करता है जिसे जावास्क्रिप्ट बेनामी बाड़ों की तरह करता है और जिस तरह से आप उन्हें सामान्य रूप से उपयोग करते हैं उसका संदर्भ देते हैं। इसकी अपनी स्वयं की सरणियाँ हैं जो सामान्य .net सरणियों के साथ मेल नहीं खाती हैं, और आपको कई नुकसान और सीमाएँ मिलेंगी जिन्हें आप C # के उपयोग से बचा सकते थे। एकता जावास्क्रिप्ट सिंटैक्स की केवल एक कैंडी-लेपित परत है। इसे बनाने के लिए डिज़ाइन किया गया है। यह आपको अच्छे से ज्यादा नुकसान पहुंचाएगा।


7

सबसे पहले, मैं दो मुख्य कारणों के लिए एकता में प्रोग्रामिंग के लिए जावास्क्रिप्ट पर C # की सिफारिश करूंगा। पहला कारण मजबूत / कमजोर टाइपिंग अंतर के लिए आता है जिसे आपने खारिज कर दिया था। मुझे लगता है कि मजबूत टाइपिंग वैचारिक स्तर पर कमजोर टाइपिंग से बेहतर काम करता है, लेकिन स्पष्ट रूप से यह एक बड़ा तर्क है जो लोगों के पास है और इसलिए मैं एक विशिष्ट व्यावहारिक मुद्दे पर अधिक ध्यान केंद्रित करूंगा: आईओएस पर तैनाती (और संभवतः अन्य प्लेटफॉर्म भी, लेकिन यह है कि केवल एक जिसे मैं निश्चित रूप से जानता हूं) को स्थिर टाइपिंग की आवश्यकता होती है। एकता के पास वास्तव में एक निर्देश "# सख्त" है जो इस कारण से जावास्क्रिप्ट में स्थैतिक टाइपिंग के लिए मजबूर कर सकता है, लेकिन यह मुझे मेरे दूसरे कारण में लाता है ...

दूसरी बात, एक ब्राउज़र में जावास्क्रिप्ट पूरी तरह से जावास्क्रिप्ट के समान नहीं है। यह समस्या तब पैदा होती है जब आप यूनिटी के बाहर प्रोग्रामिंग (यानी जावास्क्रिप्ट के बारे में अधिकांश संसाधन) से ज्ञान लागू करने का प्रयास करते हैं। यही कारण है कि कई यूनिटी डेवलपर्स भाषा को यूनिटीस्क्रिप्ट के रूप में संदर्भित करते हैं।


अब अपने विशिष्ट प्रश्नों को संबोधित करने के लिए:

क्या ध्यान देने योग्य प्रदर्शन अंतर है?

वास्तव में नहीं, नहीं ( कुछ विवरण )

क्या जावास्क्रिप्ट कोड के रूप में पैक किया गया है? और यदि हाँ, तो क्या यह खेल की विनयशीलता में मदद करता है?

प्लेटफ़ॉर्म पर निर्भर करता है, और नहीं यह वास्तव में मोडेबिलिटी में मदद नहीं करता है

क्या एक भाषा के लिए विकसित पुस्तकालयों का उपयोग करना संभव है जबकि दूसरे में विकसित हो रहा है?

मुझे ऐसा लगता है (हालाँकि मुझे ऐसा करने की कभी जरूरत नहीं पड़ी, क्योंकि मेरे द्वारा उपयोग किए जाने वाले सभी पुस्तकालयों को C # में प्रोग्राम किया गया था)

क्या जावास्क्रिप्ट में C # और कुछ भागों को कोड करके एक ही एकता परियोजना में दो भाषाओं को मिलाना संभव है?

हाँ (हालाँकि मैं इसे टालने की कोशिश करता हूँ, संगति कारणों से)


dentedpixel.com/developer-diary/… इसे अपने उत्तर में जोड़ना चाह सकते हैं। Upvoted।
ग्रे

दिलचस्प लिंके, जोड़ा गया
झॉकिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.