System pick and drop bez zapasów w Unity
W tym samouczku utworzymy prosty system podnoszenia i upuszczania w Unity bez korzystania z systemu inwentaryzacji. System ten pozwoli graczowi podnosić przedmioty z otoczenia i upuszczać je w innym miejscu.
Warunki wstępne
- Unity Hub zainstalowany
- Unity Edytor (wersja 2019 lub nowsza)
- Podstawowa znajomość C#
Konfiguracja projektu
- Otwórz Unity Hub i utwórz nowy projekt Unity.
- Przygotuj swoją scenę z postacią gracza i obiektami, z którymi będziesz mógł wchodzić w interakcję.
Wdrożenie systemu pick and drop
Krok 1: Utwórz skrypt odbioru
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;
}
}
}
Krok 2: Dodaj znaczniki do obiektów do pobrania
Oznacz obiekty, które chcesz, aby gracz mógł podnieść, tagiem "Pickup".
- Wybierz obiekt na scenie.
- W oknie Inspektora kliknij listę rozwijaną "Tag".
- Wybierz "Add Tag" i wpisz "Pickup".
- Zastosuj znacznik do obiektu.
Krok 3: Testowanie systemu
- Dodaj do swojej sceny kilka obiektów ze znacznikiem "Pickup".
- Odegraj scenę w Unity.
- Kliknij oznaczony obiekt, aby go podnieść.
- Kliknij prawym przyciskiem myszy, aby upuścić trzymany obiekt.
Wniosek
Pomyślnie wdrożyłeś prosty system pick-and-drop bez użycia zapasów w Unity. System ten pozwala graczowi na interakcję z obiektami w scenie, podnosząc je i upuszczając w różnych miejscach. Możesz swobodnie rozszerzać ten system, dodając funkcje takie jak przyciąganie obiektów, obracanie obiektów lub bardziej złożone interakcje.