विषयसूची:

Arduino नियंत्रकों के साथ एक मल्टीप्लेयर गेम कैसे बनाएं: 6 कदम
Arduino नियंत्रकों के साथ एक मल्टीप्लेयर गेम कैसे बनाएं: 6 कदम

वीडियो: Arduino नियंत्रकों के साथ एक मल्टीप्लेयर गेम कैसे बनाएं: 6 कदम

वीडियो: Arduino नियंत्रकों के साथ एक मल्टीप्लेयर गेम कैसे बनाएं: 6 कदम
वीडियो: How to Make a Mini Drone 2024, जुलाई
Anonim
Arduino नियंत्रकों के साथ मल्टीप्लेयर गेम कैसे बनाएं
Arduino नियंत्रकों के साथ मल्टीप्लेयर गेम कैसे बनाएं

क्या आपने कभी सोचा है कि गेम डेवलपर कैसे अद्भुत गेम बनाते हैं जिन्हें दुनिया भर के लोग खेलना पसंद करते हैं? खैर, आज मैं आपको एक छोटा मल्टीप्लेयर गेम बनाकर इसके बारे में एक छोटा सा संकेत देने जा रहा हूं जिसे या तो एक Arduino कंट्रोलर द्वारा नियंत्रित किया जाएगा जिसे आप भी बनाएंगे। तो, चलिए शुरू करते हैं।

आपूर्ति

आपको चाहिये होगा:

  • एक लैपटॉप
  • एकता इंजन
  • A C# IDE जो एकता के साथ काम करता है जैसे विजुअल स्टूडियो या एटम। (मैं विजुअल स्टूडियो कोड का उपयोग करूंगा)
  • 2X अरुडिनो नैनो
  • 2X बिग ब्रेड बोर्ड
  • 2X छोटा ब्रेड बोर्ड
  • 4X टैक स्विच (पुश बटन)
  • 4X 200Ω प्रतिरोधी
  • 12X पुरुष से पुरुष जम्पर तार
  • अरुडिनो आईडीई

यदि आप एकता का उपयोग करने की बुनियादी समझ रखते हैं तो यह मददगार होगा, हालांकि यह आपकी प्रगति को प्रभावित नहीं करेगा क्योंकि आप गेम बनाते समय इससे परिचित हो जाएंगे।

यूनिटी इंजन डाउनलोड करने के लिए लिंक:

store.unity.com/download-nuo

विजुअल स्टूडियो कोड आईडीई डाउनलोड करने के लिए लिंक:

code.visualstudio.com/download

Arduino IDE डाउनलोड करने के लिए लिंक:

www.arduino.cc/en/Main/Software

चरण 1: गेम की सीमाओं को सेट करें

गेम की सीमाएं सेट करें
गेम की सीमाएं सेट करें
गेम की सीमाएं सेट करें
गेम की सीमाएं सेट करें
गेम की सीमाएं सेट करें
गेम की सीमाएं सेट करें

सबसे पहले, आपको एकता डाउनलोड करने की आवश्यकता है

एक बार ऐसा करने के बाद आप अपने गेम का व्यू सेट करना शुरू कर सकते हैं।

एक नया यूनिटी प्रोजेक्ट खोलें, इसे नाम दें और 2D गेम चुनें।

जब प्रोजेक्ट खुलता है, तो ध्यान दें कि 3 मुख्य खंड हैं जिन्हें कहा जाता है

  • पदानुक्रम (यह वह जगह है जहां आपके सभी गेम ऑब्जेक्ट और विवरण जोड़े जाएंगे)।
  • दृश्य (जहां आप गेम का दृश्य सेट करते हैं)।
  • खेल (जहां आप परीक्षण कर सकते हैं कि असली खेल कैसा होगा)।

ध्यान दें कि पदानुक्रम के तहत आपका दृश्य है और दृश्य के नीचे "मुख्य कैमरा" है। जब आप पदानुक्रम से कैमरे का चयन करते हैं तो इसे दृश्य में चुना जाएगा

(इस कैमरे की सीमाओं के भीतर कुछ भी असली गेम में दिखाई देगा)।

तस्वीर को देखो 1

हमारे खेल में दो बोर्ड होते हैं, एक गेंद जो चारों ओर घूमती है, और सीमाएँ जो बोर्ड और गेंद की गति को सीमित करती हैं।

