आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

दुनिया के कुछ शुरुआती वीडियो गेम में अग्रणी, स्वास्थ्य एक सामान्य मैकेनिक है जो आज के कई सबसे लोकप्रिय खिताबों में कायम है। स्वास्थ्य जटिल लड़ाई यांत्रिकी को नियोजित करना, खिलाड़ी की प्रगति बनाना और आपके खेल को अधिक सहज बनाना संभव बनाता है। लेकिन आप अपने खेलों में स्वास्थ्य प्रणाली कैसे जोड़ते हैं?

Unity3D 3D गेम में 2D UI तत्वों को जोड़ना आसान बनाता है, इसलिए यह पहली बार हेल्थ बार की खोज शुरू करने के लिए एक शानदार जगह है।

आप क्या सीखेंगे

सतह पर, यह परियोजना जटिल नहीं लग सकती है। इसके बावजूद, एक कार्यशील स्वास्थ्य पट्टी बनाने के लिए आपको कई प्रमुख Unity3D कोडिंग अवधारणाओं को समझने की आवश्यकता होगी। इसका मतलब है कि इस परियोजना के माध्यम से सीखने के लिए बहुत कुछ है, जिसमें निम्न शामिल हैं:

  • Unity3D में 2D UI तत्व/स्प्राइट कैसे बनाएं।
  • कोड के साथ गेम ऑब्जेक्ट घटकों को कैसे संपादित करें।
  • Unity3D में लिपियों के बीच चर कैसे साझा करें।

चरण 1: अपना दृश्य सेट करें

instagram viewer

इससे पहले कि आप अपने स्वास्थ्य बार को कोड करना शुरू कर सकें, आपको इसे लागू करने के लिए खिलाड़ी मॉडल के साथ एक दृश्य की आवश्यकता होगी। आरंभ करने के लिए, आप हमारा अनुसरण कर सकते हैं भौतिकी-आधारित यूनिटी3डी कैरेक्टर कंट्रोलर गाइड बुनियादी नियंत्रणों के साथ एक खिलाड़ी मॉडल बनाने के लिए।

एक दृश्य और प्लेयर मॉडल के साथ, यह यूआई तत्व जोड़ने का समय है। पदानुक्रम विंडो के अंदर राइट-क्लिक करें और चुनें यूआई > छवि. यह आपके पदानुक्रम में दो नए आइटम बनाएगा: एक कैनवस पैरेंट ऑब्जेक्ट और एक इमेज चाइल्ड ऑब्जेक्ट। चाइल्ड ऑब्जेक्ट का नाम Healthbar में बदलें। इंस्पेक्टर का उपयोग करके अपने स्वास्थ्य बार के लिए चौड़ाई, ऊंचाई और स्थिति चुनें।

स्वास्थ्य पट्टी के लिए पृष्ठभूमि/सीमा के रूप में कार्य करने के लिए आप इसके रंग को काले रंग में सेट करके थोड़ी बड़ी UI छवि जोड़ सकते हैं। बस सुनिश्चित करें कि यह पदानुक्रम में स्वास्थ्य पट्टी के ऊपर है ताकि यह इसके पीछे प्रदर्शित हो।

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

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

यदि आप यूआई घटक मेनू नहीं देख पा रहे हैं, तो यहां जाएं विंडो> पैकेज मैनेजर, और सुनिश्चित करें कि आपके पास 2D पैक स्थापित है।

चरण 2: एक स्वास्थ्य चर जोड़ें

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

जनतातैरना खिलाड़ी स्वास्थ्य = 1.0f;

इस वेरिएबल के लिए फ्लोट का उपयोग करने का अर्थ है कि आप आसानी से 0 से 100 तक के किसी भी प्रतिशत का प्रतिनिधित्व कर सकते हैं, स्वास्थ्य बार यूआई इमेज फिल अमाउंट वेरिएबल से मिलान करने के लिए। उदाहरण के लिए, 0.5f का एक प्लेयरहेल्थ, हेल्थ बार की चौड़ाई का 50% है।

चरण 3: एकता में लिपियों के बीच चर साझा करें

चर आमतौर पर अपने स्वयं के कार्यों और लिपियों के भीतर काम करते हैं। यह उन्हें अन्य कार्यों और स्क्रिप्ट से अप्राप्य बनाता है जब तक कि आप कोड को यह बताने के लिए कदम नहीं उठाते हैं कि आप जिस चर के साथ काम करना चाहते हैं उसे कहां खोजें।

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

यह प्रक्रिया उस गेम ऑब्जेक्ट को खोजने के साथ शुरू होती है जो वेरिएबल का मालिक है। इस मामले में, यह Character_Model वस्तु है:

गेमऑब्जेक्ट कैरेक्टर_मॉडल = गेमऑब्जेक्ट. पाना("चरित्र_मॉडल");

अगला, यह उस स्क्रिप्ट घटक को खोजने का समय है जिसमें वे चर शामिल हैं जिनके साथ आपको काम करने की आवश्यकता है।

कैरेक्टर_कंट्रोल कैरेक्टर_कंट्रोल = कैरेक्टर_मॉडल। गेटकंपोनेंट ();

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

करेंटहेल्थ = कैरेक्टर_कंट्रोल.प्लेयरहेल्थ;

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

का उपयोग करते हुए प्रणाली। संग्रह;
का उपयोग करते हुए प्रणाली। संग्रह। सामान्य;
का उपयोग करते हुए यूनिटीइंजिन;
का उपयोग करते हुए एकता इंजन। यूआई;

