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
- Abra Unity Hub e crie um novo projeto Unity.
- 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".
- Selecione um objeto na cena.
- Na janela do Inspetor, clique no menu suspenso "Tag".
- Selecione "Add Tag" e digite "Pickup".
- Aplique a tag ao objeto.
Etapa 3: Testando o Sistema
- Adicione alguns objetos com a tag "Pickup" à sua cena.
- Reproduza a cena em Unity.
- Clique em um objeto marcado para pegá-lo.
- 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.