आइए सीमाएं बनाकर शुरू करें।

  1. एक नया गेम ऑब्जेक्ट बनाने के लिए, एसेट्स> क्रिएट> स्प्राइट्स> स्क्वायर चुनें (इसे "राइट एंड लेफ्ट बॉर्डर" नाम दें) चित्र 2 को देखें
  2. दाएँ और बाएँ बॉर्डर को पदानुक्रम में खींचें और छोड़ें और दृश्य में एक वर्ग दिखाई देगा।
  3. इसकी एक्स अक्ष स्थिति को (5) "दाएँ और बाएँ बॉर्डर">इंस्पेक्टर>ट्रांसफ़ॉर्म>स्थिति>X पर समायोजित करें। तस्वीर को देखो 3
  4. फिर इसके पैमाने को समायोजित करें ताकि कैमरे की सीमाओं को कवर करने के लिए पर्याप्त बड़ा हो (वर्ग के ऊपरी और निचले किनारों को इसे फैलाने के लिए खींचें)।
  5. इसका रंग "दाएं और बाएं सीमाओं से"> निरीक्षक> स्प्राइट रेंडर> रंग समायोजित करें। तस्वीर को देखो 3
  6. इंस्पेक्टर में नीचे स्क्रॉल करें और ऐड कंपोनेंट चुनें, फिर Rigidbody2D टाइप करें और एंटर दबाएं, यह मूल रूप से आपके गेम ऑब्जेक्ट में भौतिकी को जोड़ देगा क्योंकि यह इसे द्रव्यमान, गुरुत्वाकर्षण और टक्कर का पता लगाता है। हालाँकि हमें अपने खेल में गुरुत्वाकर्षण की आवश्यकता नहीं है, इसलिए इसके बजाय गुरुत्वाकर्षण 0 बनाएं। आपको स्थिति और रोटेशन को स्थिर करने की भी आवश्यकता होगी ताकि सीमा टकराने पर हिल न जाए। तस्वीर को देखो 4
  7. ऐड कंपोनेंट चुनें, फिर बॉक्स कोलाइडर 2D टाइप करें और एंटर दबाएं इससे गेम ऑब्जेक्ट के आसपास एक क्षेत्र जुड़ जाएगा जहां टकराव का पता लगाया जा सकता है। तस्वीर को देखो 4
  8. अब दाएँ और बाएँ बॉर्डर चुनें और इसे डुप्लिकेट करने के लिए (ctrl+d) दबाएँ।
  9. इसे "बाएं सीमा" का नाम दें और पहले वाले ("दाएं सीमा") का नाम बदलें।
  10. बाएं बॉर्डर का चयन करें और चरण 3 में उसी तरह से इसकी x अक्ष स्थिति को (-5) में समायोजित करें। अब आपके पास दाएं और बाएं बॉर्डर हैं।

पिछले 10 चरणों को ऊपर और नीचे की सीमाओं के साथ दोहराएं और x स्थिति के बजाय वर्ग की y स्थिति बदलें। अंतिम पूर्वावलोकन चित्र के समान कुछ होना चाहिए।

तस्वीर को देखो 5

चरण 2: बोर्ड जोड़ना और नियंत्रक बनाना

बोर्ड जोड़ना और नियंत्रक बनाना
बोर्ड जोड़ना और नियंत्रक बनाना
बोर्ड जोड़ना और नियंत्रक बनाना
बोर्ड जोड़ना और नियंत्रक बनाना
बोर्ड जोड़ना और नियंत्रक बनाना
बोर्ड जोड़ना और नियंत्रक बनाना

बोर्ड जोड़ना

एक नया गेम ऑब्जेक्ट बनाएं और इसे प्लेयर 1 नाम दें।

समायोजित करना:

  • स्केल: एक्स (1.2), वाई (0.15), जेड (1)
  • स्थिति: एक्स(0), वाई(-3.6), जेड(0)
  • BoxCollider2D जोड़ें
  • Rigidbody 2D जोड़ें और y और z अक्षों को फ्रीज करें।

डुप्लिकेट (ctrl + d) और कॉपी प्लेयर का नाम बदलें 2.

समायोजित करना:

  • स्केल: एक्स (1.2), वाई (0.15), जेड (1)
  • स्थिति: एक्स(0), वाई(3.6), जेड(0)
  • एक BoxCollider पहले से मौजूद होगा।
  • एक Rigidbody 2D पहले से मौजूद होगा और y और z कुल्हाड़ियों को पहले ही फ्रीज कर दिया जाएगा।

