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

  1. Otwórz Unity Hub i utwórz nowy projekt Unity.
  2. 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".

  1. Wybierz obiekt na scenie.
  2. W oknie Inspektora kliknij listę rozwijaną "Tag".
  3. Wybierz "Add Tag" i wpisz "Pickup".
  4. Zastosuj znacznik do obiektu.

Krok 3: Testowanie systemu

  1. Dodaj do swojej sceny kilka obiektów ze znacznikiem "Pickup".
  2. Odegraj scenę w Unity.
  3. Kliknij oznaczony obiekt, aby go podnieść.
  4. 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.

Sugerowane artykuły
Kodowanie prostego systemu inwentaryzacji za pomocą przeciągania i upuszczania interfejsu użytkownika w Unity
Interakcja z obiektami w grze Unity
Jak dodać efekt lunety snajperskiej w Unity
Tworzenie prostego systemu pocisków 2D w Unity
Wprowadzenie do maszyny stanowej w Unity
Unity Jak utworzyć moduł cieniujący
Operatory Unity C#, które trzeba znać