क्या आप एकता के लिए नए हैं? खिलाड़ियों से इनपुट लेने और स्क्रीन के चारों ओर पात्रों को स्थानांतरित करने का तरीका सीखना चाहते हैं? हमने इस गाइड को तीन अलग-अलग तरीकों को दिखाने के लिए बनाया है जिससे आप एकता में खिलाड़ी की आवाजाही को नियंत्रित कर सकते हैं।

चाहे आप कोडिंग में नए हों या आपके पास कुछ अनुभव हो, यह C# ट्यूटोरियल आपको अपने पैरों पर खड़ा कर देगा, और आपके पात्र उनके ऊपर।

आएँ शुरू करें।

एकता में प्लेयर मूवमेंट: इनपुट कलेक्ट करना

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

यूनिटी ओपन के साथ, पर क्लिक करें संपादित करें शीर्ष टूलबार पर। अब चुनें परियोजना सेटिंग्स. बाएं हाथ की सूची से, चुनें इनपुट मैनेजर. चुनते हैं कुल्हाड़ियों, इनपुट मानों की सूची को पॉप्युलेट करना। आप देखना चाहेंगे क्षैतिज तथा खड़ा बुनियादी आंदोलन के लिए।

आप इन कुल्हाड़ियों के साथ प्रयोग करेंगे इनपुट गेटएक्सिसरॉ (); अगले भाग में बुनियादी आंदोलन के लिए।

एक रिगिडबॉडी और कोलाइडर का उपयोग करके एकता में खिलाड़ी का आंदोलन

instagram viewer

अब जब आप कुल्हाड़ियों के नाम जानते हैं, तो आप उनका उपयोग खिलाड़ी की गति को नियंत्रित करने के लिए कर सकते हैं।

आपकी एकता परियोजना में पदानुक्रम देखें, राइट-क्लिक करें और चुनें 3डी ऑब्जेक्ट > कैप्सूल उस चीज़ को बनाने के लिए जिस पर आप आंदोलन करेंगे। मैदान बनाने के लिए उसी रणनीति का उपयोग करना सुनिश्चित करें विमान आपके कैप्सूल पर खड़े होने के लिए।

रीसेट करना सुनिश्चित करें परिवर्तन दोनों वस्तुओं को महत्व दें, और अपने कैप्सूल को इस तरह से हिलाएं कि वह प्लेन पर खड़ा हो जाए। आसान पहचान के लिए अपने कैप्सूल का नाम बदलकर "प्लेयर" रख दें।

संबंधित: 5 एकता खेल विकास भाषाएँ: आपको कौन सी सीखनी चाहिए?

पर क्लिक करें खिलाड़ी वस्तु और, में निरीक्षक देखें, नीचे स्क्रॉल करें घटक जोड़ें. एक जोड़ें सख्त शरीर, और फिर एक अन्य घटक को a. के रूप में जोड़ें कैप्सूल कोलाइडर इस समय। भौतिकी, और इसलिए गति को जोड़ने के लिए आपको इन घटकों की आवश्यकता होगी खिलाड़ी.

फिर, अपने में राइट-क्लिक करें स्क्रिप्ट फ़ोल्डर और सृजन करना एक नया सी # स्क्रिप्ट. इस स्क्रिप्ट को "PlayerMovement" की तर्ज पर कुछ नाम दें। यदि आप विभिन्न वर्णों या नियंत्रक प्रकारों के लिए कई प्रकार के आंदोलन जोड़ने की योजना बना रहे हैं, तो आप प्रत्येक प्रकार के आंदोलन के लिए कई अलग-अलग स्क्रिप्ट बनाना चाहेंगे। अभी के लिए, हम मूलभूत बातों पर ध्यान देंगे और एक स्क्रिप्ट का उपयोग करेंगे।

यह सभी देखें: एकता में मॉड्यूलर प्रोग्रामिंग क्या है और यह क्यों महत्वपूर्ण है?

अपनी स्क्रिप्ट को खोलने के लिए उस पर डबल-क्लिक करें। आपको एक डिफ़ॉल्ट यूनिटी स्क्रिप्ट मिलेगी:

