एकता में 2डी सिक्का संग्रह

सिक्के चुनना और इकट्ठा करना 2डी गेम में मुख्य बन गया है, खासकर 2D प्लेटफ़ॉर्मर में।

Unity में एक सिक्का लेने के लिए हमें एक स्क्रिप्ट बनाने की आवश्यकता होगी जो coin ऑब्जेक्ट से जुड़ी होगी और खिलाड़ी के इसके संपर्क में आने पर नष्ट हो जाएगी। काउंटर वैल्यू को अपडेट करना।

Sharp Coder वीडियो प्लेयर

मैं 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();
        }
    }
}

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

सुझाए गए लेख
एकता के लिए 2डी हाथापाई हमला ट्यूटोरियल
एकता में लक्ष्य सूचक
मौसम निर्माता - एकता के माहौल को नई ऊंचाइयों तक ले जाना
एकता में गति के लिए जॉयस्टिक नियंत्रक कैसे स्थापित करें
एसेट स्टोर से शीर्ष यूनिटी एसेट्स
एकता में कर्सर ट्रेल प्रभाव बनाने के लिए C# स्क्रिप्ट
एकता में धीमी गति का प्रभाव