जनताकक्षास्वास्थ्य: मोनो व्यवहार
{
जनतातैरना वर्तमानस्वास्थ्य;

खालीपनशुरू()
{
}

खालीपनअद्यतन()
{
गेमऑब्जेक्ट कैरेक्टर_मॉडल = गेमऑब्जेक्ट. पाना("चरित्र_मॉडल");
कैरेक्टर_कंट्रोल कैरेक्टर_कंट्रोल = कैरेक्टर_मॉडल। गेटकंपोनेंट ();
करेंटहेल्थ = कैरेक्टर_कंट्रोल.प्लेयरहेल्थ;
}
}

चरण 4: यूआई हेल्थ बार गेम ऑब्जेक्ट को प्रोग्राम करें

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

निजीस्थिर इमेज हेल्थबार;

फिर आप इस चर के लिए छवि घटक को शून्य प्रारंभ () फ़ंक्शन के भीतर असाइन कर सकते हैं, जो केवल एक बार चलता है।

हेल्थबार = गेटकंपोनेंट ();

अब जब आपके पास अपने सभी चर मौजूद हैं, तो आप स्वास्थ्य बार UI ऑब्जेक्ट की भरण चौड़ाई सेट करने के लिए पिछले चरण से कोड का उपयोग कर सकते हैं। आपको यहां कोई रूपांतरण करने की आवश्यकता नहीं है; खिलाड़ी स्वास्थ्य और स्वास्थ्य बार भरण राशि दोनों फ्लोट चर हैं।

Healthbar.fillAmount = currentHealth;

इस कोड के साथ, आपका स्वास्थ्य बार कैरेक्टर_कंट्रोल कोड में पाए जाने वाले स्वास्थ्य चर के आधार पर ऊपर और नीचे भर जाएगा। यह थोड़ा उबाऊ है, हालांकि, और यह निश्चित रूप से कुछ रंग के साथ कर सकता है।

खिलाड़ी के बहुत अधिक स्वास्थ्य होने पर स्वास्थ्य पट्टी को हल्का हरा रंग बनाने के लिए एक नया रंग जोड़कर प्रारंभ करें।

हरा रंग आरोग्य = नया रंग(0.6f, 1, 0.6f, 1);

इसके बाद, खिलाड़ी का स्वास्थ्य 0.3f से ऊपर है, यानी 30% या उससे अधिक है या नहीं, यह जांचने के लिए एक if स्टेटमेंट जोड़ें। यदि यह 0.3f से अधिक है, तो हेल्थ बार को आपके द्वारा जोड़े गए रंग से मिलान करने के लिए सेट करें। यदि यह 0.3f से नीचे है, तो हेल्थ बार को लाल कर दें।

अगर (वर्तमानस्वास्थ्य >= 0.3f) {
हेल्थबार.कलर = ग्रीनहेल्थ;
} अन्य {
Healthbar.color = Color.red;
}

चरण 5: कोड का परीक्षण करना

जैसा कि आप नीचे दिए गए पूर्ण कोड से देख सकते हैं, जब यह सब एक साथ हो तो यह परियोजना काफी सरल है। बेशक, हालांकि, आपको अपने कोड का परीक्षण करने का एक तरीका चाहिए।

का उपयोग करते हुए प्रणाली। संग्रह;
का उपयोग करते हुए प्रणाली। संग्रह। सामान्य;
का उपयोग करते हुए यूनिटीइंजिन;
का उपयोग करते हुए एकता इंजन। यूआई;

जनताकक्षास्वास्थ्य: मोनो व्यवहार
{
निजीस्थिर इमेज हेल्थबार;
जनतातैरना वर्तमानस्वास्थ्य;

खालीपनशुरू()
{
हेल्थबार = गेटकंपोनेंट ();
}

खालीपनअद्यतन()
{
गेमऑब्जेक्ट कैरेक्टर_मॉडल = गेमऑब्जेक्ट. पाना("चरित्र_मॉडल");
कैरेक्टर_कंट्रोल कैरेक्टर_कंट्रोल = कैरेक्टर_मॉडल। गेटकंपोनेंट ();
करेंटहेल्थ = कैरेक्टर_कंट्रोल.प्लेयरहेल्थ;
Healthbar.fillAmount = currentHealth;

हरा रंग आरोग्य = नया रंग(0.6f, 1, 0.6f, 1);

अगर (वर्तमानस्वास्थ्य >= 0.3f) {
हेल्थबार.कलर = ग्रीनहेल्थ;
} अन्य {
Healthbar.color = Color.red;
}
}
}

परीक्षण को संभव बनाने के लिए आप Character_Control स्क्रिप्ट में कोड की एक पंक्ति जोड़ सकते हैं। जब भी खिलाड़ी आगे बढ़ने के लिए W कुंजी दबाता है, स्वास्थ्य की थोड़ी मात्रा हटा दें। आप समान परिणामों के लिए प्लेयरहेल्थ चर तक पहुंच के साथ किसी भी स्क्रिप्ट में समान कोड जोड़ सकते हैं:

खिलाड़ीस्वास्थ्य -= 0.001f;

आप अपने यूनिटी प्रोजेक्ट में अनूठी संपत्तियां जोड़ने पर भी विचार कर सकते हैं। तुम कर सकते हो निःशुल्क एकता संपत्तियां पाएं पूरे वेब पर, आपको कोई पैसा खर्च किए बिना अपनी परियोजना को जीवंत बनाने का मौका देता है।

यूनिटी3डी में हेल्थ बार्स का निर्माण

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