Unity3d। एकता 3 डी छात्र (B09-B12) से सबक

शुभ दोपहर

आप निम्न लिंक पर पिछले पाठ पा सकते हैं:
पाठ B01-B03
पाठ B04-B08




मूल पाठ 09 - सामग्री जोड़ना




पाठ बताता है कि सामग्री का उपयोग करके किसी वस्तु में बनावट कैसे जोड़ें।

जब आप यूनिटी 3 डी में गेम ऑब्जेक्ट के साथ काम करते हैं, तो आपको सामग्रियों का उपयोग करने की भी आवश्यकता होगी। उदाहरण के लिए, हम एक घन में बनावट के साथ सामग्री जोड़ना चाहते हैं।
B0900

डाउनलोड बनावट (* .png, 256px x 256px, 98.4KB)।

सबसे पहले, एसेट्स फ़ोल्डर (प्रोजेक्ट के रूट फ़ोल्डर में) में हमारी बनावट को सहेजें।

सामग्री निर्देशिका को जोड़ें (हमें याद है कि परियोजना में "पदानुक्रमित क्रम" बनाए रखना हमेशा सुविधाजनक होता है) और हमारी फ़ाइल बल्ब बनावट (एक्सटेंशन * .Png (मूल पाठ में * .psd), नोट देखें) का नाम दें।
B0901

Unity3d पर वापस जाएं, सुनिश्चित करें कि हमारी बनावट वाली सामग्री फ़ोल्डर प्रोजेक्ट दृश्य में दिखाई देती है।
B0902

एक घन बनाएँ। आप क्यूब पर प्रोजेक्ट व्यू से बस खींचकर हमारी बनावट जोड़ सकते हैं (सामग्री स्वचालित रूप से बनाई जाएगी)। लेकिन शायद आप इसे पहले से कॉन्फ़िगर करना चाहते हैं, फिर Create-> सामग्री चुनें।
B0903

इसे बल्ब कहें और सामग्री फ़ोल्डर में डालें
B0904

बल्ब चुनें और प्रोजेक्ट व्यू से हमारी बनावट को इंस्पेक्टर व्यू में खाली ग्रे वर्ग में स्थानांतरित करें ( कोई नहीं (बनावट 2 डी) ), या एक ही वर्ग में सभी का चयन करके और दिखाई देने वाली सूची से चयन करके।
B0905

एक ग्रे वर्ग के बजाय, एक बनावट वाला एक आइकन दिखाई देगा।
घन पर हमारी सामग्री खींचें। घन तुरंत बनावट हो जाएगा।
B0906

इंस्पेक्टर व्यू में एक सामग्री चुनते समय , आप एक शेडर भी चुन सकते हैं, जिसके अनुसार इसकी अंतिम उपस्थिति की गणना की जाएगी
B0907
पुनश्च: हम अलग से shaders के बारे में बात करेंगे, लेकिन बहुत बाद में।

साथ ही, सामग्री को टाइलिंग (मोज़ेक बनावट) से कॉन्फ़िगर किया जा सकता है। Xth या yth पर टाइलिंग मान जितना अधिक होगा, उतनी बार इसे संबंधित पक्ष पर दोहराया जाता है। यह समझने के लिए कि यह कैसे काम करता है, x और y मानों को 10 पर सेट करें (जब मूल्य बदलता है, तो घन पर बनावट वास्तविक रूप में अपडेट की जाएगी)।
B0908

ऑफसेट पैरामीटर बनावट को "एक सर्कल में" स्थानांतरित करने के लिए जिम्मेदार है। यह समझने के लिए कि यह कैसे काम करता है, इसके साथ प्रयोग करें।



टिप्पणी
PSD के अलावा , यूनिटी 3 डी भी निम्न प्रारूपों के आयात का समर्थन करता है:
TIFF, JPG, TGA, PNG, GIF, BMP, IFF, PICT।
किसी भी बनावट के मानचित्रण के रूप में, यह सबसे प्रभावी होगा (प्रदर्शन के लिए) यदि बनावट के किनारे दो (128, 256, 512, आदि) की शक्ति हैं। लेकिन यह आवश्यक नहीं है कि बनावट दोगुनी हो (उदाहरण के लिए, 256x512 स्वीकार्य बनावट आकार है)।




मूल पाठ 10 - ऑडियो मूल बातें





पाठ का वर्णन है कि ऑडियो स्रोत घटक (ऑडियो संसाधन) कैसे खेलें और स्क्रिप्टिंग का उपयोग करके ध्वनि क्लिप कॉल करें।

यूनिटी 3 डी में ध्वनि के साथ काम करने के लिए, आपको दो घटकों की आवश्यकता है:


आमतौर पर, एक AudioListener कैमरे का एक घटक है। हम एक कैमरा का चयन करेंगे और इंस्पेक्टर व्यू में देखकर इसे देखेंगे
B1000

ध्वनियों को सुनने के लिए आपको प्रत्येक दृश्य में कम से कम एक AudioListener होना चाहिए।

एक खाली GameObject जोड़ें और इसमें ऑडियो स्रोत घटक जोड़ें
b1001

आप इंस्पेक्टर व्यू के माध्यम से या स्क्रिप्ट का उपयोग करके एक ऑडियो क्लिप जोड़ सकते हैं।

हमारी परियोजना में दो ऑडियो फाइलें हैं - मोनो और स्टीरियो।
b1002

मोनो का उपयोग आमतौर पर ध्वनि प्रभावों के लिए किया जाता है। केवल इसके लिए, आप क्षीणन या अन्य 3 डी प्रभाव का उपयोग कर सकते हैं।
स्टीरियो, क्रमशः, संगीत के लिए, क्योंकि स्टीरियो साउंड अप के रूप में है।

पूर्वावलोकन विंडो में, आप चयनित फ़ाइल चला सकते हैं।
b1003

हमारे क्लिप ( GreenadeLaunch ) को ऑडियो क्लिप फ़ील्ड में जोड़ें यदि प्ले ऑन अवेक विकल्प चालू है, तो दृश्य शुरू होने के तुरंत बाद ध्वनि बज जाएगी।
b1004

यदि हम चाहते हैं कि ऑडियो क्लिप हमारे लिए सही समय पर ध्वनि करे, तो हमें एक स्क्रिप्ट लिखने की आवश्यकता है। ऑडियो स्रोत के ऑडियो क्लिप फ़ील्ड को खाली छोड़ दें और इसे PlaySounds नाम देते हुए , एक # स्क्रिप्ट जोड़ें स्क्रिप्ट में निम्न कोड जोड़ें:
//     public AudioClip myClip; void Start () { //    audio.PlayOneShot(myClip); } 


स्क्रिप्ट को खाली गेमऑब्जेक्ट में जोड़ें , और स्क्रिप्ट में साउंड फ़ाइल ( ग्रीनडेलांच ) के साथ myClip वैरिएबल के मान को इनिशियलाइज़ करें। अब play पर क्लिक करके आप फिर से साउंड सुनें।

आप ऑडियो स्रोत का उपयोग किए बिना ऑडियो चला सकते हैं। चलिए हमारे GameObject से ऑडियो सोर्स कंपोनेंट को हटाते हैं, और स्टार्ट () विधि के कोड को निम्नलिखित के साथ बदल देते हैं:
  AudioSource.PlayClipAtPoint(myClip, transform.position); 


यहाँ, PlayClipAtPoint ऑडियो स्रोत वर्ग का एक स्थिर कार्य है जो संबंधित ऑडियो स्रोत (हमारे मामले में यह myClip है ) के साथ एक नया GameObject बनाता है और ऑडियो क्लिप को चलाने के बाद यह GameObject को हटा देता है

स्क्रिप्ट को सहेजें और सुनिश्चित करें कि हमारे GameObject के पास यह है, और myClip का मूल्य GreenadeLaunch है
b1006

