Sistema Pick and Drop sem estoque no Unity

Neste tutorial, criaremos um sistema simples de pegar e soltar em Unity sem usar um sistema de inventário. Este sistema permitirá ao jogador pegar objetos do ambiente e soltá-los em um local diferente.

Pré-requisitos

  • Unity Hub instalado
  • Unity Editor (versão 2019 ou posterior)
  • Conhecimento básico de C#

Configurando o Projeto

  1. Abra Unity Hub e crie um novo projeto Unity.
  2. Configure sua cena com um personagem do jogador e alguns objetos para interagir.

Implementando o sistema Pick and Drop

Etapa 1: crie um script de retirada

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

Etapa 2: adicionar tags aos objetos de coleta

Marque os objetos que você deseja que o jogador possa pegar com a tag "Pickup".

  1. Selecione um objeto na cena.
  2. Na janela do Inspetor, clique no menu suspenso "Tag".
  3. Selecione "Add Tag" e digite "Pickup".
  4. Aplique a tag ao objeto.

Etapa 3: Testando o Sistema

  1. Adicione alguns objetos com a tag "Pickup" à sua cena.
  2. Reproduza a cena em Unity.
  3. Clique em um objeto marcado para pegá-lo.
  4. Clique com o botão direito para soltar o objeto retido.

Conclusão

Você implementou com sucesso um sistema simples de coleta e entrega sem usar um inventário em Unity. Este sistema permite ao jogador interagir com os objetos do cenário, pegando-os e largando-os em diferentes locais. Sinta-se à vontade para expandir este sistema adicionando recursos como ajuste de objetos, rotação de objetos ou interações mais complexas.

Artigos sugeridos
Codificando um sistema de inventário simples com arrastar e soltar UI no Unity
Criando um sistema de marcadores 2D simples no Unity
Unity Como criar um sombreador
Fazendo inventário e sistema de criação de itens no Unity
Interagindo com objetos no jogo Unity
Como adicionar o efeito Sniper Scope no Unity
Introdução à máquina de estado no Unity