Sistema de recogida y entrega sin inventario en Unity

En este tutorial, crearemos un sistema simple de recoger y soltar en Unity sin usar un sistema de inventario. Este sistema permitirá al jugador recoger objetos del entorno y soltarlos en un lugar diferente.

Requisitos previos

  • Unity Hub instalado
  • Unity Editor (versión 2019 o posterior)
  • Conocimientos básicos de C#.

Configurando el proyecto

  1. Abra Unity Hub y cree un nuevo proyecto Unity.
  2. Configura tu escena con un personaje jugador y algunos objetos con los que interactuar.

Implementación del sistema Pick and Drop

Paso 1: cree un script de recogida

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;
        }
    }
}

Paso 2: agregar etiquetas a los objetos de recogida

Etiqueta los objetos que quieres que el jugador pueda recoger con la etiqueta "Pickup".

  1. Seleccione un objeto en la escena.
  2. En la ventana del Inspector, haga clic en el menú desplegable "Tag".
  3. Seleccione "Add Tag" e ingrese "Pickup".
  4. Aplicar la etiqueta al objeto.

Paso 3: probar el sistema

  1. Agrega algunos objetos con la etiqueta "Pickup" a tu escena.
  2. Reproduce la escena en Unity.
  3. Haga clic en un objeto etiquetado para recogerlo.
  4. Haga clic derecho para soltar el objeto retenido.

Conclusión

Ha implementado con éxito un sistema simple de recoger y soltar sin utilizar un inventario en Unity. Este sistema permite al jugador interactuar con objetos en la escena recogiéndolos y soltándolos en diferentes lugares. Siéntase libre de ampliar este sistema agregando funciones como ajuste de objetos, rotación de objetos o interacciones más complejas.