Pick-and-drop-systeem zonder inventaris in eenheid

In deze tutorial maken we in Unity een eenvoudig pick-and-drop-systeem zonder gebruik te maken van een inventarissysteem. Met dit systeem kan de speler objecten uit de omgeving oppakken en op een andere locatie laten vallen.

Vereisten

  • Unity Naaf geïnstalleerd
  • Unity Editor (versie 2019 of hoger)
  • Basiskennis van C#

Het project opzetten

  1. Open Unity Hub en maak een nieuw Unity-project aan.
  2. Creëer je scène met een spelerspersonage en enkele objecten om mee te communiceren.

Implementatie van het Pick and Drop-systeem

Stap 1: Maak een ophaalscript

using UnityEngine;

public class Pickup : MonoBehaviour
{
    private Transform heldObject;
    private Vector3 offset;

    void Update()
    {
        if (heldObject != null)
        {
            MoveHeldObject();
            CheckDrop();
        }
        else
        {
            CheckPickup();
        }
    }

    void MoveHeldObject()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        heldObject.position = new Vector3(mousePosition.x + offset.x, mousePosition.y + offset.y, 0);
    }

    void CheckPickup()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
            if (hit.collider != null && hit.collider.CompareTag("Pickup"))
            {
                heldObject = hit.transform;
                offset = heldObject.position - Camera.main.ScreenToWorldPoint(Input.mousePosition);
            }
        }
    }

    void CheckDrop()
    {
        if (Input.GetMouseButtonDown(1))
        {
            heldObject = null;
        }
    }
}

Stap 2: Tags toevoegen aan ophaalobjecten

Markeer de voorwerpen waarvan je wilt dat de speler ze kan oppakken met de tag "Pickup".

  1. Selecteer een object in de scène.
  2. Klik in het infovenster op de vervolgkeuzelijst "Tag".
  3. Selecteer "Add Tag" en voer "Pickup" in.
  4. Pas de tag toe op het object.

Stap 3: Het systeem testen

  1. Voeg enkele objecten met de "Pickup"-tag toe aan je scène.
  2. Speel de scène af in Unity.
  3. Klik op een getagd object om het op te pakken.
  4. Klik met de rechtermuisknop om het vastgehouden object neer te zetten.

Conclusie

U heeft met succes een eenvoudig pick-and-drop-systeem geïmplementeerd zonder gebruik te maken van inventaris in Unity. Met dit systeem kan de speler communiceren met objecten in de scène door ze op verschillende locaties op te pakken en neer te zetten. Voel je vrij om dit systeem uit te breiden door functies toe te voegen zoals het uitlijnen van objecten, objectrotatie of complexere interacties.

Voorgestelde artikelen
Een praktische benadering van modulaire code in eenheid
Eenheid Hoe maak je een shader
Een Bullet Time-effect creëren in eenheid
Interactieve objecten creëren in eenheid
Kinetische interacties in eenheid implementeren
Laden en kasten openen met specifieke sleutels in eenheid
Objectpooling in eenheid implementeren