2D-myntsamling i enhet
Myntplockning och myntsamlande har blivit en häftklammer i 2D-spel, särskilt i 2D-plattformar.
För att plocka upp ett mynt i Unity måste vi skapa ett skript som kopplas till ett mynt-objekt och får förstörs när spelaren kommer i kontakt med den, vilket uppdaterar räknarvärdet.

Jag kommer att använda 2D Character Controller, men du kan hoppa över den här delen om du redan har en 2D-kontroller.
Steg
För att göra ett 2D-mynt som kan plockas upp och samlas in, följ stegen nedan:
- Skapa ett nytt GameObject (GameObject -> Create Empty) och namnge det "Coin"
- Bifoga en SpriteRenderer-komponent till "Coin"-objektet
- Tilldela din myntsprite till SpriteRenderer (du kan använda bilden nedan, se till att texturtypen i importinställningarna är inställd på 'Sprite (2D and UI)')

- Skala myntobjektet till önskad storlek
- Ändra myntets 'Z'-axelposition så att den matchar spelarens position
- Bifoga en BoxCollider2D-komponent till "Coin"-objektet
- Skapa ett nytt skript, kalla det "SC_2DCoin", ta bort allt från det och klistra in koden nedan i det:
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);
        }
    }
}- Bifoga SC_2DCoin-skriptet till "Coin"-objektet
- Välj ditt spelarobjekt och se till att dess tagg är inställd på "Player" (detta behövs för att kunna plocka upp myntet)

Myntet är nu klart, du kan spara det i Prefab och duplicera det runt nivån.
För att skapa en mynträknare, följ stegen nedan:
- Skapa en ny UI-bild genom att högerklicka på hierarkivyn -> UI -> Bild och namnge den "CoinIcon"
- Tilldela myntsprite till bildkomponenten
- Ändra RectTransform Alignment till 'top left', Pivot till (0, 1), Post X till '5', Pos Y till '-5', Bredd och Höjd till '25'

- Skapa ny text genom att högerklicka på hierarkivyn -> UI -> Text och namnge den "CoinCounter"
- Ställ in "CoinCounter" RectTransform på samma sätt som "CoinIcon", förutom att ställa in Pos X till '35' och Width till '160'
- Ställ in texttypsnittsstil till 'Bold', teckenstorlek till 22, justering till 'left center' och färg till 'white'

- Skapa ett nytt skript, kalla det "SC_CoinCounter", ta bort allt från det och klistra in koden nedan i det:
Mynträknarens skript kommer att tillämpa antalet mynt på textelementet.
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();
        }
    }
}- Bifoga SC_CoinCounter-skriptet till "CoinCounter"-textobjektet
Tryck på Spela och observera att mynten försvinner vid spelarkontakt och läggs till i en räknare.