प्ले पर क्लिक करें और दृश्य लोड करने के तुरंत बाद, यह सुनिश्चित करने के लिए पॉज़ पर क्लिक करें कि वन शॉट ऑडियो नाम के साथ एक नया गेम ऑब्जेक्ट दृश्य पर दिखाई दिया है
b1007



मूल पाठ 11 - कनेक्शन मूल बातें




सबक बताता है कि "इमारतों के विनाश के लिए गेंद" पर एक श्रृंखला बनाने के लिए फिक्स्ड संयुक्त (फिक्स्ड संयुक्त) और हिंज संयुक्त (कुंडा संयुक्त) का उपयोग कैसे करें।

यूनिटी 3 डी में दिलचस्प भौतिकी बनाने के लिए हम "जोड़ों" का उपयोग करेंगे और इसे समझने के लिए, हम इमारतों के विनाश के लिए एक गेंद का एक मॉडल बनाएंगे।

मूल दृश्य में एक समतलता (तल) , एक कैमरा (मुख्य कैमरा) और प्रकाश का एक बिंदु स्रोत (प्वाइंट लाइट) शामिल हैं।
सबसे पहले, एक गोला बनाएं, इसमें रिगिडोबो घटक जोड़ें और इसे बॉल कहें।
दृश्य में एक Rigidbody जोड़कर एक सिलेंडर जोड़ें। सिलेंडर और गोले के आकार और स्थिति को नीचे दिए गए आंकड़े में दिखाया गया है। एक सिलेंडर के लिए, स्केल क्रमशः x, y और z के लिए 0.15, 0.25 और 0.15 होता है। सिलेंडर को गेंद के "किनारे" (किनारों को काटना) के लिए "ऊपर" रोल किया जाएगा।
b1100

गोले और सिलेंडर को जोड़ने के लिए, गोले (बॉल) का चयन करें और इसमें फिक्स्ड जॉइंट कंपोनेंट जोड़ें हम Cylinder.rigidbody मूल्य के साथ कनेक्टेड बॉडी वैरिएबल को इनिशियलाइज़ करते हैं आपको याद दिला दूं कि इसके लिए सिलिंडर को हियरार्की व्यू से इंस्पेक्टर व्यू तक कनेक्टेड बॉडी के सामने वाले मैदान पर खींचने के लिए पर्याप्त है।
b1102

गेंद को बन्धन के लिए अधिक उपयुक्त नाम का नाम सिलेंडर रखें, उदाहरण के लिए, बॉलस्टेमकनेक्टेड बॉडी वैरिएबल का मान अपने आप बदल जाता है।
b1103

प्रेस प्ले और आप देखेंगे कि गेंद सिलेंडर से कैसे जुड़ी है।
b1104

अब श्रृंखला के चलते हुए खंड बनाना शुरू करते हैं।
एक कैप्सूल बनाएं (इसे चेन 1 कहते हैं), जबकि इसके आयाम बॉलस्टेम के समान होंगे, और यह इसके ठीक ऊपर स्थित होगा ताकि वस्तुओं के चरम किनारों को काट दें। Chain1 भी rigidbody घटक के साथ होगा
b1105

और बॉलस्टेम में हिंगन जोड़ घटक को जोड़ते हैं, जो
कनेक्टेड बॉडी हम Chain1.rigidbody को इनिशियलाइज़ करते हैं
फिक्सिंग स्थान नारंगी तीर द्वारा इंगित किया गया है।
b1106

हमें श्रृंखला का एक और खंड चाहिए। चैन 1 चुनें और इसे डुप्लिकेट करें ( ctrl + D या cmd + D )। इसे चेन 2 का नाम दें, इसे भी चेन 1 के शीर्ष पर ले जाएंChain1 में , Hinge Joint को , के साथ जोड़ें
कनेक्टेड बॉडी टू चैन2.rigidbody।
b1107

चैन 3 को भी इसी तरह से मिलाएं।

अंत में, हम HingeJoint को Chain3 में जोड़ देंगे , और हम कनेक्टेड बॉडी का मान सेट नहीं करेंगे इस मामले में, ऑब्जेक्ट "खुद को" संलग्न किया जाएगा (अधिक सटीक रूप से, दृश्य में एक खाली जगह पर)।
b1108

