विज्ञापन
इंटरनेट अर्थव्यवस्था की एक आश्चर्यजनक विशेषता इंडी वीडियोगेम का उदय है। हजार-मैन, मल्टी-मिलियन डॉलर ट्रिपल-ए स्टूडियोज के अनन्य डोमेन के बाद, कई टूलसेट विकसित किए गए हैं आधुनिक गेम विकास संसाधनों को व्यक्तियों या छोटे, प्रोग्रामर और डिजाइनरों के तदर्थ संग्रह में लाएं। हमने पहले चर्चा की है सबसे अच्छा इंडी खेल 10 इंडी गेम्स इतने अच्छे हैं, आप बिल्कुल भी भूल जाएंगेहालांकि, ऐसे समय हो सकते हैं, जहां आप इंडी मानदंड से अलग कुछ चाहते हैं। एक गेम जो इंडी वैल्यूज़ को फॉलो करता है, फिर भी उस क्वालिटी के साथ बनाया जाता है जिसे टॉप-शेल्फ AAA गेम्स के लिए जाना जाता है। जैसे शीर्षक ... अधिक पढ़ें , इसलिए सुनिश्चित करें कि आप कुछ प्रेरणा के लिए उन लोगों की जांच करें जैसे कि एकता जैसे उपकरणों के साथ क्या हासिल किया जा सकता है।
ये इंडी गेम डेवलपमेंट टीमों ने एक चपलता और जोखिम-सहिष्णुता का प्रदर्शन किया है, जो कई मामलों में, गेमप्ले इनोवेशन को अपने बड़े बजट समकक्षों की तुलना में तेजी से आगे बढ़ाने की अनुमति देता है। हाल के वर्षों में कई चौंकाने वाले इंडी टाइटल का प्रीमियर हुआ है, जिसमें शामिल हैं
Minecraft, लीम्बो, तथा सुपर मांस लड़के, और यहां तक कि अगर आप इस तरह के खेल बनाने के लिए कौशल नहीं है, तो आप कर सकते हैं Buildbox का उपयोग करके एक गेम बनाएं बिल्डबॉक्स का उपयोग करके एक सप्ताह में वीडियो गेम कैसे बनाएंएक ऐसा कार्यक्रम है जो वीडियो गेम को डिजाइन करने में पूरी तरह से अनुभव के बिना भी खेल के विकास को अविश्वसनीय रूप से आसान बनाता है। इसे बिल्डबॉक्स कहा जाता है। यहां आपको इसकी कोशिश क्यों करनी चाहिए। अधिक पढ़ें .इंडी खेल के विकास के तेजी से बढ़ते परिदृश्य में, एकता कुछ वास्तविक मानक के रूप में उभरा है: इसकी कम लागत, उपयोग में आसानी, और व्यापक सुविधा सेट इसे तेजी से खेल के विकास के लिए आदर्श बनाते हैं। एकता इतनी लचीली है, कि आप भी कर सकते हैं अपने खुद के कस्टम गेम कंट्रोलर बनाएं कैसे Arduino और एकता के साथ एक कस्टम गेम नियंत्रक बनाने के लिएक्या आपने कभी अपना गेम कंट्रोलर डिजाइन करना चाहा है? यह आपके विचार से आसान है! अधिक पढ़ें DIY के एक बिट के साथ पता है कि कैसे!
यहां तक कि बड़े स्टूडियो जैसे सीसीपी (डेवलपर्स के) ईव ऑनलाइन) तेजी से प्रोटोटाइप गेम अवधारणाओं के लिए इसका उपयोग करें। एकता एक बॉक्स में "गेम इंजन" प्रदान करती है - एक भौतिक विज्ञान और प्रतिपादन इंजन जिसमें कई स्क्रिप्टिंग भाषाओं के लिए हुक, वस्तुतः किसी भी शैली के वीडियोगेम के अनुकूल है।
जबकि एकता खेल के माहौल में हेरफेर करने के लिए एक दृश्य संपादक प्रदान करती है, एकता एक 'शून्य प्रोग्रामिंग' गेम निर्माता उपकरण नहीं है। आपको परिणामों का उत्पादन करने के लिए कार्यक्रम करने की आवश्यकता होती है, लेकिन आपको संभवतः किसी भी maker गेम मेकर ’कार्यक्रम की तुलना में अधिक लचीला और शक्तिशाली उपकरण प्रदान करता है।
एकता ने आपके लिए काम नहीं किया है, लेकिन यह प्रवेश में बाधा को काफी हद तक कम करता है। सी ++ और ओपनजीएल के साथ खरोंच से पूरी तरह से शुरू होने में, उस बिंदु पर पहुंचने में दिन लग सकते हैं जहां वास्तव में ऑनस्क्रीन कुछ प्रस्तुत किया गया है। एकता का उपयोग करते हुए, लगभग दस सेकंड लगते हैं। एकता खेल निर्माण के मूल तत्वों को नौसिखिया प्रोग्रामर के हाथों में एक तेज, सहज तरीके से डालती है।
आज मैं आपको उन सभी चीजों के माध्यम से मार्गदर्शन कर रहा हूं, जिन्हें आपको एकता में एक खेल बनाने के लिए जानने की जरूरत है, जो कि दस मुख्य विभागों में टूट गया है:
§1-एकता के संस्करण
§2-एकता स्थापित करना
§3-ऑब्जेक्ट ओरिएंटेड प्रतिमान का एक संक्षिप्त परिचय
§4-एकता मूल बातें
§5-उदाहरण: गेम के मूल तत्व
§6-एकता में पटकथा
§7-उदाहरण: स्क्रिप्टिंग पोंग
§8-डॉक्यूमेंटेशन / लर्निंग मोरिंग
/9-अपने खेल का निर्माण / एक स्टैंडअलोन अनुप्रयोग के लिए संकलन
§10-समापन नोट्स
1. एकता के संस्करण
एकता दो मूल स्वादों में आती है: प्रो संस्करण और मुफ्त संस्करण। वहां एक मतभेदों की संख्या, लेकिन, मोटे तौर पर, प्रो संस्करण कई दृश्य सुधारों का समर्थन करता है (जैसे वास्तविक समय नरम छाया और पोस्ट-प्रोसेसिंग), और बड़ी संख्या में अपेक्षाकृत छोटी विशेषताएं हैं जो अधिक जटिल के लिए बेहद सहायक हैं खेल।
उस ने कहा, अधिकांश अपेक्षाकृत सरल खेलों के लिए आप निर्माण करना चाहते हैं, एकता का मुफ्त संस्करण पूरी तरह से पर्याप्त है। हम रुचि रखने वालों के लिए नीचे दिए गए मुख्य अंतरों को अधिक विस्तार से तोड़ेंगे।
1.1 मूल्य निर्धारण
नि: शुल्क, एकता का मुफ्त संस्करण है। हालाँकि, कुछ सीमाएँ हैं: एकता के मुक्त संस्करण को किसी भी कंपनी से अधिक की वार्षिक आय के साथ लाइसेंस प्राप्त नहीं किया जा सकता है $100,000. हालांकि इस तरह के संगठन इस गाइड के दायरे से परे हैं, अगर आपको संदेह है कि आप इस तरह के संगठन बन सकते हैं, तो प्रो संस्करण के लिए वसंत के लिए संभवतः बुद्धिमान है।
एकता का प्रो संस्करण है $75 एक महीना, या $1500 एक स्थायी लाइसेंस के लिए, और इसके साथ बनाए गए गेम्स के साथ आप क्या कर सकते हैं, इसकी कोई सीमा नहीं है। 30-दिन का निःशुल्क परीक्षण भी उपलब्ध है, जिसका उपयोग हम इस गाइड के लिए कर रहे हैं, ताकि आप उपलब्ध सुविधाओं का पूरा अवलोकन कर सकें। एक वर्ष के छात्र लाइसेंस के माध्यम से भी उपलब्ध है Studica के लिये $129.
1.2 सुविधाएँ
यूनिटी के मुफ्त संस्करण में कई विशेषताएं अनुपस्थित हैं। हालांकि, सबसे महत्वपूर्ण अंतर इस प्रकार हैं: एकता के मुफ्त संस्करण में कई प्रतिपादन विकल्पों का अभाव है जो इसके लिए अनुमति देते हैं बेहतर दिखने वाला, तेज़ चलने वाला गेम (LOD सपोर्ट, स्क्रीन-स्पेस पोस्ट-प्रोसेसिंग, एडवांस शेड्स, रियल-टाइम सॉफ्ट शैडोज़, और आस्थगित चित्रण)। इसका भी पूरा अभाव है यांत्रिकी एनीमेशन प्रणाली, और कुछ एआई उपकरण।
सामान्य तौर पर, जटिल, बड़े पैमाने पर परियोजनाओं, या परियोजनाओं के लिए जहां ग्राफिकल प्रदर्शन महत्वपूर्ण है, प्रो संस्करण सार्थक है। मैं प्रो संस्करण का उपयोग करता हूं, क्योंकि मैं इसके लिए वर्चुअल रियलिटी गेम विकसित करता हूं अकूलस दरार ओकुलस रिफ्ट रिव्यूवर्चुअल रियलिटी कोई नई बात नहीं है, लेकिन यह आखिरकार सस्ती है और हमारी समझ में है। चार साल और दो विकास प्रोटोटाइप के बाद, ओकुलस रिफ्ट का अंतिम उपभोक्ता संस्करण आ गया है। अधिक पढ़ें , और स्क्रीन-स्पेस पोस्ट-प्रोसेसिंग समर्थन हेडसेट के साथ सही ढंग से बातचीत करने के लिए आवश्यक है।
2. एकता स्थापित करना
एकता स्थापित करने के लिए सीधा है। आप से निष्पादन योग्य डाउनलोड कर सकते हैं unity3d.com/get-unity/download.
एक बार डाउनलोड करने के बाद, इसे चलाएं और फिर इंस्टॉलर निर्देशों का पालन करें। जब इंस्टॉलेशन समाप्त हो जाता है, तो एक विंडो जिसका शीर्षक Un ऐक्टिवेट योर यूनिटी लाइसेंस है ’दिखाई देगा। चिह्नित बॉक्स की जाँच करें ’यूनिटी प्रो के नि: शुल्क 30-दिवसीय परीक्षण को सक्रिय करें’ और फिर marked ठीक है ’।
बधाई हो! अब आपके पास यूनिटी प्रो का 30-दिवसीय परीक्षण है। जब परीक्षण समाप्त हो जाता है, यदि आप प्रो संस्करण नहीं खरीदना चाहते हैं, तो आप मुफ्त संस्करण पर जा सकते हैं और अपनी मौजूदा सामग्री रख सकते हैं।
3. वस्तु-उन्मुख प्रतिमान का एक संक्षिप्त परिचय
यूनिटी के साथ शुरुआत करने से पहले, यह महत्वपूर्ण है कि हम मूल बातें थोड़ी आगे बढ़ें। एकता दोनों का समर्थन करती है सी# तथा जावास्क्रिप्ट के लिये खेल प्रोग्रामिंग 7 एकता खेल विकास भाषाएँ सीखने के लिए: कौन सा सबसे अच्छा है?एकता में खेल विकास शुरू करना चाहते हैं? आपको इनमें से एक-संगत भाषाओं के साथ परिचित होने की आवश्यकता होगी। अधिक पढ़ें ; हम इस ट्यूटोरियल के लिए C # के साथ काम करेंगे।
सबसे पहले, यदि आपने पहले कभी प्रोग्राम नहीं किया है, तो इस ट्यूटोरियल को एक तरफ रख दें और कुछ दिन Microsoft के माध्यम से काम करें सी # भाषा प्राइमर जब तक आप सरल कार्यों के लिए भाषा का उपयोग करने में सहज महसूस करते हैं।
यदि आप C # के लिए कुछ अलग पसंद करते हैं (लेकिन जरूरी नहीं कि आप जिस भाषा का एकता में उपयोग कर सकते हैं), तो हमारे गाइड पर एक नज़र डालें शुरुआती लोगों के लिए छह सबसे आसान प्रोग्रामिंग भाषाएं शुरुआती के लिए सीखने के लिए 6 सबसे आसान प्रोग्रामिंग भाषाएँकार्यक्रम के बारे में सीखना सही भाषा खोजने के बारे में है जितना कि यह संपादन प्रक्रिया के बारे में है। यहां शुरुआती लोगों के लिए शीर्ष छह सबसे आसान प्रोग्रामिंग भाषाएं हैं। अधिक पढ़ें .
यदि आपने सी या जावा जैसी अनिवार्य या ऑब्जेक्ट ओरिएंटेड भाषा से पहले प्रोग्राम किया है, तो प्राइमर को स्किम करें और अपने आप को परिचित करें कि आपके द्वारा पूर्व में उपयोग की गई अन्य भाषाओं से सी # कैसे अलग है। किसी भी तरह से, ट्यूटोरियल के साथ आगे न बढ़ें, जब तक कि आप सी # के साथ सरल समस्याओं को हल करने में सहज महसूस न करें (उदाहरण के लिए, अगर मुझसे पूछा जाए तो आप एक प्रोग्राम लिखते हैं जो पहले सौ अभाज्य संख्याओं को प्रिंट करता है, आपको सलाह के बिना उस कार्यक्रम को लिखने में सक्षम होना चाहिए गूगल)।
यहाँ समझने के लिए सबसे महत्वपूर्ण अवधारणा है वस्तु-उन्मुख प्रतिमान "ऑब्जेक्ट ओरिएंटेड" प्रोग्रामिंग कहां से अपना नाम प्राप्त करें?ऑब्जेक्ट ओरिएंटेड आप प्रोग्रामिंग हलकों में सुनाई देने वाला एक यादृच्छिक शब्द नहीं है। नाम के पीछे एक कारण है - लेकिन क्या? प्रोग्रामिंग अवधारणाओं के मूल सिद्धांतों में से कुछ का पता लगाने और मुझे समझाने के लिए मेरे साथ जुड़ें ... अधिक पढ़ें (संक्षिप्त रूप में OOP). वस्तु उन्मुख भाषाओं में, कार्यक्रमों को कार्यात्मक इकाइयों में विभाजित किया जाता है जिन्हें कहा जाता है वस्तुओं. प्रत्येक वस्तु के अपने निजी चर और कार्य होते हैं। ऑब्जेक्ट-विशिष्ट कार्यों को कहा जाता है तरीकों.
यहां विचार प्रतिरूपकता है: प्रत्येक वस्तु को अलग-थलग करके, और अन्य वस्तुओं को इसके साथ बातचीत करने के लिए मजबूर करना इसके तरीकों के माध्यम से, आप संभावित अनजाने में बातचीत की संख्या को कम कर सकते हैं - और, विस्तार से, कीड़े। आप उन वस्तुओं को भी बना सकते हैं जिनका आप बाद में बिना किसी संशोधन के पुन: उपयोग कर सकते हैं। एकता में, आप इन वस्तुओं का निर्माण करेंगे और उन्हें संलग्न करेंगे खेल संस्थाओं (जिनका व्यवहार वे शासन करेंगे)
वस्तुओं से तात्कालिक हैं कक्षाएं: एक क्लास सिर्फ एक फाइल है जो आपकी ऑब्जेक्ट की परिभाषा को बताती है। इसलिए, यदि आप ए Mook आपके गेम में दुश्मन के लिए AI को संभालने वाली वस्तु, आप ‘Mook’ क्लास नहीं लिखते हैं, और फिर उस फाइल को हर दुश्मन इकाई के साथ जोड़ देते हैं। जब आप अपना गेम चलाते हैं, तो प्रत्येक शत्रु ‘Mook’ ऑब्जेक्ट की एक प्रति से लैस होगा।
किसी वस्तु को एक नई स्क्रिप्ट संलग्न करना इस तरह दिखता है:
प्रथम, वस्तु का चयन करें और के पास जाओ निरीक्षक. पर क्लिक करें घटक जोड़ें बटन।
के लिए जाओ नई स्क्रिप्ट, वह नाम दर्ज करें जिसे आप चाहते हैं, और क्लिक करें बनाएँ और जोड़ें.
अब आपके पास एक नई स्क्रिप्ट है जिसे आप उस पर डबल-क्लिक करके संपादित कर सकते हैं!
एक क्लास फाइल कुछ इस तरह दिखती है:
यूनिटीजाइन का उपयोग करना; सार्वजनिक वर्ग Mook: MonoBehaviour {निजी फ्लोट स्वास्थ्य; शून्य प्रारंभ () {स्वास्थ्य = 100; } शून्य अद्यतन () {अगर (स्वास्थ्य> 0) {/ * खिलाड़ी के लिए खोजें यदि आप सड़क पर खिलाड़ी से मुठभेड़ करते हैं, तो उसे मारें यदि आप गोली मारते हैं, तो यादृच्छिक स्वास्थ्य को हटा दें * /}} }
इसे तोड़ दो:
- UnityEngine का उपयोग करना: यह पंक्ति C # को बताती है कि हम यूनिटी के पुस्तकालयों का उपयोग करना चाहते हैं, जो हमें एकता गेम इंजन से कनेक्ट करने की अनुमति देता है।
- सार्वजनिक वर्ग Mook: MonoBeviourour:यह पंक्ति कक्षा और उसके नाम की घोषणा करती है - Mook.
- निजी फ्लोट स्वास्थ्य: यह एक निजी वर्ग चर घोषित करता है (जिसे केवल कक्षा के अंदर से ही बदला जा सकता है)। चर में एक मान दिया जाता है शुरू.
- शून्य प्रारंभ (): यह एक विधि घोषित करता है शुरू. स्टार्ट एक विशेष विधि है जो केवल एक बार चलती है, जब खेल शुरू में लॉन्च होता है।
- शून्य अद्यतन (): अपडेट एक अन्य विशेष विधि है, जो हर फ्रेम पर चलती है। आपके अधिकांश खेल तर्क यहां जाएंगे।
- // यदि आप सड़क पर खिलाड़ी से मुठभेड़ करते हैं, तो उसे मार दें: यह लाइन एक टिप्पणी है (कोई भी लाइन जो डबल स्लैश से शुरू होती है, सी # द्वारा अनदेखा की जाती है)। टिप्पणियों का उपयोग खुद को यह याद दिलाने के लिए किया जाता है कि कोड के विशेष बिट्स क्या हैं। इस मामले में, इस टिप्पणी का उपयोग कोड के अधिक जटिल ब्लॉक के लिए खड़ा किया जा रहा है जो वास्तव में टिप्पणी का वर्णन करता है।
साथ में शुरू तथा अपडेट करें, आप लगभग किसी भी नाम के साथ अपने स्वयं के तरीकों को तुरंत कर सकते हैं। हालाँकि, आपके द्वारा बनाए गए तरीके तब तक नहीं चलते हैं जब तक कि उन्हें कॉल न किया जाए। चलो एक काल्पनिक वर्ग के लिए एक विधि घोषित करें addTwoNumbers जो दो संख्याओं को एक साथ जोड़ता है:
सार्वजनिक फ्लोट addTwoNumbers (फ्लोट ए, फ्लोट बी) {रिटर्न ए + बी; }
यह एक सार्वजनिक (अन्य वस्तुओं के लिए सुलभ) विधि की घोषणा करता है जो फ्लोट नामक एक रिटर्न देता है addTwoNumbers, जो इनपुट (कहा जाता है) के रूप में दो फ़्लोट लेता है ए तथा ख). इसके बाद इसके आउटपुट के रूप में दो मानों का योग होता है।
इस विधि को उसी कक्षा के भीतर से (कहते हैं, अंदर से) अपडेट करें) इस तरह दिखता है:
फ्लोट परिणाम = addTwoNumbers (1, 2);
किसी अन्य वर्ग से विधि को कॉल करना समान है:
addTwoNumbers उदाहरण; फ्लोट परिणाम = उदाहरण .addTwoNumbers (1, 2);
फिर, यह सिर्फ हमारी कक्षा का एक उदाहरण बनाता है, उपयुक्त विधि तक पहुँचता है और इसे वह संख्याएँ प्रदान करता है जिन्हें हम जोड़ना चाहते हैं, फिर परिणाम को स्टोर करता है परिणाम. सरल।
यदि आपकी स्क्रिप्ट एक ऐसी वस्तु से जुड़ी होती है जिसमें विशेष गुण होते हैं (जैसे कण उत्सर्जक) जिसे एक्सेस नहीं किया जा सकता है GameObject मापदंडों के सामान्य सेट के तहत, आप इसका उपयोग करके एक अलग प्रकार की गेम इकाई के रूप में मान सकते हैं GetComponent तरीका।
इसके लिए सिंटैक्स इस तरह दिखता है:
GetComponent()।खेल();
यदि इनमें से कोई भी आपके लिए अपरिचित है, तो वापस जाएं और C # प्राइमर से गुजरें। जैसे ही हम आगे बढ़ेंगे, यह आपको बहुत हताशा से बचाएगा।
4. एकता मूल बातें
इस खंड में, हम एकता इंजन के बुनियादी यांत्रिकी के माध्यम से अपना काम करने जा रहे हैं। एकता में वर्कफ़्लो कुछ इस तरह से होता है:
- खेल में एक भूमिका परोसने के लिए एक इकाई बनाएँ (रिक्त) GameObjects अमूर्त तार्किक कार्यों के लिए इस्तेमाल किया जा सकता है)।
- एक वर्ग फ़ाइल लिखें या ढूंढें, और इसे स्क्रिप्ट के रूप में इकाई में जोड़ें (का उपयोग करके) घटक जोड़ें में बटन निरीक्षक राय।
- Daud > परीक्षा > डिबग > दोहराना जब तक यह काम करता है और खेल के अगले तत्व पर आगे बढ़ता है।
एकता कई मूल दृश्य टैब के साथ आती है जिसे उपयोगकर्ता के स्वाद के लिए विभिन्न तरीकों से रखा जा सकता है। बड़े पाँच हैं:
- खेल: उस गेम का रनिंग इंस्टेंस दिखाता है जिसे आप इंटर कर सकते हैं और टेस्ट कर सकते हैं।
- दृश्य: का एक स्थिर, संपादन योग्य संस्करण प्रदान करता है गेम की दुनिया.
- निरीक्षक: आपको खेल की दुनिया में व्यक्तिगत संस्थाओं को संशोधित करके उन्हें चुनने की अनुमति देता है संपादक टैब।
- परियोजना: आपको प्रोजेक्ट की फ़ाइलों के माध्यम से ब्राउज़ करने और मॉडल, सामग्री और अन्य संसाधनों को अंदर खींचने की अनुमति देता है संपादक टैब उन्हें खेल की दुनिया में रखने के लिए।
- पदानुक्रम: यह टैब दुनिया की सभी वस्तुओं को दिखाता है, जिससे आप दृश्य में दूर की वस्तुओं को खोज सकते हैं, और क्लिक करके और खींचकर एक-दूसरे को अभिभावक बनाते हैं।
इन सभी चीजों के स्थानों के लिए नीचे दिया गया चित्र देखें:
4.1 एकता संस्थाएँ
4.1.1 मेष
मेष ही रास्ता है 3 डी ज्यामिति एकता में प्रतिनिधित्व किया है। आप या तो यूनिटी के बिल्ट-इन का उपयोग कर सकते हैं प्राचीन ऑब्जेक्ट्स (क्यूब्स, गोले, सिलेंडर आदि), या जैसे मॉडलिंग पैकेज से अपने स्वयं के 3 डी मॉडल आयात करते हैं ब्लेंडर ब्लेंडर के साथ शुरुआत करना: Newbies के लिए 7 शानदार ट्यूटोरियल3 डी मॉडलिंग अपने तकनीकी पक्ष के साथ संपर्क में रहते हुए रचनात्मकता का अभ्यास करने का एक शानदार तरीका है। यहाँ कुछ भयानक मुक्त ट्यूटोरियल हैं। अधिक पढ़ें या माया लर्निंग माया 2016: कहां से शुरू करेंमाया एक उपकरण है जिसका उपयोग 3 डी एनीमेशन के लिए किया जाता है, लेकिन यह अविश्वसनीय रूप से खड़ी सीखने की अवस्था के साथ आता है। क्या अच्छी शिक्षण सामग्री है? अधिक पढ़ें . एकता 3 डी स्वरूपों की एक किस्म का समर्थन करती है, जिसमें शामिल हैं .fbx, तथा .3ds.
इंटरफ़ेस में ऊपरी बाएँ कोने में जालीदार हेरिंग, रोटेशन और अनुवाद बटन के लिए बुनियादी उपकरण हैं। ये बटन संपादक दृश्य में मॉडल में नियंत्रण चिह्न जोड़ते हैं, जो तब उन्हें अंतरिक्ष में हेरफेर करने के लिए इस्तेमाल किया जा सकता है। किसी ऑब्जेक्ट की बनावट या भौतिकी गुणों को बदलने के लिए, उन्हें चुनें और उपयोग करें निरीक्षक विश्लेषण करने के लिए देखें सामग्री तथा कठोर शरीर तत्वों।
4.1.2 GUI तत्व
पारंपरिक जीयूआई स्प्राइट और पाठ का उपयोग करके प्रदर्शित किया जा सकता है जीयूआई पाठ और यह जीयूआई बनावट संपादक में GameObjects। हालांकि, यूआई तत्वों को संभालने के लिए एक अधिक मजबूत और यथार्थवादी तरीका उपयोग करना है 3 डी पाठ तथा ट्रैक्टर गेम ऑबजेक्ट (पारदर्शी टेक्सचर और अनलिमिटेड पारदर्शी शेडर के साथ) खेल जगत में संस्थाओं के रूप में HUD तत्वों को रखने के लिए।
में अनुक्रम देखें, इन गेमप्ले तत्वों को बच्चों को बनाने के लिए मुख्य कैमरे पर खींचा जा सकता है, यह सुनिश्चित करते हुए कि वे कैमरे के साथ चलते हैं और घूमते हैं।
जीयूआई तत्व (पाठ और बनावट) इंस्पेक्टर टैब में संबंधित क्षेत्रों का उपयोग करके उनके आकार और पैमाने को समायोजित कर सकते हैं।
4.1.3 सामग्री
सामग्री बनावट और के संयोजन हैं shaders पाँच महत्वपूर्ण पीसी गेमिंग शर्तें समझायायदि आप कंसोल पर कोई गेम खेलते हैं, तो तकनीकी विवरण आपके लिए हैं। कुछ खिलाड़ी इसे पसंद करते हैं, लेकिन पीसी गेमर्स अक्सर नियंत्रण का अधिक आनंद लेते हैं, जो एक गेम की आंख पर होता है ... अधिक पढ़ें , और प्रोजेक्ट टैब से गेम ऑब्जेक्ट्स पर सीधे घसीटा जा सकता है। बड़ी संख्या में शेड्स यूनिटी प्रो के साथ आते हैं, और आप किसी ऑब्जेक्ट के लिए इंस्पेक्टर टैब का उपयोग करके उनसे जुड़ी बनावट को समायोजित कर सकते हैं, जिस पर वे लागू नहीं होते हैं।
बनावट आयात करने के लिए, इसे रूपांतरित करें .jpg, .png, या .bmp, और इसे में खींचें संपत्ति एकता परियोजना निर्देशिका के तहत फ़ोल्डर (जो में प्रकट होता है मेरे दस्तावेज डिफ़ॉल्ट रूप से)। कुछ सेकंड के बाद, संपादक में एक लोडिंग बार दिखाई देगा। जब यह पूरा हो जाता है, तो आप छवि को बनावट के तहत ढूंढने में सक्षम होंगे परियोजना टैब।
4.1.5 लाइट्स
लाइटें हैं GameObjects दुनिया पर कौन सा प्रोजेक्ट चमकता है। यदि आपके दृश्य में कोई रोशनी नहीं है, तो सभी बहुभुज समान चमक स्तर पर खींचे जाते हैं, जिससे दुनिया को एक सपाट, धोया हुआ लुक मिलता है।
लाइट्स को तैनात किया जा सकता है, घुमाया जा सकता है, और कई आंतरिक विशेषताएं हैं जिन्हें आप अनुकूलित कर सकते हैं। तीव्रता स्लाइडर प्रकाश की चमक को नियंत्रित करता है, और रेंज नियंत्रित करता है कि यह कितनी जल्दी मिटता है।
में दिशानिर्देश दृश्य देखें आपको रोशनी की अधिकतम सीमा दिखाते हैं। वांछित प्रभाव प्राप्त करने के लिए दोनों सेटिंग्स के साथ खेलें। आप प्रकाश के रंग को भी समायोजित कर सकते हैं, पैटर्न (कुकी सतह पर प्रदर्शित प्रकाश को इंगित किया जाता है, और प्रकाश को सीधे देखने पर किस तरह की चमक ऑनस्क्रीन दिखाई देती है। कुकी का उपयोग अधिक यथार्थवादी प्रकाश पैटर्न को नकली करने, नाटकीय झूठी छाया बनाने और प्रोजेक्टर को अनुकरण करने के लिए किया जा सकता है।
प्रकाश के तीन मुख्य प्रकार हैं स्थान, बिंदु, तथा दिशात्मक.
स्पॉट लाइट्स 3 डी अंतरिक्ष में एक स्थान है और चर कोण के शंकु में केवल एक दिशा में परियोजना प्रकाश। ये फ़्लैशलाइट्स, सर्चलाइट्स के लिए अच्छे हैं, और सामान्य तौर पर, आपको प्रकाश व्यवस्था का अधिक सटीक नियंत्रण देते हैं। स्पॉट लाइट छाया डाल सकते हैं।
बिंदु रोशनी 3 डी अंतरिक्ष में एक स्थान है, और सभी दिशाओं में समान रूप से प्रकाश डाला। बिंदु रोशनी छाया नहीं डालती है।
दिशात्मक रोशनी, अंत में, सूर्य के प्रकाश का अनुकरण करने के लिए उपयोग किया जाता है: वे प्रकाश को एक दिशा में प्रोजेक्ट करते हैं, हालांकि असीम रूप से दूर से। दिशात्मक रोशनी दृश्य में प्रत्येक वस्तु को प्रभावित करती है, और छाया उत्पन्न कर सकती है।
4.1.6 कण प्रणाली
ए अणु प्रणाली एक है GameObject जो सैकड़ों या हजारों कणों को एक साथ उत्पन्न और नियंत्रित करता है। कण छोटे, अनुकूलित 2 डी ऑब्जेक्ट हैं जो 3 डी अंतरिक्ष में प्रदर्शित होते हैं। पार्टिकल सिस्टम सरलीकृत प्रतिपादन और भौतिकी का उपयोग करते हैं, लेकिन हकलाना के बिना वास्तविक समय में हजारों संस्थाओं को प्रदर्शित कर सकते हैं, जिससे वे धुएं, आग, बारिश, चिंगारी, जादू के प्रभाव और अधिक के लिए आदर्श बन सकते हैं।
बहुत सारे पैरामीटर हैं जो आप इन प्रभावों को प्राप्त करने के लिए ट्वीक कर सकते हैं, और आप इनके नीचे एक कण सिस्टम को स्पॉइंग करके एक्सेस कर सकते हैं घटक संपादक > कण प्रणाली का चयन > इंस्पेक्टर टैब खोलना. आप प्रत्येक कण के आकार, गति, दिशा, रोटेशन, रंग और बनावट को बदल सकते हैं, और समय के साथ-साथ बदलने के लिए उन अधिकांश मापदंडों को सेट कर सकते हैं।
के नीचे टक्कर विशेषता, यदि आप इसे सक्षम करते हैं और सिमुलेशन स्थान को सेट करते हैं विश्व आपको ऐसे कण मिलेंगे जो दुनिया की वस्तुओं से टकराएंगे, जिसका उपयोग कई यथार्थवादी कणों के प्रभाव के लिए किया जा सकता है, जिसमें बारिश, पानी बहना और चिंगारी शामिल हैं।
5. उदाहरण: एक खेल के मूल तत्व
इस ट्यूटोरियल के लिए, हम एक सरल गेम बनाने जा रहे हैं पोंग - ऐसा कुछ जिसे हमने पहले कई बार DIY में कवर किया है:
- अरुडिनो क्लासिक पोंग कैसे Arduino का उपयोग कर क्लासिक पोंग खेल को फिर से बनाने के लिएपोंग पहले कभी वीडियोगेम था जो मास मार्केट तक पहुंचा था। इतिहास में पहली बार, एक "वीडियो गेम" की अवधारणा को अटारी 2600 -... के लिए परिवार के घर में लाया गया था। अधिक पढ़ें
- Arduino OLED Pong Arduino रेट्रो गेमिंग एक OLED डिस्प्ले के साथकभी आपने सोचा है कि अपने रेट्रो गेम को लिखने में कितना काम लगता है? अरंगिनो के लिए कोड पोंग कितना आसान है? अधिक पढ़ें
इस भाग में, हम मूल तत्वों की व्यवस्था करेंगे - स्क्रिप्टिंग ट्यूटोरियल बाद में आएगा।
सबसे पहले, पोंग के खेल को उसके मूल घटकों में तोड़ दें। सबसे पहले, हमें दो पैडल और एक गेंद चाहिए। गेंद ऑफस्क्रीन उड़ती है, इसलिए हम इसे रीसेट करने के लिए एक तंत्र चाहते हैं। हम यह भी चाहते हैं कि पाठ वर्तमान अंक प्रदर्शित करे, और, आप एकता के सभी मुख्य तत्वों को दिखाने के लिए, जब आप गेंद को मारते हैं तो हम एक फैंसी कण प्रभाव चाहते हैं। पूरे खेल को नाटकीय रूप से प्रज्ज्वलित करने की आवश्यकता होगी।
कि एक में टूट जाता है गेंद वस्तु (एक क्षेत्र), ए spawner, दो पैडल प्रॉप्स के साथ कण उत्सर्जक संलग्न एक 3 डी-पाठ इकाई, और ए स्पॉट लाइट. इस ट्यूटोरियल के लिए, हम डिफ़ॉल्ट भौतिक सामग्री का उपयोग करेंगे उछाल, साथ में उछाल गठबंधन करने के लिए सेट गुणा. यहां दस स्क्रीनशॉट में सेटअप कैसा दिखता है:
सबसे पहले, एक बनाएँ क्यूब प्रोप चप्पू के लिए।
इसे उचित रूप से बढ़ाएं, इसकी नकल करो, और डाल दिया क्षेत्र गेंद के लिए पैडल के बीच।
फिर, एक बनाएँ 3DText ऑब्जेक्ट तथा स्केल तथा स्थान यह सही ढंग से, बदल रहा है फ़ॉन्ट आकार कम पिक्सेल वाली छवि प्राप्त करने की विशेषता।
इसके बाद, दो बनाएं कण प्रणाली, अपनी इच्छित विशेषताओं को चुनें, और उन्हें पैडल में संलग्न करें।
इसके बाद, आप चाहते हैं स्थिति और कैमरा घुमाएँ ताकि यह दृश्य को सही ढंग से फ्रेम करे। जबकि कैमरा चुना गया है, आप निचले दाएं कोने में कैमरे के दृश्य का एक छोटा पूर्वावलोकन देख सकते हैं।
इससे पहले कि हम समाप्त करें, हमें गेंद को खेल क्षेत्र से बाहर उछालने से रोकने के लिए, बम्पर होने के लिए दो अतिरिक्त क्यूब्स बनाने की आवश्यकता है। हम उन्हें अनचेक करके अदृश्य बना सकते हैं जाल प्रस्तुत करनेवाला में निरीक्षक टैब.
यदि आप खेलते हैं, तो आप अब हमारे खेल के मूल तत्वों को देख सकते हैं। उन्होंने अभी तक कुछ भी नहीं किया है, लेकिन हम उस पर उतरेंगे!
अब जब हमें वह सेटअप मिल गया है, तो हम इन तत्वों को गेम बनाने के लिए इन तत्वों को शामिल करने के बारे में बात करने जा रहे हैं।
6. एकता में पटकथा
एक बार जब आपके पास एक वस्तु से जुड़ी स्क्रिप्ट होती है, तो आप उस पर डबल क्लिक करके इसे संशोधित कर सकते हैं निरीक्षक. यह खुलता है monodevelop, एकता के लिए डिफ़ॉल्ट विकास वातावरण। संक्षेप में, मोनोडेवलप एक पाठ संपादक है जिसमें विशेष रूप से प्रोग्रामिंग की ओर अनुकूलित विशेषताएं हैं।
कीवर्ड और टिप्पणियों पर प्रकाश डाला गया है नीला तथा हरा, और संख्यात्मक मान और तार दिखाई देते हैं लाल. यदि आपने उपयोग किया है ग्रहण या अन्य IDE का, मोनो-डिवर्ड बहुत समान है। आप ऐसा कर सकते हैं निर्माण सिंटैक्स त्रुटियों के लिए जाँच करने के लिए संपादक के अंदर से आपकी स्क्रिप्ट, जैसे:
सामान्य तौर पर, एकता के साथ बातचीत करने के लिए अपनी स्क्रिप्ट प्राप्त करने के लिए, आपको उन तत्वों का संदर्भ देना होगा, जो स्क्रिप्ट रखने वाली वस्तु (आप इन तत्वों की सूची देख सकते हैं) निरीक्षक टैब जब संबंधित वस्तु का चयन किया जाता है)। फिर आप इन तत्वों में से प्रत्येक के लिए तरीकों को कॉल कर सकते हैं या परिवर्तन कर सकते हैं।
यदि आप किसी ऑब्जेक्ट पर एक स्क्रिप्ट चाहते हैं, तो किसी अलग ऑब्जेक्ट के गुणों को प्रभावित करने के लिए, आप एक खाली बना सकते हैं GameObject आपकी स्क्रिप्ट में चर, और का उपयोग करें निरीक्षक दृश्य में किसी अन्य वस्तु को निर्दिष्ट करने के लिए।
तत्वों की एक सूची निम्नानुसार हो सकती है (उपरोक्त उदाहरण में हमारे एक पैडल के निरीक्षक दृश्य से लिया गया है):
- परिवर्तन
- घन (मेष फ़िल्टर)
- बॉक्स कोलाइडर
- मेष रेंडरर
ऑब्जेक्ट के इन पहलुओं में से प्रत्येक को एक स्क्रिप्ट के भीतर से प्रभावित किया जा सकता है। इसके बाद, हम ठीक उसी तरह से देखेंगे।
6.1 रूपांतरण
एकता में एक GameObject के लिए परिवर्तन कार्य उस वस्तु के भौतिक मापदंडों को नियंत्रित करते हैं: इसकी स्केल, आईटी इस स्थान, और उसका उन्मुखीकरण. आप उन्हें इस तरह से एक स्क्रिप्ट के भीतर से एक्सेस कर सकते हैं:
transform.position = newPositionVector3; transform.rotation = newRotationQuaternion; transform.localScale = newScaleVector3;
उपरोक्त उदाहरणों में, नामित चर नाम में निर्दिष्ट प्रकार के हैं। यहां कुछ प्रमुख विवरण दिए गए हैं: स्थिति और पैमाने, जैसा कि आप उम्मीद कर रहे हैं, के रूप में संग्रहीत किया जाता है Vector3s. आप पहुंच सकते हैं एक्स, Y, तथा जेड प्रत्येक के घटक (उदाहरण के लिए, transform.position.y आपको शून्य विमान के ऊपर एक वस्तु की दूरी देता है)।
हालांकि, बचने के लिए जिम्बल ताला, रोटेशन के रूप में नियंत्रित किया जाता है quaternions (चार घटक वैक्टर)। क्योंकि हाथ से छेड़छाड़ करने वाला चतुष्कोणीय है, आप यूरीनियन कोणों का उपयोग करके घूर्णन में हेरफेर कर सकते हैं चार का समुदाय। यूलर इस तरह की विधि:
transform.rotation = उद्धरण। यूलर (पिच, यो, रोल);
यदि आप वस्तुओं को एक स्थान से दूसरे स्थान पर आसानी से ले जाना चाहते हैं, तो आप पाएंगे Slerp चतुर्धातुक और वेक्टर 3 एस के लिए विधि सहायक। थप्पड़ तीन तर्कों में लेता है - वर्तमान स्थिति, अंतिम स्थिति और परिवर्तन की गति, और सुचारू रूप से दिए गए गति के बीच उनके बीच अंतर करता है। वाक्य विन्यास इस तरह दिखता है:
transform.position = Vector3.Slerp (startPositionVector3, newDestinationVector3, 1);
6.2 रेंडरर
यूनिटी में रेंडरर फ़ंक्शंस आपको प्रॉपर की सतहों को स्क्रीन पर प्रदान करने के तरीके को नियंत्रित करने की अनुमति देते हैं। आप बनावट को फिर से असाइन कर सकते हैं, रंग बदल सकते हैं, और वस्तु की छाया और दृश्यता को बदल सकते हैं। वाक्य विन्यास इस तरह दिखता है:
renderer.enabled = false; renderer.material.color = नया रंग (0, 255, 0); renderer.material.mainTexture = myTexture; renderer.material.shader = newShader;
इनमें से अधिकांश में बहुत स्पष्ट कार्य हैं। पहला उदाहरण प्रश्न में वस्तु को अदृश्य बनाता है: कई स्थितियों में एक उपयोगी चाल। दूसरा उदाहरण एक नया प्रदान करता है आरजीबी रंग (अर्थात्, हरा) प्रश्न में वस्तु के लिए। तीसरा एक नई बनावट चर के लिए मुख्य फैलाना बनावट प्रदान करता है। अंतिम उदाहरण ऑब्जेक्ट की सामग्री के शेडर को नए परिभाषित शेडर चर में बदलता है।
6.3 भौतिकी
एकता एक एकीकृत भौतिकी इंजन के साथ आती है - ऐसा कुछ भौतिकी सैंडबॉक्स गेम लूट, ड्राइव और निर्माण: 3 भयानक भौतिकी सैंडबॉक्स सिमुलेटर अधिक पढ़ें सभी का उपयोग करें। यह आपको वस्तुओं के भौतिक गुणों को निर्दिष्ट करने की अनुमति देता है और उनके सिमुलेशन का विवरण आपके लिए संभाला जाता है। सामान्य तौर पर, पाठ्यपुस्तक और परिवर्तन प्रणाली का उपयोग करके अपने स्वयं के भौतिकी को लागू करने की कोशिश करने के बजाय, यह यूनिटी के भौतिकी इंजन का उपयोग करने के लिए सबसे सरल और अधिक संभव है।
सभी भौतिकी के प्रॉप्स की आवश्यकता होती है colliders. हालांकि, वास्तविक सिमुलेशन खुद ही एक द्वारा नियंत्रित किया जाता है कठोर शरीर, जो में जोड़ा जा सकता है निरीक्षक राय। ऋग्वैदिक हो सकते हैं कीनेमेटीक्स का या nonkinematic.
काइनेमैटिक फिजिक्स प्रॉप्स (और प्रभाव) के साथ टकराता है नॉनकेमिक फिजिक्स उनके चारों ओर प्रॉप्स करता है, लेकिन खुद टकराव से अप्रभावित रहता है। स्थैतिक कीनेमेटिक प्रॉप्स लौकिक अचल वस्तुएँ हैं, और गतिमान कैनेमैटिक ऑब्जेक्ट हैं लौकिक अजेय बल (रिकॉर्ड के लिए, जब वे टकराते हैं, तो वे बस प्रत्येक से गुजरते हैं अन्य)।
इसके अलावा, आप ऑब्जेक्ट के कोणीय ड्रैग (इसे स्पिन करने के लिए कितनी ऊर्जा लेते हैं) को समायोजित कर सकते हैं, इसके द्रव्यमान को बदल सकते हैं, यह निर्धारित कर सकते हैं कि यह गुरुत्वाकर्षण से प्रभावित है या नहीं, और इस पर बल लगा सकते हैं।
उदाहरण:
rigidbody.angularDrag = 0.1f; rigidbody.mass = 100; rigidbody.isKinematic = false; rigidbody.useGravity = true; कठोर शरीर। AddForce (transform.forward * 100);
ये सभी बहुत आत्म-व्याख्यात्मक हैं। यहां ध्यान देने योग्य बात केवल यही है transform.forward. वेक्टर 3 के सभी तीन घटक हैं (।आगे, ।यूपी, तथा ।सही) उनके साथ जुड़ा हुआ है, जिसे एक्सेस किया जा सकता है और उनके साथ घूम सकता है (आगे संपादक में नीले तीर की दिशा है)। transform.forward कीवर्ड केवल परिमाण 1 के साथ वर्तमान वस्तु के लिए आगे का वेक्टर है। ऑब्जेक्ट पर अधिक बल बनाने के लिए इसे एक फ्लोट से गुणा किया जा सकता है। आप संदर्भ भी दे सकते हैं transform.up तथा transform.right, और उनके उलट पाने के लिए उन्हें नकारना।
6.4 टकराव
अक्सर गेम बनाते समय, आप भौतिकी कोड से परे, अपने कोड में कुछ बदलाव के परिणाम के लिए टकराव की तरह होते हैं। इसके लिए, आपको एक की आवश्यकता होगी टक्कर का पता लगाने की विधि.
यूनिटी में टकराव का पता लगाने के लिए एक निश्चित मात्रा में प्रीप वर्क की जरूरत होती है। सबसे पहले, टकराव में वस्तुओं में से कम से कम एक की जरूरत है गैर-कीनेमेटिक कठोर इसके साथ संलग्न। दोनों ऑब्जेक्ट्स में सही कोलाइडर होना चाहिए, जो गैर-ट्रिगर हो। दोनों वस्तुओं की कुल गति इतनी कम होनी चाहिए कि वे वास्तव में टकराएं, बजाय एक-दूसरे से टकराए।
यदि आपको वह सब मिल गया है जिसका आप ध्यान रखते हैं, तो आप एक स्क्रिप्ट में एक विशेष टक्कर का पता लगाने की विधि रखकर टकराव की जाँच कर सकते हैं, जिस वस्तु से आप टकराव की जाँच करना चाहते हैं। विधि इस तरह दिखाई देगी:
शून्य OnCollisionEnter (टकराव अन्य) {// यहां चीजें करें। }
यह विधि स्वचालित रूप से पहले फ्रेम के दौरान चलेगी कि कोई अन्य वस्तु आपकी वस्तु को छूती है। टक्कर इकाई अन्य आपके द्वारा हिट की गई वस्तु का संदर्भ है। उदाहरण के लिए, आप इसका संदर्भ ले सकते हैं gameobject, कठोर शरीर, तथा परिवर्तन विभिन्न तरीकों से इसमें हेरफेर करने की विशेषताएं। जबकि OnCollisionEnter संभवत: सबसे आम फ़ंक्शन है जिसका आप उपयोग कर रहे हैं, आप भी उपयोग कर सकते हैं OnCollisionExit तथा OnCollisionStay (अन्यथा समान सिंटैक्स और उपयोग के साथ), जो पहले फ्रेम के दौरान सक्रिय होते हैं जिसे आप किसी ऑब्जेक्ट से टकराते हुए रोकते हैं और प्रत्येक फ्रेम के दौरान आप क्रमशः किसी ऑब्जेक्ट से टकराते हैं।
कभी-कभी, यह भी उपयोगी हो सकता है कि क्या कहा जाता है रे कास्टिंग. रेकास्टिंग में, एक असीम रूप से पतली रेखा (ए रे) को कुछ वेक्टर के साथ, कुछ उत्पत्ति से दुनिया के माध्यम से डाला जाता है, और, जब यह कुछ हिट करता है, तो पहली टक्कर की स्थिति और अन्य विवरण वापस आ जाते हैं। एक रेकास्ट के लिए कोड इस तरह दिखता है:
रायकास्ट हिट; अगर (भौतिकी। Raycast (transform.position; -Vector3.up, out hit)) {फ़्लोट दूरीToGround = hit.distance; }
यह वर्तमान ऑब्जेक्ट की स्थिति से -Vector3.up (सीधे नीचे), और चर को जोड़ता है मारो पहली वस्तु से टकराता है। एक बार जब आपकी किरण कुछ हिट हो जाती है, तो आप पहुंच सकते हैं hit.distance यह निर्धारित करना कि यह कितनी दूर है, या मारो। GameObject आपके द्वारा हिट की गई वस्तु में हेरफेर करना।
इस तरह के रेकास्ट का उपयोग निशानेबाजों के लिए किया जा सकता है कि बंदूक क्या इंगित करती है, या कैमरे को देखने के लिए या आंदोलन मैकेनिक की कुछ शैलियों के लिए वस्तुओं का चयन करें।
6.5 समय सुधार
जब आप इस तरह से वस्तुओं के साथ छेड़छाड़ कर रहे हैं, तो ध्यान में रखने वाला एक महत्वपूर्ण कारक है फ्रेम रेट. कोई फर्क नहीं पड़ता कि आप कितनी सावधानी से अनुकूलन करते हैं, फ्रैमरेट्स हमेशा अलग-अलग होंगे, और आप नहीं चाहते कि आपके खेल की गति तदनुसार भिन्न हो। यदि कोई अन्य व्यक्ति आपके गेम को आपके द्वारा विकसित किए जाने की तुलना में तेज़ कंप्यूटर पर चलाता है, तो आप नहीं चाहते कि गेम दोगुनी गति से चले।
जिस तरह से आप इसके लिए सही हैं, वह उन मूल्यों को गुणा करके है जो आप उस समय का उपयोग कर रहे हैं, जिसमें अंतिम फ्रेम को प्रस्तुत करना था। यह प्रयोग करके किया जाता है Time.deltaTime. यह प्रभावी रूप से किसी भी वैरिएबल की गति को बदल देता है जिससे आप हर फ्रेम को बढ़ा रहे हैं प्रति फ्रेम बदलें सेवा प्रति सेकंड बदलें, और शायद आपको यह परिवर्तन किसी भी मूल्य पर करना चाहिए, जिसमें आप हर फ्रेम में वृद्धि या कमी कर रहे हैं।
6.6 ऑडियो स्रोत और श्रोता
अब हम वस्तुओं को बनाने, प्रस्तुत करने और नियंत्रित करने के तरीके को कवर करते हैं, आइए हम उस दूसरे अर्थ के बारे में बात करें जो कंप्यूटर गेम सेवा कर सकता है: अर्थात् ध्वनि. एकता दो प्रकार की ध्वनियों का समर्थन करती है: 2 डी तथा 3 डी लगता है। 3 डी ध्वनियां दूरी के आधार पर उनकी मात्रा बदलती हैं, और कैमरे के सापेक्ष स्थानांतरित होने पर विकृत करती हैं; 2 डी ध्वनि नहीं है।
ध्वनि-ओवर और पृष्ठभूमि संगीत के लिए 2 डी ध्वनि उपयुक्त हैं, और 3 डी ध्वनियां दुनिया में होने वाली घटनाओं से उत्पन्न ध्वनियों पर लागू होती हैं। ध्वनि 3 डी है या नहीं, इसे बदलने के लिए, इसे चुनें परियोजना देखें, पर स्विच करें निरीक्षक ड्रॉपडाउन मेनू से उपयुक्त विकल्प देखें और चुनें, फिर दबाएँ पुन: आयात करें बटन।
वास्तव में ध्वनि बजाने के लिए, आपको एक संलग्न करना होगा ऑडियो स्रोत एक प्रोप (आप जिस ध्वनि को 3 डी ध्वनि के मामले में उत्पन्न करना चाहते हैं, वह प्रोप)। फिर आपको खोलने की आवश्यकता होगी audioclip फ़ील्ड और अपनी ध्वनि फ़ाइल का चयन करें।
आप उपयोग कर सकते हैं myAudioSource। रोकें () तथा myAudioSource। खेल() उन ध्वनि फ़ाइलों को नियंत्रित करने के लिए। आप फ़ॉलऑफ़ व्यवहार, वॉल्यूम और डॉपलर शिफ़्ट ऑफ़ द साउंड को समायोजित कर सकते हैं निरीक्षक आडियोसोर्स के लिए टैब।
6.7 इनपुट
एक गेम जो उपयोगकर्ता से कोई इनपुट नहीं लेता है, वह किसी गेम से बहुत अधिक नहीं है। बहुत सारे विभिन्न प्रकार के इनपुट हैं जिन्हें आप पढ़ सकते हैं, और उनमें से लगभग सभी के माध्यम से सुलभ हैं इनपुट तथा कुंजी कोड वस्तुओं। कुछ सैंपल इनपुट स्टेटमेंट (जिसमें हर फ्रेम का मूल्यांकन किया गया मान है) नीचे हैं।
वैक्टर 3 माउसपोस = इनपुट.माउसपोजिशन; बूल .LeftClicking = इनपुट है। GetMouseButton (0); बूल .PressingSpace = इनपुट है। GetKey (KeyCode) अंतरिक्ष);
इन पंक्तियों के कार्य ज्यादातर आत्म व्याख्यात्मक हैं। इन तीन प्रकार के इनपुट संदर्भ का उपयोग करके, आप अधिकांश आधुनिक 3 डी कंप्यूटर गेम की नियंत्रण योजनाओं को फिर से बना सकते हैं।
6.8 एक स्क्रिप्ट डिबगिंग
मान लीजिए कि कोई स्क्रिप्ट काम नहीं करती है जैसा कि अच्छे डॉक्टर कहते हैं, बैंगअप और हैंगअप आपके लिए हो सकते हैं। अगर आपके C # के साथ एकमुश्त वाक्यविन्यास त्रुटियां हैं, तो खेल आम तौर पर चलाने से इंकार कर देगा जब आप खेलते हैं, और यदि आप कुछ बहुत उपयोगी त्रुटि संदेश प्रदान करते हैं निर्माण संपादक के भीतर से स्क्रिप्ट। निचे देखो:
ये बग आमतौर पर ठीक करने के लिए सबसे मुश्किल नहीं हैं। क्या अधिक समस्याग्रस्त हो सकते हैं सूक्ष्म अर्थ त्रुटियां हैं, जिसमें आपने सफलतापूर्वक मान्य सी # से भरा एक फ़ाइल लिखा है - बस एक ऐसा नहीं है जो आपने सोचा था कि यह होगा। यदि आपके पास इन त्रुटियों में से एक है, और आपको इसे ट्रैक करने में परेशानी हो रही है, तो कुछ चीजें हैं जो आप स्थिति को सुधारने का प्रयास कर सकते हैं।
पहला गेम के निष्पादन को रोकना है, और कंसोल की जांच करना है। आप पर क्लिक करके खेल को रोक सकते हैं ठहराव संपादक के ऊपरी मध्य भाग में आइकन, और फिर चयन कंसोल के नीचे से खिड़की मेनू (या दबाकर) Ctrl > खिसक जाना > सी). यहां तक कि अगर कोई त्रुटि नहीं है, तो चेतावनी अभी भी कुछ सुराग देने में मदद कर सकती है कि क्या गलत हो सकता है।
यदि यह काम नहीं करता है, तो आप अपनी स्क्रिप्ट की स्थिति के बारे में कुछ विचार प्राप्त करने की कोशिश कर सकते हैं ताकि आंतरिक वेरिएबल की स्थिति को यह सत्यापित करने के लिए कि प्रोग्राम वह कर रहा है जो आप सोचते हैं कि यह कर रहा है। आप उपयोग कर सकते हैं डिबग। लॉग (स्ट्रिंग) एक स्ट्रिंग की सामग्री को कंसोल पर प्रिंट करने के लिए जब प्रोग्राम निष्पादन उस लाइन को हिट करता है। सामान्य तौर पर, यदि आप उन चीजों से पीछे हटकर काम करते हैं जो आपको लगता है कि उन चीजों के माध्यम से होना चाहिए जो होनी चाहिए ऐसा करने से, अंततः आप एक ऐसे बिंदु पर पहुंच जाएंगे जहां आपका डिबग प्रिंट करता है, जो आप उनसे उम्मीद करते हैं वह नहीं करते हैं करना। यह आपकी त्रुटि है
7. उदाहरण: स्क्रिप्टिंग पोंग
पोंग का निर्माण करने के लिए, खेल को उसके मूल तत्वों में तोड़ दें: हमें एक गेंद की आवश्यकता है, जो बढ़ते समय पैडल के बीच आगे और पीछे की ओर जाती है गति, हमें एक स्कोरबोर्ड की आवश्यकता है जो जानता है कि कब गेंदों ने पैडल को पास किया है, और हमें उस समय गेंद को फिर से शुरू करने के लिए एक तंत्र की आवश्यकता है हो जाता। एक अच्छा पहला कदम यह होगा कि गेंद को नॉन-कीनेमैटिक रिगिडबॉडी में जोड़ा जाए, पैडल, उन सभी के लिए गुरुत्वाकर्षण को अक्षम करते हैं, और मानक संपत्ति से एक उचित भौतिक सामग्री असाइन करते हैं (उछाल साथ में उछाल गठबंधन करने के लिए सेट गुणा).
नीचे, आप व्याख्यात्मक टिप्पणियों के साथ गेंद के लिए स्क्रिप्ट देख सकते हैं। गेंद को कुछ बुनियादी लक्ष्यों को पूरा करने की आवश्यकता है: इसे एक जटिल पैटर्न में उछाल देना चाहिए, हमेशा बनाए रखना चाहिए दोनों कुल्हाड़ियों पर आंदोलन, और यह क्षैतिज में एक चुनौतीपूर्ण लेकिन असंभव गति से तेज होना चाहिए दिशा।
BallHandler.cs
अगला, हमें अपने पैडल को स्क्रिप्ट करने की आवश्यकता है, जिसे आप नीचे देख सकते हैं। पैडल को कुंजी प्रेस (लेकिन कुछ सीमा के बाहर नहीं) के जवाब में ऊपर और नीचे जाने की आवश्यकता है। यह कण प्रणाली को ट्रिगर करने की भी आवश्यकता है जब यह किसी चीज से टकराता है।
PaddleHandler.cs
अगला, हमें दुश्मन एआई की आवश्यकता है: ऐसा कुछ जो दुश्मन के पैडल को एक निश्चित दर पर गेंद की ओर ट्रैक करने का कारण बनेगा। उसके लिए, हम अधिकतम सादगी के लिए वेक्टर 3.Slerp का उपयोग करेंगे। हम उसी कण व्यवहार को भी पसंद करते हैं जिसे हम अपने स्वयं के पैडल पर देखते हैं।
EnemyAI.cs
अंत में, हमें स्कोरबोर्ड को अपडेट करने और सीमा से बाहर जाने पर गेंद को रीसेट करने के लिए एक स्क्रिप्ट की आवश्यकता होती है।
ScoreboardUpdater.cs
उन लिपियों के साथ और संदर्भों को भर देने के बाद, जब हम पोंग के अपने खेल को चलाते हैं, तो हम गेमप्ले का अनुभव करते हैं!
आप ऐसा कर सकते हैं मेरा पोंग डेमो डाउनलोड करें, यदि आप वह सब कुछ देखना चाहते हैं जो मैंने कार्रवाई में उल्लिखित किया है। यह विंडोज, मैक और लिनक्स सिस्टम पर चलता है।
8. डॉक्यूमेंटेशन / लर्निंग मोरिंग की खोज
एकता एक जटिल इंजन है जिसमें कई और विशेषताएं हैं जो संभवत: इस शैली के मार्गदर्शक में शामिल हो सकते हैं, और इससे पहले कि आप (स्वतंत्र और व्यावसायिक) यूनिटी एक्सटेंशन के विस्तृत स्वाट को शामिल करें, पर उपलब्ध इंटरनेट। यह मार्गदर्शिका आपको एक खेल विकसित करने के लिए एक मजबूत शुरुआत देगी, लेकिन किसी भी प्रयास में स्व-शिक्षा एक महत्वपूर्ण कौशल है, और यहां दोगुना है।
यहाँ एक महत्वपूर्ण संसाधन है एकता ScriptReference. ScriptReference एक खोज योग्य डेटाबेस है, जो C # और जावास्क्रिप्ट दोनों के लिए उपलब्ध है, जिसकी एक सूची है उनके कार्यों और संक्षिप्त उदाहरणों के विवरण के साथ हर यूनिटी कमांड और सुविधा वाक्य - विन्यास।
यदि आप यूनिटी के संपादक और इंटरफ़ेस से परेशान हैं, या केवल वीडियो ट्यूटोरियल पसंद करते हैं, तो वरीयता की एक लंबी सूची है एकता वीडियो ट्यूटोरियल शुरुआती के लिए सर्वश्रेष्ठ एकता 3 डी ट्यूटोरियलएकता के साथ खेल विकसित करना चाहते हैं, लेकिन पता नहीं कहाँ से शुरू करें? आज इन भयानक एकता 3 डी ट्यूटोरियल में से एक का प्रयास करें। अधिक पढ़ें उपलब्ध। अधिक व्यापक (लेकिन कम व्यापक) एकता के लिए पाठ ट्यूटोरियल CatLikeCoding से भी उपलब्ध हैं।
अंत में, यदि आपके पास प्रलेखन या ट्यूटोरियल के दायरे से परे प्रश्न हैं, तो आप विशिष्ट प्रश्न पूछ सकते हैं जवाब। Unity3d.com. याद रखें कि उत्तर स्वयंसेवकों द्वारा प्रदान किए जाते हैं, इसलिए अपने समय का सम्मान करें और यह सुनिश्चित करने के लिए पहले डेटाबेस खोजें कि आपके प्रश्न का पहले से ही उत्तर नहीं दिया गया है।
9. अपने खेल का निर्माण / एक स्टैंडअलोन अनुप्रयोग के लिए संकलन
जब आपने कुछ ऐसा बनाया है जिस पर आपको गर्व है (या आपने अभ्यास के लिए हमारे थोड़े से डोडी पोंग उदाहरण का क्लोन किया है), तो यह समय है अपने गेम को संपादक से स्थानांतरित करें और इसे कुछ इस तरह से मोड़ें कि आप इंटरनेट पर पोस्ट कर सकें और अपने दोस्तों और परिवार को मजबूर कर सकें खेल। ऐसा करने के लिए, आपको एक स्टैंडअलोन एप्लिकेशन बनाने की आवश्यकता होगी। अच्छी खबर यह है कि एकता में, यह बहुत, बहुत आसान है। हालाँकि, कुछ संभावित हिचकियाँ हैं जिनसे आप सावधान रहना चाहते हैं।
शुरुआत के लिए, पता है कि आप केवल एक त्रुटि मुक्त परियोजना का निर्माण कर सकते हैं। उस अंत तक, सुनिश्चित करें कि आपके पास निर्माण के रूप में कंसोल खुला है: कुछ त्रुटि स्थितियां हैं जो खेल संपादक में अनदेखी करेंगे, लेकिन फिर भी एक प्रयास का निर्माण रद्द कर देंगे। यह केवल कंसोल पर त्रुटि संदेश देता है, जिसमें कोई परिणाम दिखाई नहीं देता है, जो कि अगर आप जांचना भूल जाते हैं, तो निराशा हो सकती है। एक बार जब आपको अपना गेम कंपाइलिंग एरर-फ़्री हो जाता है, हालाँकि, आप चुन सकते हैं सेटिंग्स बनाएँ के नीचे फ़ाइल मेनू, या दबाएँ Ctrl > खिसक जाना
> बी. यह एक सरल संवाद लाएगा जो आपको कई प्लेटफार्मों के लिए अपना गेम बनाने की अनुमति देता है।
वहां से प्रक्रिया स्वयं व्याख्यात्मक है: अपने विकल्पों का चयन करें, और हिट करें निर्माण; गेम आपको निर्देशिका को स्थापित करने के लिए संकेत देगा, और निष्पादन योग्य और डेटा निर्देशिका दोनों को वहां रखेगा। इन दो फ़ाइलों को एक साथ ज़िपित और वितरित किया जा सकता है (बस यह सुनिश्चित करें कि आप यूनिटी डेमो में निर्मित गेम के लिए चार्ज नहीं कर रहे हैं, क्योंकि यह सेवा की शर्तों का उल्लंघन करता है)।
10. नोट बंद करना
किसी भी गेम डेवलपमेंट टूल की तरह, एकता के साथ सफलता की कुंजी पुनरावृत्ति विकास है। आपको प्रबंधनीय वेतनवृद्धि में निर्माण करना होगा - महत्वाकांक्षी हो, हर तरह से, लेकिन छोटी-छोटी महत्वाकांक्षाओं में महत्वाकांक्षी हों, और व्यवस्था करें यदि आप अपनी अंतिम महत्वाकांक्षा से कम हो जाते हैं, तो भी आप ऐसा कर सकते हैं, आप एक सुसंगत के साथ कम से कम हवा लेंगे उत्पाद।
सबसे महत्वपूर्ण तत्वों को पहले प्राप्त करें: अपने दिमाग में एक विचार रखें न्यूनतम व्यवहार्य उत्पादसबसे सरल, सबसे नंगे हड्डियों की चीज जिसे आप संभवतः बना सकते हैं और अभी भी महसूस कर सकते हैं जैसे कि आपने कुछ सार्थक हासिल किया है। बड़ी महत्वाकांक्षाओं पर आगे बढ़ने से पहले उस न्यूनतम व्यवहार्य परियोजना तक पहुँचें।
यह ट्यूटोरियल आपको एक मजबूत शुरुआत देता है, लेकिन एकता सीखने का सबसे अच्छा तरीका है एक गेम बनाना। एक खेल का निर्माण शुरू करें, अपने ज्ञान में अंतराल भरें जैसा कि वे आते हैं, और ज्ञान का क्रमिक प्रवाह उन चीजों को दूर कर देगा जो आप आश्चर्यजनक रूप से जल्दी से नहीं जानते हैं।
यदि आप यह सब पढ़ चुके हैं और एकता के साथ आवश्यक कोडिंग से अभिभूत हैं, तो सुनिश्चित करें कि आप यह देखना चाहते हैं कि कैसे एकता जानें के साथ खेल विकास सीखें एकता जानें मास्टर गेम डेवलपमेंट का सबसे आसान तरीका हैअपने खुद के खेल विकसित करना शुरू करना चाहते हैं? यूनिटी लर्न सबसे अच्छा और आसान तरीका है सीखने और मास्टर करने के लिए जिसे आपको जानना आवश्यक है। अधिक पढ़ें और हमारे गाइड को भी पढ़ें बिना किसी प्रोग्रामिंग के वीडियो गेम कैसे बनाये बिना किसी प्रोग्रामिंग के वीडियो गेम कैसे बनाएंएक वीडियो गेम बनाना चाहते हैं, लेकिन कोड नहीं कर सकते? फिर एक वीडियो गेम निर्माण किट का उपयोग करें जो आपको बिना किसी कोडिंग के गेम बनाने की आवश्यकता है! अधिक पढ़ें .
एकता एक शक्तिशाली उपकरण है, और थोड़े से अन्वेषण के साथ, आप जितनी जल्दी उम्मीद कर सकते हैं उससे अधिक प्रभावशाली परियोजनाओं का निर्माण कर सकते हैं। हमें बताएं कि आपने नीचे टिप्पणियों में क्या बनाया है - हम देखना पसंद करेंगे!
दक्षिण पश्चिम में स्थित एक लेखक और पत्रकार, आंद्रे को 50 डिग्री सेल्सियस तक कार्यात्मक रहने की गारंटी है, और बारह फीट की गहराई तक जलरोधी है।