एकता में 2डी सिक्का संग्रह
सिक्के चुनना और इकट्ठा करना 2डी गेम में मुख्य बन गया है, खासकर 2D प्लेटफ़ॉर्मर में।
Unity में एक सिक्का लेने के लिए हमें एक स्क्रिप्ट बनाने की आवश्यकता होगी जो coin ऑब्जेक्ट से जुड़ी होगी और खिलाड़ी के इसके संपर्क में आने पर नष्ट हो जाएगी। काउंटर वैल्यू को अपडेट करना।
मैं 2D कैरेक्टर कंट्रोलर का उपयोग करूंगा, लेकिन यदि आपके पास पहले से ही 2D कंट्रोलर है तो आप इस भाग को छोड़ सकते हैं।
कदम
एक 2डी सिक्का बनाने के लिए जिसे उठाया और एकत्र किया जा सकता है, नीचे दिए गए चरणों का पालन करें:
- एक नया गेमऑब्जेक्ट बनाएं (गेमऑब्जेक्ट -> खाली बनाएं) और इसे नाम दें "Coin"
- "Coin" ऑब्जेक्ट में एक SpriteRenderer घटक संलग्न करें
- अपना सिक्का स्प्राइट स्प्राइटरेंडरर को सौंपें (आप नीचे दी गई छवि का उपयोग कर सकते हैं, सुनिश्चित करें कि आयात सेटिंग्स में बनावट प्रकार 'Sprite (2D and UI)' पर सेट है)
- कॉइन ऑब्जेक्ट को वांछित आकार तक स्केल करें
- सिक्का 'Z' अक्ष स्थिति बदलें ताकि यह खिलाड़ी की स्थिति से मेल खाए
- "Coin" ऑब्जेक्ट में BoxCollider2D घटक संलग्न करें
- एक नई स्क्रिप्ट बनाएं, इसे "SC_2DCoin" कहें, इसमें से सब कुछ हटा दें और फिर नीचे दिए गए कोड को इसके अंदर पेस्ट करें:
SC_2DCoin.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SC_2DCoin : MonoBehaviour
{
//Keep track of total picked coins (Since the value is static, it can be accessed at "SC_2DCoin.totalCoins" from any script)
public static int totalCoins = 0;
void Awake()
{
//Make Collider2D as trigger
GetComponent<Collider2D>().isTrigger = true;
}
void OnTriggerEnter2D(Collider2D c2d)
{
//Destroy the coin if Object tagged Player comes in contact with it
if (c2d.CompareTag("Player"))
{
//Add coin to counter
totalCoins++;
//Test: Print total number of coins
Debug.Log("You currently have " + SC_2DCoin.totalCoins + " Coins.");
//Destroy coin
Destroy(gameObject);
}
}
}
- SC_2DCoin स्क्रिप्ट को "Coin" ऑब्जेक्ट से जोड़ें
- अपने प्लेयर ऑब्जेक्ट का चयन करें और सुनिश्चित करें कि उसका टैग "Player" पर सेट है (सिक्का लेने में सक्षम होने के लिए यह आवश्यक है)
सिक्का अब तैयार है, आप इसे Prefab में सहेज सकते हैं और इसे स्तर के आसपास डुप्लिकेट कर सकते हैं।
सिक्का काउंटर बनाने के लिए, नीचे दिए गए चरणों का पालन करें:
- पदानुक्रम दृश्य -> यूआई -> छवि पर राइट-क्लिक करके एक नई यूआई छवि बनाएं और इसे नाम दें "CoinIcon"
- छवि घटक को सिक्का स्प्राइट निर्दिष्ट करें
- रेक्टट्रांसफॉर्म एलाइनमेंट को 'top left', पिवोट को (0, 1), पोस्ट X को '5', पॉज़ Y को '-5', चौड़ाई और ऊंचाई में बदलें। '25'
- पदानुक्रम दृश्य -> यूआई -> टेक्स्ट पर राइट-क्लिक करके नया टेक्स्ट बनाएं और उसे नाम दें "CoinCounter"
- "CoinCounter" RectTransform को "CoinIcon" के समान सेट करें, सिवाय Pos X को '35' और चौड़ाई को सेट करने के लिए '160'
- टेक्स्ट फ़ॉन्ट शैली को 'Bold', फ़ॉन्ट आकार को 22, संरेखण को 'left center' और रंग को सेट करें 'white'
- एक नई स्क्रिप्ट बनाएं, इसे "SC_CoinCounter" कहें, इसमें से सब कुछ हटा दें और फिर इसके अंदर नीचे दिया गया कोड पेस्ट करें:
सिक्का काउंटर स्क्रिप्ट सिक्कों की संख्या को टेक्स्ट तत्व पर लागू करेगी।
SC_CoinCounter.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SC_CoinCounter : MonoBehaviour
{
Text counterText;
// Start is called before the first frame update
void Start()
{
counterText = GetComponent<Text>();
}
// Update is called once per frame
void Update()
{
//Set the current number of coins to display
if(counterText.text != SC_2DCoin.totalCoins.ToString())
{
counterText.text = SC_2DCoin.totalCoins.ToString();
}
}
}
- "CoinCounter" टेक्स्ट ऑब्जेक्ट में SC_CoinCounter स्क्रिप्ट संलग्न करें
प्ले दबाएँ और देखें कि खिलाड़ी के संपर्क में आने पर सिक्के गायब हो जाते हैं और एक काउंटर में जुड़ जाते हैं।