बॉल, बॉलस्टेम, चैन 1, चैन 2, चैन 3 का चयन करें और उन्हें झुकाएं।
b1109

प्ले पर क्लिक करें और देखें कि चेन के साथ हमारी गेंद कैसे चलती है।





बेसिक लेसन 12 - वर्चुअल एक्सिस का उपयोग करके प्रवेश करना




पाठ का वर्णन है कि "कुल्हाड़ियों" (कुल्हाड़ियों) का उपयोग करके बाएँ और दाएँ स्थानांतरित करने के लिए तीर (तीर कुंजी) का उपयोग कैसे करें

इस बार मंच पर हमारे पास एक विमान (फर्श) , एक कैमरा (मुख्य कैमरा) , एक प्रकाश स्रोत (प्वाइंट लाइट) और एक खाली गेमऑउट है।

एक अन्य इनपुट विकल्प "कुल्हाड़ियों" (एक्सिस) का उपयोग है।
इनपुट प्रबंधक खोलें (संपादित करें-> परियोजना सेटिंग्स-> इनपुट)एक्सिस और फिर क्षैतिज का विस्तार करें
b1200

आइए कुछ डिफ़ॉल्ट मापदंडों को देखें:
पैरामीटरमूल्यटिप्पणी
नकारात्मक बटनबाएंनकारात्मक दिशा में आगे बढ़ने की कुंजी
सकारात्मक बटनसहीसकारात्मक दिशा में आगे बढ़ने की कुंजी
ऑल्ट निगेटिव बटनएकनकारात्मक दिशा में जाने के लिए वैकल्पिक कुंजी
Alt पॉसिटिव बटनसकारात्मक दिशा में आगे बढ़ने के लिए वैकल्पिक कुंजी
टाइपकुंजी या माउस बटनदिए गए अक्ष के साथ बढ़ने के लिए इनपुट प्रकार (हमारे मामले में X)
एक्सिसएक्स अक्षवस्तु की धुरी जिसके साथ हम चलेंगे


इस आंदोलन (क्षैतिज) का उपयोग करने के लिए , हमें इनपुट क्लास के गेटएक्सिस () विधि की आवश्यकता है

छोटी टिप्पणी
इसके अलावा, हर बार यह इंगित करने के लिए कि विधि स्थिर नहीं है, निम्नलिखित परंपराएँ पेश की गई हैं:
  1. यदि "क्लास मेथड" लिखा जाता है, तो इसे स्थिर माना जाता है
  2. यदि "ऑब्जेक्ट मेथड" लिखा जाता है, तो वह विधि एक विशिष्ट ऑब्जेक्ट से संबंधित है।



C # स्क्रिप्ट जोड़ें, इसे GetAxis.cs पर कॉल करें और लिखें:
  private float horiz; void Update () { horiz = Input.GetAxis("Horizontal"); Debug.Log(horiz); } 


किसी खाली गेम में स्क्रिप्ट जोड़ें , और प्ले पर क्लिक करें यदि आप स्थिति बार में बाएँ / दाएँ तीर (या / d) को रखते हैं, तो आप देखेंगे कि क्षितिज चर का मान कैसे बदलता है :
b1201

इस चर का मान -1 से 1 तक (कुंजी दबाए जाने के आधार पर) भिन्न हो सकता है। जैसे ही आप कुंजी जारी करते हैं, क्षितिज फिर से 0 हो जाएगा।

अद्यतन करने के लिए कोड की एक और पंक्ति जोड़ें (), तुरंत Debug.Log () के बाद :
  transform.Translate(new Vector3(horiz, 0.0f, 0.0f)); 


दृश्य को चलाएं और तीर पर क्लिक करें - आप देखेंगे कि हमारा गेमऑबजेक्ट एक्स अक्ष के साथ कैसे चलना शुरू करता है।
b1202

Source: https://habr.com/ru/post/In145565/


All Articles