तस्वीर को देखो 1

नियंत्रक बनाना

आपको चाहिये होगा:

  • 2X अरुडिनो नैनो
  • 2X बिग ब्रेड बोर्ड
  • 2X छोटा ब्रेड बोर्ड
  • 4X टैक स्विच (पुश बटन)
  • 4X रोकनेवाला
  • 12X पुरुष से पुरुष जम्पर तार

अब जॉयस्टिक को असेंबल करने के लिए ब्रेड बोर्ड के फोटो और मैपिंग को देखें।

  1. एक छोटे ब्रेड बोर्ड के साथ एक Arduino नैनो चिप संलग्न करें।
  2. बड़े ब्रेड बोर्ड पर 2 टैक स्विच लगाएं जैसा कि चित्र में दिखाया गया है। ब्रेड बोर्ड के दाहिने हाथ को बाएं हाथ से सममित रखने की कोशिश करें क्योंकि इससे जॉयस्टिक बेहतर दिखेगी (आप 30 वें कॉलम को समरूपता के रूप में उपयोग कर सकते हैं) रेखा)
  3. छोटे ब्रेड बोर्ड पर Arduino में 5V पिन के साथ बाएं बटन के ऊपरी-बाएं पिन को कनेक्ट करें (ब्रेडबोर्ड में एक ही कॉलम से जुड़ी चीजें एक दूसरे से जुड़ी हुई हैं)।
  4. Arduino में 5V पिन के साथ दाएं बटन के टॉप-राइट पिन को कनेक्ट करें।
  5. एक रोकनेवाला का उपयोग करके 31 वें कॉलम पर एक बिंदु के साथ बाएं बटन के निचले-दाएं पिन को कनेक्ट करें।
  6. एक रोकनेवाला का उपयोग करके 29 वें कॉलम पर एक बिंदु के साथ दाहिने बटन के निचले-बाएँ पिन को कनेक्ट करें।
  7. प्रतिरोधों को Arduino में GND पिन से कनेक्ट करें।
  8. बाएँ बटन के ऊपरी-दाएँ पिन को Arduino में D3 पिन से कनेक्ट करें।
  9. Arduino में D9 पिन के साथ दाएँ बटन के ऊपरी-बाएँ पिन को कनेक्ट करें।
  10. अब इन चरणों को दोहराएं और दूसरा नियंत्रक बनाएं।

चरण 3: Arduino को सीरियल पोर्ट से जोड़ना

Arduino को सीरियल पोर्ट से जोड़ना
Arduino को सीरियल पोर्ट से जोड़ना
Arduino को सीरियल पोर्ट से जोड़ना
Arduino को सीरियल पोर्ट से जोड़ना
Arduino को सीरियल पोर्ट से जोड़ना
Arduino को सीरियल पोर्ट से जोड़ना
Arduino को सीरियल पोर्ट से जोड़ना
Arduino को सीरियल पोर्ट से जोड़ना

सबसे पहले आपको Arduino IDE इंस्टॉल करना होगा।

एक बार जब वे स्थापित हो जाते हैं, तो आप एक Arduino प्रोग्राम बनाकर शुरू कर सकते हैं जो बटन से इनपुट प्राप्त करता है और उन्हें एक सीरियल पोर्ट (COM पोर्ट) में संग्रहीत करता है। जब एक Arduino बोर्ड आपके लैपटॉप से जुड़ा होता है, तो ऑपरेटिंग सिस्टम स्वचालित रूप से बोर्ड को सीरियल पोर्ट के रूप में पहचान लेता है, जिस पर प्रोग्राम अपलोड किए जा सकते हैं। सीरियल पोर्ट में संग्रहीत मूल्यों का उपयोग अगले चरण में किया जा सकता है जब हम यूनिटी इंजन को सीरियल पोर्ट से जोड़ते हैं।

अब Arduino को सीरियल पोर्ट से कनेक्ट करते हैं।

