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
- Abra Unity Hub y cree un nuevo proyecto Unity.
- 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".
- Seleccione un objeto en la escena.
- En la ventana del Inspector, haga clic en el menú desplegable "Tag".
- Seleccione "Add Tag" e ingrese "Pickup".
- Aplicar la etiqueta al objeto.
Paso 3: probar el sistema
- Agrega algunos objetos con la etiqueta "Pickup" a tu escena.
- Reproduce la escena en Unity.
- Haga clic en un objeto etiquetado para recogerlo.
- 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.