सिस्टम का उपयोग करना। संग्रह;
सिस्टम का उपयोग करना। संग्रह। सामान्य;
यूनिटीइंजिन का उपयोग करना;
पब्लिक क्लास प्लेयरमूवमेंट: मोनोबिहेवियर
{
// पहले फ्रेम अपडेट से पहले स्टार्ट कहा जाता है
शून्य प्रारंभ ()
{

}
// अपडेट को प्रति फ्रेम एक बार कहा जाता है
शून्य अद्यतन ()
{

}
}

आप हटा सकते हैं सिस्टम का उपयोग करना। संग्रह; तथा का उपयोग करते हुएप्रणाली। संग्रह। सामान्य; क्योंकि उन्हें इस स्क्रिप्ट की आवश्यकता नहीं है।

उस रास्ते से हटकर, पर ध्यान केंद्रित करें

पब्लिक क्लास प्लेयरमूवमेंट: मोनोबिहेवियर {

अभी के लिए। ओपनिंग कर्ली ब्रेस के अंदर, a. बनाएं सार्वजनिक फ्लोट नाम चर स्पीड या कुछ इसी तरह। इस स्पीड चर एक गुणक है जो नियंत्रित करेगा कि कितनी जल्दी हमारा खिलाड़ी कुछ और प्रोग्रामिंग के बाद चलता है। अभी के लिए, सेट करें स्पीड कुछ इस तरह के बराबर 10f.

आपको एकता को यह भी बताने की आवश्यकता है कि इस स्क्रिप्ट में हेरफेर करने के लिए एक कठोर व्यक्ति है। यह कीवर्ड के साथ किया जाता है सख्त शरीर और एक चर नाम—हम चुनेंगे आरबी.

पब्लिक क्लास प्लेयरमूवमेंट: मोनोबिहेवियर
{
सार्वजनिक फ्लोट गति = 10f; // वेग गुणक को नियंत्रित करता है

कठोर शरीर आरबी; // स्क्रिप्ट को बताता है कि एक कठोर शरीर है, हम इसे आगे की स्क्रिप्ट में संदर्भित करने के लिए वेरिएबल आरबी का उपयोग कर सकते हैं

इस खंड में आपको बस इतना ही जोड़ना है। अब, आगे बढ़ें शून्य प्रारंभ (). खेल शुरू करने पर, आपको सेट करने की आवश्यकता है आरबी चर के बराबर सख्त शरीर पर खिलाड़ी इस तरह:

शून्य प्रारंभ ()
{
आरबी = गेटकंपोनेंट(); //rb खिलाड़ी पर कठोर शरीर के बराबर होता है
}

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

शून्य अद्यतन ()
{
फ्लोट xMove = इनपुट. GetAxisRaw ("क्षैतिज"); // d कुंजी मान को 1 में बदल देती है, एक कुंजी मान को -1. में बदल देती है
फ्लोट zMove = Input. GetAxisRaw ("वर्टिकल"); // w कुंजी मान को 1 में बदल देती है, s कुंजी मान को -1. में बदल देती है
rb.velocity = नया वेक्टर 3 (xMove, rb.velocity.y, zMove) * गति; // कीप्रेस (WASD) के बराबर मूल्य की दिशा में वेग बनाता है। rb.velocity.y वेग को y पर सेट करके गिरने + कूदने से संबंधित है।

}

यदि आप कोड में उछाल से अभिभूत महसूस कर रहे हैं तो चिंता न करें; हम इसे स्टेप बाई स्टेप समझाएंगे। सबसे पहले, एक बनाएं पानी पर तैरना जैसे नाम के साथ चर एक्समूव, और इसे के बराबर सेट करें इनपुट GetAxisRaw ("क्षैतिज");

इनपुट गेटएक्सिसरॉ (); प्लेयर इनपुट को रिकॉर्ड करने का एकता का तरीका है कुल्हाड़ियों आपने में पाया परियोजना सेटिंग्स. आप इसके बारे में और अधिक पढ़ सकते हैं एकता का आधिकारिक दस्तावेज. "क्षैतिज" से आता है क्षैतिज अक्ष एकता में नाम। यह अक्ष "a" और "d" कुंजियों के साथ बाएँ और दाएँ गति को नियंत्रित करता है।

जैसा कि आप शायद अब तक अनुमान लगा सकते हैं, फ्लोट zMove = Input. GetAxisRaw ("वर्टिकल"); वही काम करता है लेकिन "डब्ल्यू" और "एस" कुंजी के लिए।

संबंधित: शुरुआती के लिए सर्वश्रेष्ठ एकता 3D ट्यूटोरियल

आगे, आप वह डालेंगे स्पीड वेरिएबल जिसे आपने प्ले में बनाया है और एकता में प्लेयर मूवमेंट के लिए पहेली के अंतिम भाग को पूरा करें।

rb.velocity = नया वेक्टर 3 (xMove, rb.velocity.y, zMove) * गति; // कीप्रेस (WASD) के बराबर मूल्य की दिशा में वेग बनाता है। rb.velocity.y वेग को y पर सेट करके गिरने + कूदने से संबंधित है।

एकता में वापस जाएं निरीक्षक के लिए देखें खिलाड़ी वस्तु। पर एक नज़र डालें सख्त शरीर-अंतर्गत जानकारी, आपको एक मान दिखाई देगा वेग. यह वह मान है जिसके साथ आप लक्ष्य कर रहे हैं आरबी.वेग.

नया वेक्टर 3 (xMove, rb.velocity.y, zMove) * गति, आपूर्ति किए गए x, y, और z मानों के साथ एक नया वेक्टर बनाता है, फिर वेक्टर के मान को गुणा करता है स्पीड.

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

यहाँ समाप्त कोड है:

यूनिटीइंजिन का उपयोग करना;
पब्लिक क्लास प्लेयरमूवमेंट: मोनोबिहेवियर
{
सार्वजनिक फ्लोट गति = 10f; // वेग गुणक को नियंत्रित करता है
कठोर शरीर आरबी; // स्क्रिप्ट को बताता है कि एक कठोर शरीर है, हम इसे आगे की स्क्रिप्ट में संदर्भित करने के लिए वेरिएबल आरबी का उपयोग कर सकते हैं

// पहले फ्रेम अपडेट से पहले स्टार्ट कहा जाता है
शून्य प्रारंभ ()
{
आरबी = गेटकंपोनेंट(); //rb खिलाड़ी पर कठोर शरीर के बराबर होता है
}

// अपडेट को प्रति फ्रेम एक बार कहा जाता है
शून्य अद्यतन ()
{
फ्लोट xMove = इनपुट. GetAxisRaw ("क्षैतिज"); // d कुंजी मान को 1 में बदल देती है, एक कुंजी मान को -1. में बदल देती है
फ्लोट zMove = Input. GetAxisRaw ("वर्टिकल"); // w कुंजी मान को 1 में बदल देती है, s कुंजी मान को -1. में बदल देती है
rb.velocity = नया वेक्टर 3 (xMove, rb.velocity.y, zMove) * गति; // कीप्रेस (WASD) के बराबर मूल्य की दिशा में वेग बनाता है। rb.velocity.y वेग को y पर सेट करके गिरने + कूदने से संबंधित है।

}
}

ध्यान दें: यदि आप पाते हैं कि आपका चरित्र किसी अन्य चीज़ की तुलना में अधिक फ़्लॉपिंग कर रहा है, तो सुनिश्चित करें कि प्लेयर के रोटेशन को लॉक कर दें निरीक्षक.

जानें और एकता में अधिक बनाएं

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

यूनिटी लर्न आपके खेल विकास कौशल को आगे बढ़ाने के लिए दिलचस्प विषयों से भरपूर है। हमारा मानना ​​है कि प्रोग्रामिंग के बारे में आपके ज्ञान का विस्तार करने में सबसे महत्वपूर्ण कारकों में से एक हर दिन कुछ नया सीखना है। हैकिंग के लिए उत्सुक और खुश रहें!

यूनिटी लर्न मास्टर गेम डेवलपमेंट का सबसे आसान तरीका है

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

आगे पढ़िए

साझा करनाकलरवईमेल
संबंधित विषय
  • प्रोग्रामिंग
  • खेल का विकास
  • एकता
  • प्रोग्रामिंग
लेखक के बारे में
मार्कस मियर्स III (30 लेख प्रकाशित)

मार्कस एक स्वतंत्र तकनीकी पत्रकार और MUO में प्रोग्रामिंग के लिए जूनियर संपादक हैं। वह एक आजीवन सीखने वाला, शौकिया फ्रंट-एंड डेवलपर, और लघु कहानी लेखक है जो 3+ वर्षों के अनुभव के साथ गद्य विकसित करता है जो पाठकों को जानता है।

मार्कस मिअर्स III. से अधिक

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें