Plocka och släpp-system utan lager i Unity
I den här handledningen skapar vi ett enkelt plocka-och-släpp-system i Unity utan att använda ett inventeringssystem. Detta system gör det möjligt för spelaren att plocka upp föremål från miljön och släppa dem på en annan plats.
Förutsättningar
- Unity Hub installerad
- Unity Editor (version 2019 eller senare)
- Grundläggande kunskaper i C#
Konfigurera projektet
- Öppna Unity Hub och skapa ett nytt Unity-projekt.
- Ställ in din scen med en spelarkaraktär och några föremål att interagera med.
Implementering av Pick and Drop-systemet
Steg 1: Skapa ett upphämtningsskript
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;
}
}
}
Steg 2: Lägg till taggar till pickupobjekt
Tagga objekten du vill att spelaren ska kunna plocka upp med taggen "Pickup".
- Välj ett objekt i scenen.
- Klicka på rullgardinsmenyn "Tag" i inspektörsfönstret.
- Välj "Add Tag" och ange "Pickup".
- Applicera taggen på objektet.
Steg 3: Testa systemet
- Lägg till några objekt med taggen "Pickup" till din scen.
- Spela scenen i Unity.
- Klicka på ett taggat objekt för att plocka upp det.
- Högerklicka för att släppa det hållna objektet.
Slutsats
Du har framgångsrikt implementerat ett enkelt plocka-och-släpp-system utan att använda en inventering i Unity. Detta system låter spelaren interagera med föremål i scenen genom att plocka upp dem och släppa dem på olika platser. Utvidga gärna detta system genom att lägga till funktioner som objektsnäppning, objektrotation eller mer komplexa interaktioner.