2D-myntsamling i enhet

Myntplukking og innsamling har blitt en stift i 2D-spill, spesielt i 2D-plattformer.

For å plukke opp en mynt i Unity må vi lage et skript som festes til et mynt objekt og får ødelagt når spilleren kommer i kontakt med den, og oppdaterer tellerverdien.

Sharp Coder Videospiller

Jeg kommer til å bruke 2D Character Controller, men du kan hoppe over denne delen hvis du allerede har en 2D-kontroller.

Trinn

Følg trinnene nedenfor for å lage en 2D-mynt som kan plukkes opp og samles inn:

  • Opprett et nytt GameObject (GameObject -> Create Empty) og navngi det "Coin"
  • Fest en SpriteRenderer-komponent til "Coin"-objektet
  • Tildel myntspriten din til SpriteRenderer (du kan bruke bildet nedenfor, sørg for at teksturtypen i importinnstillingene er satt til 'Sprite (2D and UI)')

Gjennomsiktig gullmyntbilde

  • Skaler myntobjektet til ønsket størrelse
  • Endre mynt 'Z' akseposisjonen slik at den matcher spillerens posisjon
  • Fest en BoxCollider2D-komponent til "Coin"-objektet
  • Lag et nytt skript, kall det "SC_2DCoin", fjern alt fra det og lim inn koden nedenfor 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);
        }
    }
}
  • Fest SC_2DCoin-skriptet til "Coin"-objektet
  • Velg spillerobjektet ditt og sørg for at taggen er satt til "Player" (dette er nødvendig for å kunne plukke opp mynten)

Mynten er nå klar, du kan lagre den i Prefab og duplisere den rundt nivået.

For å lage en myntteller, følg trinnene nedenfor:

  • Opprett et nytt brukergrensesnittbilde ved å høyreklikke på hierarkivisningen -> brukergrensesnittet -> bilde og navngi det "CoinIcon"
  • Tilordne myntsprite til bildekomponenten
  • Endre RectTransform Alignment til 'top left', Pivot til (0, 1), Post X til '5', Pos Y til '-5', Bredde og Høyde til '25'

  • Opprett ny tekst ved å høyreklikke på hierarkivisningen -> UI -> Tekst og gi den et navn "CoinCounter"
  • Sett "CoinCounter" RectTransform på samme måte som "CoinIcon", bortsett fra sett Pos X til '35' og Width til '160'
  • Sett tekstskriftstil til 'Bold', skriftstørrelse til 22, justering til 'left center' og farge til 'white'

  • Lag et nytt skript, kall det "SC_CoinCounter", fjern alt fra det og lim inn koden nedenfor i det:

Mynttellerskriptet vil bruke antall mynter på tekstelementet.

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();
        }
    }
}
  • Fest SC_CoinCounter-skriptet til "CoinCounter" tekstobjektet

Trykk på Play og se at myntene forsvinner ved spillerkontakt og legges til en teller.

Foreslåtte artikler
Hvordan sette opp joystick-kontrolleren for bevegelse i enhet
Slow Motion-effekt i enhet
Zone Controller Pro - Unity Asset Store-pakke
Slik bruker du nytt HDRP-vannsystem i Unity
FPC Swimmer - En omfattende enhetsressurs for oppslukende vannmiljøer
Ultimate Spawner 2.0 - En ressurs som forandrer spillet
Mouse Look Script i Unity