चित्रों को देखो

  1. Arduino को अपने लैपटॉप से कनेक्ट करें
  2. टूल्स>बोर्ड>अरुडिनो नैनो
  3. यदि आपकी Arduino चिप हाल ही में (2018-2020) टूल्स> प्रोसेसर> ATmega328P (पुराना बूटलोडर) है।
  4. यदि आपका Arduino चिप हाल ही का नहीं है (2018 से पहले) टूल्स>प्रोसेसर>ATmega328P
  5. टूल्स> पोर्ट> कॉम (जो भी नंबर दिखाई देता है, मेरे मामले में वह 10 है)। * यह सीरियल पोर्ट है जहां मान संग्रहीत किए जाएंगे।
  6. कोड को कॉपी करें और इसे Arduino IDE में पेस्ट करें और प्रोग्राम को अपलोड करने के लिए ctrl+u दबाएं।
  7. दूसरे Arduino के साथ दोहराएं। (चरण 5 करते समय एक और COM पोर्ट चुनना सुनिश्चित करें ताकि दोनों नियंत्रक एक ही सीरियल पोर्ट से कनेक्ट न हों)।

कोड:

व्यर्थ व्यवस्था() {

सीरियल.बेगिन (९६००); पिनमोड (3, इनपुट); // Arduino को पिन D3 पिनमोड (9, INPUT) से एक इनपुट प्राप्त करने के लिए कहना; // Arduino को पिन D9 से एक इनपुट प्राप्त करने के लिए कहना} शून्य लूप () {if(digitalRead(3)==1){/* यदि Arduino को 1 Serial.write(1) का इनपुट प्राप्त होता है; पिन 3 से सीरियल पोर्ट Serial.flush () के लिए 1 का मान आउटपुट करें; */ देरी(2); } if(digitalRead(9)==1){/* यदि Arduino को 1 Serial.write(2) का इनपुट प्राप्त होता है; पिन 9 से सीरियल पोर्ट सीरियल.फ्लश () के लिए 2 का मान आउटपुट; */ देरी(2); } }

कार्यक्रम की व्याख्या:

यह कोड केवल Arduino में D3 पिन और D9 पिन से एक इनपुट लेता है, जो बटन से जुड़े होते हैं। बटन या तो दबाए जाते हैं या दबाए जाते हैं जिसका अर्थ है कि उनसे जो रीडिंग ली जाती है वह या तो 1 (दबाया) या 0 (अनप्रेस्ड) होती है। यदि दाएँ बटन से इनपुट (D9 से) 1 (दबाया गया) है, तो सीरियल पोर्ट में 1 का मान संग्रहीत करें। यदि बाएं बटन से इनपुट (D3 से) 1 (दबाया गया) है, तो सीरियल पोर्ट में 2 का मान संग्रहीत करें।

चरण 4: एकता को सीरियल पोर्ट से जोड़ना

सीरियल पोर्ट के साथ एकता को जोड़ना
सीरियल पोर्ट के साथ एकता को जोड़ना
सीरियल पोर्ट के साथ एकता को जोड़ना
सीरियल पोर्ट के साथ एकता को जोड़ना

इस चरण के लिए हम एकता में सीरियल पोर्ट की पहचान करने जा रहे हैं ताकि बटन दबाए जाने पर यह Arduino से इनपुट प्राप्त कर सके। अपने लैपटॉप पर विजुअल स्टूडियो कोड इंस्टॉल करें। फिर एकता पर जाएं, पदानुक्रम से खिलाड़ी 1 का चयन करें, नीचे स्क्रॉल करें और घटक जोड़ें का चयन करें और खिलाड़ी 1_मोशन टाइप करें और फिर एंटर दबाएं। तस्वीर को देखो 1

इंस्पेक्टर में एक सी # स्क्रिप्ट बनाई जाएगी, उस पर राइट क्लिक करें और एडिट स्क्रिप्ट चुनें, विजुअल स्टूडियो कोड खुल जाना चाहिए और एक डिफ़ॉल्ट कोड दिखाएगा जो चित्र 2 जैसा दिखता है।

निम्नलिखित कोड को कॉपी करें और फिर "SerialPort sp = new SerialPort("COM10", 9600);" बदलें। सीरियलपोर्ट एसपी के साथ = नया सीरियलपोर्ट ("COM पोर्ट जो आपका Arduino से जुड़ा है", 9600); आप अपने Arduino कोड पर वापस जाकर टूल्स> पोर्ट> COM (जो भी नंबर दिखाई दे) पर जाकर उसे ढूंढ सकते हैं।

कोड:

सिस्टम का उपयोग करना। संग्रह;

System. Collections. Generic का उपयोग करना; यूनिटीइंजिन का उपयोग करना; System. IO. Ports का उपयोग करना; पब्लिक क्लास प्लेयर1_मोशन: मोनोबिहेवियर {फ्लोट स्पीड = 8; निजी फ्लोट राशिचाल; सीरियलपोर्ट एसपी = नया सीरियलपोर्ट ("COM10", 9600); // स्टार्ट को पहले फ्रेम अपडेट से पहले कहा जाता है शून्य स्टार्ट () {sp. Open (); एसपी.रीडटाइमआउट = 1; }//अपडेट को एक बार प्रति फ्रेम शून्य अपडेट कहा जाता है () {mounttomove = speed*0.01f; अगर (sp. IsOpen) {कोशिश करें {moveObject (sp. ReadByte ()); प्रिंट (एसपी। रीडबाइट ()); } पकड़ (सिस्टम। अपवाद) { }}} शून्य चाल ऑब्जेक्ट (इंट डायरेक्शन) { अगर (दिशा == 1) { ट्रांस्फ़ॉर्म। ट्रांसलेट (वेक्टर ३.लेफ्ट * अमाउंटटोमूव, स्पेस। वर्ल्ड); } if(Direction == 2){translate. Translate(Vector3.right*amounttomove, Space. World); } } }

कोड की व्याख्या:

यह कोड सीरियल पोर्ट (COM 10) से इनपुट प्राप्त करने के लिए एकता को बताता है। जब बायां बटन दबाया जाता है, तो Arduino सीरियल पोर्ट को 1 का मान भेजता है, यदि एकता को सीरियल पोर्ट से 1 प्राप्त होता है, तो बाईं दिशा में गेम ऑब्जेक्ट "प्लेयर 1" में एक वेग जोड़ा जाता है। जब दायां बटन दबाया जाता है, तो Arduino सीरियल पोर्ट पर 2 का मान भेजता है, यदि एकता सीरियल पोर्ट से 2 प्राप्त करती है, तो गेम ऑब्जेक्ट "प्लेयर 1" में एक वेग सही दिशा में जोड़ा जाता है। यदि सीरियल पोर्ट को सीरियल पोर्ट से कोई मान प्राप्त नहीं होता है, तो किसी भी दिशा में कोई वेग नहीं जोड़ा जाता है, इसलिए बोर्ड स्थिर रहता है।

कोड कॉपी करने के बाद कोड बनाने और चलाने के लिए F5 दबाएं। एकता पर वापस जाएं और प्ले बटन दबाएं, जब आप दाएं दबाते हैं तो खिलाड़ी 1 को दाएं और बाएं दबाएं जब आप बाएं दबाते हैं।

अब, वही चरण एक बार फिर से करें लेकिन खिलाड़ी 2 के साथ और सुनिश्चित करें कि खिलाड़ी 1_मोशन के बजाय 'घटक जोड़ें' खिलाड़ी 2_मोशन में लिखना सुनिश्चित करें और दूसरे COM पोर्ट की पहचान करने के लिए जो दूसरा नियंत्रक कनेक्ट है, उसी सीरियल पोर्ट से नहीं।

आपको कोड में ही "पब्लिक क्लास प्लेयर1_मोशन: मोनोबिहेवियर" को "पब्लिक क्लास प्लेयर2_मोशन: मोनोबिहेवियर" में बदलना होगा।

चरण 5: गेंद जोड़ना

गेंद जोड़ना
गेंद जोड़ना
गेंद जोड़ना
गेंद जोड़ना
गेंद जोड़ना
गेंद जोड़ना
  1. एक नया गेम ऑब्जेक्ट जोड़ें, लेकिन इस बार वर्ग के बजाय एक सर्कल चुनें।
  2. इसे "बॉल" नाम दें।
  3. पदानुक्रम में खींचें और छोड़ें।
  4. स्केल समायोजित करें (X:0.2 - Y:0.2 - Z: 0.2)।
  5. एक Rigidbody 2D जोड़ें और केवल Z अक्ष को फ़्रीज़ करें।
  6. द्रव्यमान को 0.0001. में बदलें
  7. ग्रेविटी स्केल को 0 में बदलें।
  8. एक बॉक्स कोलाइडर 2D जोड़ें।
  9. एसेट्स>बनाएं>भौतिकी सामग्री 2डी पर जाएं चित्र देखें 1
  10. इसका नाम बदलकर "बाउंस" कर दें
  11. निरीक्षक से घर्षण को शून्य में बदलें
  12. बाउंसनेस को इंस्पेक्टर से 1 में बदलें
  13. रिगिडबॉडी 2डी में "बाउंस" को ड्रैग और ड्रॉप करें> मटेरियल पिक्चर 2 देखें
  14. पदानुक्रम से फिर से "बॉल" चुनें और घटक जोड़ने के लिए जाएं और बॉल_मूवमेंट टाइप करें और फिर एंटर दबाएं।
  15. स्क्रिप्ट पर राइट क्लिक करें और एडिट स्क्रिप्ट चुनें।
  16. नीचे दिए गए कोड को कॉपी करें और इसे बनाने और चलाने के लिए F5 दबाएं।

कोड:

सिस्टम का उपयोग करना। संग्रह;

System. Collections. Generic का उपयोग करना; यूनिटीइंजिन का उपयोग करना; पब्लिक क्लास बॉल_मूवमेंट: मोनोबिहेवियर {// स्टार्ट को पहले फ्रेम अपडेट से पहले प्राइवेट फ्लोट फोर्स = 2 कहा जाता है; शून्य प्रारंभ () {StartCoroutine (चाल ()); } IEnumerator चाल () {उपज वापसी नया WaitForSeconds(2); GetComponent ()। AddForce (नया वेक्टर 2 (1 एफ, 0.5 एफ) * 0.02 एफ * बल); } }

कोड' स्पष्टीकरण

यह कोड गेंद को एक ही परिमाण के साथ X दिशा और Y दिशा दोनों दिशाओं में एक वेग देता है, जिससे गेंद 45° के कोण पर चलती है। चरण 8 में हमने गेंद में एक भौतिकी सामग्री जोड़ी और इसकी उछाल को बदल दिया, यह पूरे खेल में गेंद की गति को बनाए रखता है।

चरण 6: खेल को अंतिम रूप देना

खेल को अंतिम रूप देना
खेल को अंतिम रूप देना
खेल को अंतिम रूप देना
खेल को अंतिम रूप देना
खेल को अंतिम रूप देना
खेल को अंतिम रूप देना
खेल को अंतिम रूप देना
खेल को अंतिम रूप देना

अब हमें हार को संभव बनाने की जरूरत है, यदि आप खेल को चलाते हैं तो आप देखेंगे कि जब गेंद खिलाड़ी 1 या खिलाड़ी 2 के पास से गुजरती है तो वह सीमा से उछलती है और हमारे खेल में ठीक वैसा नहीं है जैसा हमें चाहिए। इसके बजाय हम एक स्कोर काउंटर बनाना चाहते हैं जो हर बार गेंद को ऊपर या नीचे की सीमाओं से टकराने और गेंद की स्थिति को रीसेट करने के लिए स्कोर की गणना करता है।

  1. गेंद को पदानुक्रम से प्रोजेक्ट तक खींचें और छोड़ें, आपने गेंद का प्रीफ़ैब बनाया है ताकि आप इसे बाद में उपयोग कर सकें।
  2. पदानुक्रम पर राइट क्लिक करें और खाली बनाएँ चुनें। एक खाली वस्तु दिखाई देगी, उसका नाम बदलकर बॉल रेस्पॉन कर दिया जाएगा और उसकी स्थिति को गेंद की स्थिति के समान ही बदल दिया जाएगा।
  3. पदानुक्रम पर राइट क्लिक करें और UI >> टेक्स्ट चुनें। ध्यान दें कि पाठ एक कैनवास के साथ खेल में पाठ की स्थिति कैनवास में पाठ की स्थिति पर निर्भर करता है, हमारे खेल की सीमाओं में नहीं। (चित्र 1 देखें)।
  4. आप जहां चाहें टेक्स्ट की स्थिति बदलें।
  5. दूसरे खिलाड़ी के स्कोर के लिए चरण 3 और 4 को फिर से दोहराएं।
  6. पहला टेक्स्ट "प्लेयर 1 स्कोर: 0" टाइप करें और दूसरा टेक्स्ट "प्लेयर 2 स्कोर: 0" टाइप करें। (चित्र 2 देखें)।
  7. p1wins नामक ऊपरी सीमा में एक स्क्रिप्ट बनाएं और निम्न कोड को कॉपी करें।

कोड:

सिस्टम का उपयोग करना। संग्रह;

System. Collections. Generic का उपयोग करना; यूनिटीइंजिन का उपयोग करना; UnityEngine. SceneManagement का उपयोग करना; UnityEngine. UI का उपयोग करना; पब्लिक क्लास p1wins: MonoBehaviour { पब्लिक टेक्स्ट स्कोर; सार्वजनिक ट्रांसफ़ॉर्म बॉल_रेस्पॉन; सार्वजनिक गेमऑब्जेक्ट बॉल; निजी इंट p1 = 0; // स्टार्ट को पहले फ्रेम अपडेट से पहले कहा जाता है शून्य स्टार्ट () { } // अपडेट को प्रति फ्रेम एक बार कहा जाता है शून्य अपडेट () { Score.text = "प्लेयर 1 स्कोर:" + p1; } शून्य OnCollisionEnter2D (Collision2D अन्य) { अगर (other.gameObject.tag == "बॉल") {नष्ट (अन्य। गेमऑब्जेक्ट); पी1++; इंस्टेंटिएट (बॉल, बॉल_रेस्पॉन। पोजीशन, बॉल_रेस्पॉन। रोटेशन); } } }

8. चरण 1 में प्रोजेक्ट से बॉल प्रीफ़ैब को बॉल पैरामीटर में खींचें और छोड़ें। (तस्वीर 3 देखें)

9. बॉल रेस्पॉन्स को पदानुक्रम से बॉल-रेस्पॉन पैरामीटर तक ड्रैग और ड्रॉप करें। (तस्वीर 3 देखें)

10. खिलाड़ी 1 स्कोर को पदानुक्रम से स्कोर पैरामीटर तक खींचें और छोड़ें। (तस्वीर 3 देखें)

कोड की व्याख्या:

जब गेंद ऊपरी सीमा से टकराती है तो यह नष्ट हो जाती है और फिर से गेंद_रेस्पॉन की स्थिति में आ जाती है जिसे हमने चरण 2 में निर्दिष्ट किया है। गेंद को प्रीफ़ैब बनाने का उद्देश्य इसकी सभी विशेषताओं के साथ इसे प्रतिक्रिया देने में सक्षम होना है, अन्यथा, यदि हम गेंद का उपयोग करते हैं पदानुक्रम से यह प्रतिक्रिया करेगा लेकिन यह हिलेगा नहीं। साथ ही जब गेंद ऊपरी सीमा से टकराती है तो एक मान जो मूल रूप से 0 के बराबर होता है, जिसे p1 कहते हैं, 1 से बढ़ जाता है। यह मान टेक्स्ट के रूप में प्रदर्शित होता है, इसलिए जब गेंद ऊपरी सीमा से टकराती है तो खिलाड़ी 1 का स्कोर 1 बढ़ जाता है।

अब डाउन बॉर्डर के लिए स्टेप 7, 8, 9 और 10 करें

चरण 7 के लिए, p2wins नामक एक स्क्रिप्ट बनाएं और इसके बजाय निम्न कोड को कॉपी करें।

चरण 10 के लिए, खिलाड़ी 2 स्कोर को पदानुक्रम से स्कोर पैरामीटर तक खींचें और छोड़ें।

कोड:

सिस्टम का उपयोग करना। संग्रह;

System. Collections. Generic का उपयोग करना; यूनिटीइंजिन का उपयोग करना; UnityEngine. SceneManagement का उपयोग करना; UnityEngine. UI का उपयोग करना; पब्लिक क्लास p2wins: MonoBehaviour { पब्लिक टेक्स्ट स्कोर; सार्वजनिक ट्रांसफ़ॉर्म बॉल_रेस्पॉन; सार्वजनिक गेमऑब्जेक्ट बॉल; निजी इंट p2 = 0; // स्टार्ट को पहले फ्रेम अपडेट से पहले कहा जाता है शून्य स्टार्ट () { } // अपडेट को प्रति फ्रेम एक बार कहा जाता है शून्य अपडेट () { Score.text = "प्लेयर 2 स्कोर:" + p2; } शून्य OnCollisionEnter2D (Collision2D अन्य) { अगर (other.gameObject.tag == "बॉल") {नष्ट (अन्य। गेमऑब्जेक्ट); पी2++; इंस्टेंटिएट (बॉल, बॉल_रेस्पॉन। पोजीशन, बॉल_रेस्पॉन। रोटेशन); } } }

सिफारिश की: